title: "Merlin 2.0 release" authors: [ "Frederic Bour" {"https://github.com/def-lkb"} "Thomas Refis" {"https://github.com/trefis"} ] date: "2014-11-03" --BODY--
After a few months of development, we are pleased to announce the
stable release of
Merlin 2.0.
Supported OCaml versions range from 4.00.1 to 4.02.1.
Merlin is a tool focused on helping you code in OCaml by providing features such as:
- automatic completion of identifiers, using scope and type information,
- interactively typing definitions and expressions during edition,
- jumping to the definition of any identifier,
- quickly reporting errors in the editor.
We provide integration into Vim and Emacs. An external plugin is also available for Sublime Text.
This release provides great improvements in robustness and quality of analysis. Files that changed on disk are now automatically reloaded. The parsing process is finer grained to provide more accurate recovery and error messages. Integration with Jane Street Core and js_of_ocaml has also improved.
Vim & Emacs are still the main targeted editors. Thanks to Luc Rocher, preliminary support for Sublime Text is also available, see Sublime-text-merlin. Help is welcome to improve and extend supported editing environments.
Windows support also received some fixes. Merlin is now distributed in WODI. Integration in OCaml-on-windows is planned.
This new version of Merlin is already available with opam using opam install merlin
, and can also be built from the sources which are available at
the-lambda-church/merlin.
This is a major release which we worked on for several months, rewriting many parts of the codebase. An exhaustive list of changes is therefore impossible to give, but here are some key points (from an user perspective):
- support for OCaml 4.02.{0,1}
- more precise recovery in presence of syntax errors
- more user-friendly messages for syntax errors
- locate now works on MLI files
- automatic reloading of .merlin files (when they are update or created), it is no longer necessary to restart Merlin
- introduced a small refactoring command: rename, who renames all occurences of an identifier. See here.
This release also contains contributions from: Yotam Barnoy, Jacques-Pascal Deplaix, Geoff Gole, Rudi Grinberg, Steve Purcell and Jan Rehders.
We also thank Gabriel Scherer and Jane Street for their continued support.