Improvement: jumping to a label's precise declaration.#1505
Merged
voodoos merged 7 commits intoocaml:masterfrom Nov 17, 2022
Merged
Improvement: jumping to a label's precise declaration.#1505voodoos merged 7 commits intoocaml:masterfrom
voodoos merged 7 commits intoocaml:masterfrom
Conversation
Collaborator
Author
|
While making a test for "locating a label in another CU" I noticed that it was even more broken: after finding the Uid fails it should "fallback to the declaration's node's location" and it was not the case. This is fixed in the second commit. |
Member
|
Looks good to me. I guess the same problem exists for variant constructors? |
Collaborator
Author
I added a test and it worked as expected for constructors. However it relied on the "fallback" so I did the same change as for labels. However I tested the polymorphic variants' tags and Merlin doesn't even try to locate these. But this will probably be the subject of another PR. |
rgrinberg
reviewed
Nov 6, 2022
Member
|
@voodoos any ETA on when this will be merged? |
50624f4 to
52f0a8f
Compare
52f0a8f to
f82a385
Compare
229b451 to
bfb0473
Compare
And add a test illustrating that improvement along with a FIXME for jumping to the definition. Also fix locate for label outside the current buffer but that requires upstream compiler changes. And add a test illustrating the current (unsatisfying) behaviour.
1301eb8 to
1bf3b9e
Compare
voodoos
added a commit
to voodoos/opam-repository
that referenced
this pull request
Nov 24, 2022
CHANGES:
Thu Nov 24 13:31:42 CEST 2022
+ merlin binary
- Replace custom "holes" AST nodes by extensions. This restores binary
compatibility and fixes issues with PPXs when using typed-holes.
(ocaml/merlin#1503)
- Do not change temporarily Merlin's cwd when starting a PPX (ocaml/merlin#1521,
fixes ocaml/merlin#1420)
- Fix a parsing issue when declaring the `(??)` custom prefix operator.
(ocaml/merlin#1507, fixes ocaml/merlin#1506)
- Fix variant constructors' comments grouping (ocaml/merlin#1516, @mheiber, fixes ocaml/merlin#1513)
- Filter-out duplicates from the `enclosing` command result (ocaml/merlin#1512)
- Add a new `verbosity=smart` mode for type enclosing that only expand
modules' types (ocaml/merlin#1374, @ulugbekna)
- Improve locate for labels' declarations in the current buffer.
(ocaml/merlin#1505, fixes ocaml/merlin#1524)
- Fix locate on module without implementation (ocaml/merlin#1522, fixes ocaml/merlin#1519)
- Allow program name customization when merlin is used as a library. (ocaml/merlin#1532)
+ editor modes
- vim: load the plugin when necessary if it wasn't loaded before (ocaml/merlin#1511)
- emacs: update CI for newer releases and fix some warnings (ocaml/merlin#1454,
@mattiase)
+ test suite
- Add tests for constructors' documentation (ocaml/merlin#1511)
- Add test cases for label comment documentation (ocaml/merlin#1526, @mheiber)
- Add a test for the `enclosing` command (ocaml/merlin#1512)
- Add tests for interactions between locate and record labels (ocaml/merlin#1505)
- Add test showing an issue with locate and implicit transitive deps
voodoos
added a commit
to voodoos/opam-repository
that referenced
this pull request
Nov 24, 2022
CHANGES:
+ merlin binary
- Replace custom "holes" AST nodes by extensions. This restores binary
compatibility and fixes issues with PPXs when using typed-holes.
(ocaml/merlin#1503)
- Do not change temporarily Merlin's cwd when starting a PPX (ocaml/merlin#1521,
fixes ocaml/merlin#1420)
- Fix a parsing issue when declaring the `(??)` custom prefix operator.
(ocaml/merlin#1507, fixes ocaml/merlin#1506)
- Fix variant constructors' comments grouping (ocaml/merlin#1516, @mheiber, fixes ocaml/merlin#1513)
- Filter-out duplicates from the `enclosing` command result (ocaml/merlin#1512)
- Add a new `verbosity=smart` mode for type enclosing that only expand
modules' types (ocaml/merlin#1374, @ulugbekna)
- Improve locate for labels' declarations in the current buffer.
(ocaml/merlin#1505, fixes ocaml/merlin#1524)
- Fix locate on module without implementation (ocaml/merlin#1522, fixes ocaml/merlin#1519)
- Allow program name customization when merlin is used as a library. (ocaml/merlin#1532)
+ editor modes
- vim: load the plugin when necessary if it wasn't loaded before (ocaml/merlin#1511)
- emacs: update CI for newer releases and fix some warnings (ocaml/merlin#1454,
@mattiase)
+ test suite
- Add tests for constructors' documentation (ocaml/merlin#1511)
- Add test cases for label comment documentation (ocaml/merlin#1526, @mheiber)
- Add a test for the `enclosing` command (ocaml/merlin#1512)
- Add tests for interactions between locate and record labels (ocaml/merlin#1505)
- Add test showing an issue with locate and implicit transitive deps
[new release] merlin (4.7-413)
CHANGES:
+ merlin binary
- Replace custom "holes" AST nodes by extensions. This restores binary
compatibility and fixes issues with PPXs when using typed-holes.
(ocaml/merlin#1503)
- Fix a parsing issue when declaring the `(??)` custom prefix operator.
(ocaml/merlin#1507, fixes ocaml/merlin#1506)
- Fix variant constructors' comments grouping (ocaml/merlin#1516, @mheiber, fixes ocaml/merlin#1513)
- Filter-out duplicates from the `enclosing` command result (ocaml/merlin#1512)
+ editor modes
- vim: load the plugin when necessary if it wasn't loaded before (ocaml/merlin#1511)
+ test suite
- Add tests for constructors' documentation (ocaml/merlin#1511)
- Add test cases for label comments documentation (ocaml/merlin#1526, @mheiber)
- Add a test for the `enclosing` command (ocaml/merlin#1512)
[new release] merlin (4.7-412)
CHANGES:
+ merlin binary
- Replace custom "holes" AST nodes by extensions. This restores binary
compatibility and fixes issues with PPXs when using typed-holes.
(ocaml/merlin#1503)
- Fix a parsing issue when declaring the `(??)` custom prefix operator.
(ocaml/merlin#1507, fixes ocaml/merlin#1506)
- Fix variant constructors' comments grouping (ocaml/merlin#1516, @mheiber, fixes ocaml/merlin#1513)
- Filter-out duplicates from the `enclosing` command result (ocaml/merlin#1512)
+ editor modes
- vim: load the plugin when necessary if it wasn't loaded before (ocaml/merlin#1511)
+ test suite
- Add tests for constructors' documentation (ocaml/merlin#1511)
- Add test cases for label comment documentation (ocaml/merlin#1526, @mheiber)
- Add a test for the `enclosing` command (ocaml/merlin#1512)
voodoos
added a commit
to voodoos/opam-repository
that referenced
this pull request
Nov 24, 2022
CHANGES:
Thu Nov 24 17:49:42 CEST 2022
+ merlin binary
- Replace custom "holes" AST nodes by extensions. This restores binary
compatibility and fixes issues with PPXs when using typed-holes.
(ocaml/merlin#1503)
- Do not change temporarily Merlin's cwd when starting a PPX (ocaml/merlin#1521,
fixes ocaml/merlin#1420)
- Fix a parsing issue when declaring the `(??)` custom prefix operator.
(ocaml/merlin#1507, fixes ocaml/merlin#1506)
- Fix variant constructors' comments grouping (ocaml/merlin#1516, @mheiber, fixes ocaml/merlin#1513)
- Filter-out duplicates from the `enclosing` command result (ocaml/merlin#1512)
- Add a new `verbosity=smart` mode for type enclosing that only expand
modules' types (ocaml/merlin#1374, @ulugbekna)
- Improve locate for labels' declarations in the current buffer.
(ocaml/merlin#1505, fixes ocaml/merlin#1524)
- Fix locate on module without implementation (ocaml/merlin#1522, fixes ocaml/merlin#1519)
- Allow program name customization when merlin is used as a library. (ocaml/merlin#1532)
+ editor modes
- vim: load the plugin when necessary if it wasn't loaded before (ocaml/merlin#1511)
- emacs: update CI for newer releases and fix some warnings (ocaml/merlin#1454,
@mattiase)
+ test suite
- Add tests for constructors' documentation (ocaml/merlin#1511)
- Add test cases for label comment documentation (ocaml/merlin#1526, @mheiber)
- Add a test for the `enclosing` command (ocaml/merlin#1512)
- Add tests for interactions between locate and record labels (ocaml/merlin#1505)
- Add test showing an issue with locate and implicit transitive deps
voodoos
added a commit
to voodoos/opam-repository
that referenced
this pull request
Nov 24, 2022
CHANGES:
+ merlin binary
- Replace custom "holes" AST nodes by extensions. This restores binary
compatibility and fixes issues with PPXs when using typed-holes.
(ocaml/merlin#1503)
- Do not change temporarily Merlin's cwd when starting a PPX (ocaml/merlin#1521,
fixes ocaml/merlin#1420)
- Fix a parsing issue when declaring the `(??)` custom prefix operator.
(ocaml/merlin#1507, fixes ocaml/merlin#1506)
- Fix variant constructors' comments grouping (ocaml/merlin#1516, @mheiber, fixes ocaml/merlin#1513)
- Filter-out duplicates from the `enclosing` command result (ocaml/merlin#1512)
- Add a new `verbosity=smart` mode for type enclosing that only expand
modules' types (ocaml/merlin#1374, @ulugbekna)
- Improve locate for labels' declarations in the current buffer.
(ocaml/merlin#1505, fixes ocaml/merlin#1524)
- Fix locate on module without implementation (ocaml/merlin#1522, fixes ocaml/merlin#1519)
- Allow program name customization when merlin is used as a library. (ocaml/merlin#1532)
+ editor modes
- vim: load the plugin when necessary if it wasn't loaded before (ocaml/merlin#1511)
- emacs: update CI for newer releases and fix some warnings (ocaml/merlin#1454,
@mattiase)
+ test suite
- Add tests for constructors' documentation (ocaml/merlin#1511)
- Add test cases for label comment documentation (ocaml/merlin#1526, @mheiber)
- Add a test for the `enclosing` command (ocaml/merlin#1512)
- Add tests for interactions between locate and record labels (ocaml/merlin#1505)
- Add test showing an issue with locate and implicit transitive deps
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
When querying jump to declaration of a record's label
foo.ba|rmerlin would only jump to the beginning of the corresponding record type declaration.This is due to the uid's of labels not being registered by the compiler in the
Env.uid_to_loctable.This PR adds these uid registration to
typedecl.ml. This means that the fix will only work for the current buffer and we would need to be upstreamed for it to work when jumping to external compilation units.cc @rgrinberg