-
Notifications
You must be signed in to change notification settings - Fork 243
Open
Description
Initial support for project-wide occurrences (PWO) will be added to Merlin starting with release 5.1-502
.
It is a large-scope feature that involves patches to multiple projects and majors changes to Merlin internals. This issue aims at gathering feedback and keeping track of progress, issues and feature requests related to this feature.
Features
- Dune rules to drive
ocaml-index
and build project indexes. ([5.2] Build occurrences index for Merlin dune#10422 and Indexing rules: correctly declare indexes dependencies dune#10623) - Return all usages of a value along with its definition. (Add support for project-wide occurrences #1766)
- Basic support in the VIM plugin. (Vim: Project-wide Occurrences #1767)
- Basic support in the Emacs plugin. (Add support for project-wide occurrences #1766)
- Support in the
ocaml-lsp-server
frontend. (wip: compatibility with merlin-lib 5.1-502 ocaml-lsp#1233) - Release of
ocaml-index.1.0
. (voodoos/ocaml-index) - ⭐ Release of
merlin.5.1-502
with initial support for project-wide occurrences - ⭐ Release of
ocaml-lsp-server
with initial support for project-wide occurrences
[new release] merlin (5.1-502) and ocaml-index (1.0) and ocaml-lsp-server preview update opam-repository#26114 - Return all declarations associated to the value definition.
- Distinguish between interfaces and implementations uids.
- 🏗️ Improve location information for longidents.
- Index indirect usages of modules in paths such as
M.N.x
- ⭐ Provide a renaming engine based on occurrences results.
Known issues:
- The actual unit name might be wrapped by the build system. Merlin should be made aware of it. (Add new
UNIT_NAME
configuration directive #1776) - Uid are not stable when retyping the buffer (Reset the uid counter when restoring the typer's state #1779)
- Result might mix uids from implementation with interfaces (Do not return PWO for defs in the current interface file #1781)
- Improve the behavior on occurrences when on a label / constructor declaration (At origin occurrences #1785)
- All occurrences of values defined in functor are returned, but often restricting to a specific instantiation would be more useful.
- PWO does not work with definitions coming from a module without an implementation
- PPXes, especially the ones that do not respect the
ghost nodes
/merlin.hide
conventions might lead to unexpected behavior. - Punned record field are considered a value by Merlin, not a label.
froupitag-hasidkshatriya, jecars, pitag-ha, PaulRaUnite and 7h3kk1djecars
Metadata
Metadata
Assignees
Labels
No labels