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)