Releases: ocaml/ocaml-lsp
1.9.0
1.8.3
1.8.2
1.8.1
1.8.0
CHANGES:
Features
-
Add a new code action
Add missing rec keyword
, which is available when
adding arec
keyword can fixUnbound value ...
error, e.g.,let fact n = if n = 0 then 1 else n * fact (n - 1) (* ^^^^ Unbound value fact *)
Adding
rec
to the definition offact
will fix the problem. The new code
action offers addingrec
. -
Use ocamlformat to properly format type snippets. This feature requires the
ocamlformat-rpc
opam package to be installed. (#386) -
Add completion support for polymorphic variants, when it is possible to pin
down the precise type. Examples (<|>
stands for the cursor) when completion
will work (#473)Function application:
let foo (a: [`Alpha | `Beta]) = () foo `A<|>
Type explicitly shown:
let a : [`Alpha | `Beta] = `B<|>
Note: this is actually a bug fix, since we were ignoring the backtick when
constructing the prefix for completion. -
Parse merlin errors (best effort) into a more structured form. This allows
reporting all locations as "related information" (#475) -
Add support for Merlin
Construct
command as completion suggestions, i.e.,
show complex expressions that could complete the typed hole. (#472) -
Add a code action
Construct an expression
that is shown when the cursor is
at the end of the typed hole, i.e.,_|
, where|
is the cursor. The code
action simply triggers the client (currently only VS Code is supported) to
show completion suggestions. (#472) -
Change the formatting-on-save error notification to a warning notification
(#472) -
Code action to qualify ("put module name in identifiers") and unqualify
("remove module name from identifiers") module names in identifiers (#399)Starting from:
open Unix let times = Unix.times () let f x = x.Unix.tms_stime, x.Unix.tms_utime
Calling "remove module name from identifiers" with the cursor on the open
statement will produce:open Unix let times = times () let f x = x.tms_stime, x.tms_utime
Calling "put module name in identifiers" will restore:
open Unix let times = Unix.times () let f x = x.Unix.tms_stime, x.Unix.tms_utime
Fixes
-
Do not show "random" documentation on hover
- fixed by merlin#1364
- fixes duplicate:
-
Correctly rename a variable used as a named/optional argument (#478)
-
When reporting an error at the beginning of the file, use the first line not
the second (#489)
1.7.0
1.6.1
CHANGES:
Fixes
-
Switch
verbosity
from 1 to 0. This is the same default that merlin uses.
The old value for verbosity (#433) -
Get fresh diagnostics (warning and error messages) on a file save (#438)
Note: If you want the fresh diagnostics to take into account changes in other
files, you likely need to rebuild your project. An easy way to get automatic
rebuilds is to rundune
in a watching mode, e.g.,[dune build --watch].