I am delighted to announce that the latest releases of Merlin (5.4.1-503
) and OCaml-LSP (1.22.0
) for OCaml 5.3 provide experimental support for project-wide renaming of symbols .
Users of vscode-ocaml-platform, ocaml-eglot or any generic LSP client can experiment with the new feature right now via the Rename
command. (This is not available in the standard Emacs and Vim modes yet.)
All project-wide features require the indexer to be installed and an up-to date index built with dune build @ocaml-index --watch
(we only ship rules for Dune, but the indexer itself is agnostic).
This is a complex feature in an experimental state, please report any issue you might encounter to Merlinโs issue tracker!
Complete changelog
merlin 5.4.1
- merlin binary
- Support for OCaml 5.3
- Use new 5.3 features to improve locate behavior in some cases. Merlin no
longer confuses uids from interfaces and implementations. (#1857) - Perform less merges in the indexer (#1881)
- Add initial support for project-wide renaming: occurrences can now return
all usages of all related definitions. (#1877)
- ocaml-index
- Bump magic number after index file format change (#1886)
- vim plugin
- Added support for search-by-type (#1846)
This is exposed through the existing:MerlinSearch
command, that
switches between search-by-type and polarity search depending on the
first character of the query.
- Added support for search-by-type (#1846)
Ocaml-LSP 1.22.0
- Enable experimental project-wide renaming of identifiers (#1431)