-
Notifications
You must be signed in to change notification settings - Fork 233
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Do not index occurrences from ppxes #1768
Conversation
@voodoos and I have already discussed this in private, but in case it's interesting to know what we've discussed: Let's distinguish derivers from other PPXs such as extension node rewriters. For derivers, we'd only need to look for For other PPXs, e.g. extension node rewriters, it's not Ppxlib itself who adds the So, it's safest here to look for the |
To my not-very-familiar-with-the-typedtree eyes, this looks good to me up to one doubt I have: The iteration through a node is not necessary to update the typing environment / the scope to what happens in the node, right? I'm asking because, with the PR, the iteration is fully skipped if there's a |
25e205b
to
e5bb711
Compare
CHANGES: Fri May 17 19:59:42 CET 2024 + merlin binary - Support for OCaml 5.2 (ocaml/merlin#1757) - destruct: Removal of residual patterns (ocaml/merlin#1737, fixes ocaml/merlin#1560) - Do not erase fields' names when destructing punned record fields (ocaml/merlin#1734, fixes ocaml/merlin#1661) - Ignore SIGPIPE in the Merlin server process (ocaml/merlin#1746) - Fix lexing of quoted strings in comments (ocaml/merlin#1754, fixes ocaml/merlin#1753) - Improve cursor position detection in longidents (ocaml/merlin#1756) - Addition of a `merlin-lib.commands` library which disassociates the execution of commands from the `new_protocol`, from the binary, allowing it to be invoked from other projects (ocaml/merlin#1758) - New occurrences backend: Don't index occurrences when `merlin.hide` attribute is present. (ocaml/merlin#1768) - Use the new `uid_to_decl` table in 5.2's cmt files to get documentation. (ocaml/merlin#1773)
Current version of the indexing iterator actually works on the ppxed-typedtree. This means that we should detect part of the tree that are introduced by PPXes and not index them.
This PR tries to do that in the usual way: it looks for the
merlin.hide
attribute on some strategic nodes.@pitag-ha I am still a bit uncertain of which nodes should be considered to look for the
merlin.hide
attributes ?Once again, that will only work with ppxes that actually use this attribute... I guess we can have that certainty only with ppxes written using
ppxlib
?We should try to devise a most robust way to distinguished ppxed part of the tree...
cc @Octachron since similar changes should be upstreamed at some point to prevent project-wide occurrences to return location that are actually coming from ppxes.