Skip to content

Releases: ocaml/ocaml-lsp

1.18.0

05 Jul 16:02
58c71c7
Compare
Choose a tag to compare

CHANGES:

Features

  • Introduce a configuration option to control dune diagnostics. The option is
    called duneDiganostics and it may be set to { enable: false } to disable
    diagnostics. (#1221)

  • Support folding of ifthenelse expressions (#1031)

  • Improve hover behavior (#1245)

    Hovers are no longer displaye on useless parsetree nodes such as keywords,
    comments, etc.

    Multiline hovers are now filtered away.

    Display expanded ppx's in the hover window.

  • Improve document symbols (#1247)

    Use the parse tree instead of the typed tree. This means that document
    symbols will work even if the source code doesn't type check.

    Include symbols at arbitrary depth.

    Differentiate functions / types / variants / etc.

    This now includes PPXs like let%expect_test or let%bench in the outline.

  • Introduce a destruct-line code action. This is an improved version of the
    old destruct code action. (#1283)

  • Improve signature inference to only include types for elements that were
    absent from the signature. Previously, all signature items would always be
    inserted. (#1289)

  • Add an update-signature code action to update the types of elements that
    were already present in the signature (#1289)

  • Add custom
    ocamllsp/merlinCallCompatible
    request (#1265)

  • Add custom ocamllsp/typeEnclosing request (#1304)

Fixes

  • Detect document kind by looking at merlin's suffixes config.

    This enables more lsp features for non-.ml/.mli files. Though it still
    depends on merlin's support. (#1237)

  • Correctly accept the --clientProcessId flag. (#1242)

  • Disable automatic completion and signature help inside comments (#1246)

  • Includes a new optional/configurable option to toggle syntax documentation. If
    toggled on, allows display of syntax documentation on hover tooltips. Can be
    controlled via environment variables and by GUI for VS code. (#1218)

  • For completions on labels that the LSP gets from merlin, take into account
    whether the prefix being completed starts with ~ or ?. Change the label
    completions that start with ? to start with ~ when the prefix being
    completed starts with ~. (#1277)

  • Fix document syncing (#1278, #1280, fixes #1207)

  • Stop generating inlay hints on generated code (#1290)

  • Fix parenthesizing of function types in SignatureHelp (#1296)

  • Fix syntax documentation rendering (#1318)

1.17.0

18 Dec 16:17
d3d8de5
Compare
Choose a tag to compare

CHANGES:

Fixes

  • Fix missing super & subscripts in markdown documentation. (#1170)

  • Do not invoke dune at all if --fallback-read-dot-merlin flag is on. (#1173)

  • Fix semantic highlighting of infix operators that contain '.'. (#1186)

  • Disable highlighting unit as an enum member to fix comment highlighting bug. (#1185)

  • Improve type-on-hover and type-annotate efficiency by only formatting the type
    of the first enclosing. (#1191, #1196)

  • Fix the encoding of URI's to match how vscode does it (#1197)

  • Fix parsing of completion prefixes (#1181)

Features

  • Compatibility with Odoc 2.3.0, with support for the introduced syntax: tables,
    and "codeblock output" (#1184)

  • Display text of references in doc strings (#1166)

  • Add mark/remove unused actions for open, types, for loop indexes, modules,
    match cases, rec, and constructors (#1141)

  • Offer auto-completion for the keyword in (#1217)

1.16.2

22 Jun 15:56
Compare
Choose a tag to compare

CHANGES:

Fixes

  • Fix file permissions used when specifying output files of pp and ppx. (#1153)

1.16.1

20 Jun 18:29
1f78031
Compare
Choose a tag to compare

CHANGES:

Fixes

  • Support building with OCaml 5.0 and 5.1 (#1150)

1.16.0-4.14

18 Jun 14:39
16030d0
Compare
Choose a tag to compare

CHANGES:

Fixes

  • Disable code lens by default. The support can be re-enabled by explicitly
    setting it in the configuration. (#1134)

  • Fix initilization of ocamlformat-rpc in some edge cases when ocamlformat is
    initialized concurrently (#1132)

  • Kill unnecessary $ dune ocaml-merlin with SIGTERM rather than SIGKILL
    (#1124)

  • Refactor comment parsing to use odoc-parser and cmarkit instead of
    octavius and omd (#1088)

    This allows users who migrated to omd 2.X to install ocaml-lsp-server in the
    same opam switch.

    We also slightly improved markdown generation support and fixed a couple in
    the generation of inline heading and module types.

  • Allow opening documents that were already open. This is a workaround for
    neovim's lsp client (#1067)

  • Disable type annotation for functions (#1054)

  • Respect codeActionLiteralSupport capability (#1046)

  • Fix a document syncing issue when utf-16 is the position encoding (#1004)

  • Disable "Type-annotate" action for code that is already annotated.
    (#1037), fixes
    #1036

  • Fix semantic highlighting of long identifiers when using preprocessors
    (#1049, fixes
    #1034)

  • Fix the type of DocumentSelector in cram document registration (#1068)

  • Accept the --clientProcessId command line argument. (#1074)

  • Accept --port as a synonym for --socket. (#1075)

  • Fix connecting to dune rpc on Windows. (#1080)

Features

  • Add "Remove type annotation" code action. (#1039)

  • Support settings through didChangeConfiguration notification (#1103)

  • Add "Extract local" and "Extract function" code actions. (#870)

  • Depend directly on merlin-lib 4.9 (#1070)

1.15.1-5.0

19 Jan 08:10
Compare
Choose a tag to compare

CHANGES:

Fixes

  • Fix race condition when a document was being edited and dune in watch mode was
    running (#1005, fixes
    #941,
    #1003)

1.15.1-4.14

19 Jan 08:04
Compare
Choose a tag to compare

CHANGES:

Fixes

  • Fix race condition when a document was being edited and dune in watch mode was
    running (#1005, fixes
    #941,
    #1003)

1.15.0-5.0

07 Jan 16:08
Compare
Choose a tag to compare

CHANGES:

Features

  • Add support for OCaml 5.0

  • Enable semantic highlighting
    support by default (#933)

  • Support connecting over pipes and socket. Pipes on Windows aren't yet
    supported (#946)

    More
    about communication channels in LSP specification.

  • Re-enable ocamlformat-rpc for formatting code snippets (but not files and
    not on Windows) (#920, #939)

    One needs to have installed either ocamlformat package version > 0.21.0 or,
    otherwise, ocamlformat-rpc package. Note that previously ocamlformat-rpc
    came in a standalone OPAM package, but since ocamlformat version > 0.21.0,
    it comes within ocamlformat package.

  • Add custom
    ocamllsp/hoverExtended
    request (#561)

  • Support utf-8 position encoding clients (#919)

    More about position encoding in LSP specification.

  • Show unwrapped module alias types on hovering over module names. This is due
    to upgrading to merlin 4.7 and using merlin's verbosity=smart by default
    (#942)

Fixes

  • Respect the client's completion item resolve and preSelect capabilities
    (#925, #936)

  • Disable polling for dune's watch mode on Windows and OCaml 4.14.0 (#935)

  • Fix semantic highlighting of "long identifiers," e.g., Foo.Bar.x (#932)

  • Fix syncing of document contents:

    • For ranges that span an entire line (#927)
    • Previously, whole line edits would incorrectly eat the newline characters (#971)

1.15.0-4.14

07 Jan 15:58
Compare
Choose a tag to compare

CHANGES:

Features

  • Enable semantic highlighting
    support by default (#933)

  • Support connecting over pipes and socket. Pipes on Windows aren't yet
    supported (#946)

    More
    about communication channels in LSP specification.

  • Re-enable ocamlformat-rpc for formatting code snippets (but not files and
    not on Windows) (#920, #939)

    One needs to have installed either ocamlformat package version > 0.21.0 or,
    otherwise, ocamlformat-rpc package. Note that previously ocamlformat-rpc
    came in a standalone OPAM package, but since ocamlformat version > 0.21.0,
    it comes within ocamlformat package.

  • Add custom
    ocamllsp/hoverExtended
    request (#561)

  • Support utf-8 position encoding clients (#919)

    More about position encoding in LSP specification.

  • Show unwrapped module alias types on hovering over module names. This is due
    to upgrading to merlin 4.7 and using merlin's verbosity=smart by default
    (#942)

Fixes

  • Respect the client's completion item resolve and preSelect capabilities
    (#925, #936)

  • Disable polling for dune's watch mode on Windows and OCaml 4.14.0 (#935)

  • Fix semantic highlighting of "long identifiers," e.g., Foo.Bar.x (#932)

  • Fix syncing of document contents:

    • For ranges that span an entire line (#927)
    • Previously, whole line edits would incorrectly eat the newline characters (#971)

1.15.0+5.0preview1

16 Dec 20:09
Compare
Choose a tag to compare

CHANGES:

Features

  • Add support for OCaml 5.0

  • Semantic highlighting support is enabled by default (#933)

  • Re-enable ocamlformat-rpc for formatting code snippets (but not files) (#920, #939)

    One needs to have either ocamlformat version > 0.21.0 or, otherwise,
    ocamlformat-rpc package installed.

  • Add custom ocamllsp/hoverExtended request (#561)

  • Support utf-8 position encoding clients (#919)

  • Upgrade to merlin 4.7 and use merlin's verbosity=smart by default, which
    allows unwrapping module alias types (#942)

Fixes

  • Fix document syncing for ranges that span an entire line (#927)

  • Respect the client's completion item resolve and preSelect capabilities
    (#925, #936)

  • Disable polling for dune's watch mode on Windows and OCaml 4.14.0 (#935)

  • Fix semantic highlighting of "long identifiers," e.g., Foo.Bar.x (#932)