Merlin 5.6-503 and 5.6-504

Merlin 5.6 is now available with support for OCaml 5.4, a new type navigation command, and several bug fixes!

Key Changes

New locate-types command

The new locate-types command returns all locatable type identifiers in an expression as a tree structure. Unlike locate-type, which only handles simple type constructors and ignores type arguments, locate-types works on complex types like (int, Foo.t) result. You can now navigate to int, Foo.t, or result individually. This enables better "Go to Type Definition" functionality in editors that support it.

OCaml 5.4 support

This release supports OCaml 5.4.

Improved error recovery

Type checking now handles mutually recursive definitions better when they contain errors, providing more useful feedback during development.

OpenBSD support

Fixed merlin_reader to work correctly on OpenBSD.

Vim plugin fix

:MerlinOccurrencesProjectWide no longer errors when it can't gather code previews.

See the GitHub repository and the related announcement on the Discuss forums for more details.

See full changelog

CHANGES:

  • merlin binary
    • Add locate-types command (#1951)
  • merlin library
    • Fix merlin_reader for OpenBSD (#1956)
    • Improve recovery of mutually recursive definitions (#1962, #1963, fixes #1953)
    • Support for OCaml 5.4 (#1974)
  • vim plugin
    • Fix error when :MerlinOccurrencesProjectWide fails to gather code previews (#1970)
    • Add more short-paths tests cases (#1904)