Enable type-on-hover functionality in Vim#1439
Merged
voodoos merged 3 commits intoocaml:masterfrom Mar 30, 2022
Merged
Conversation
trefis
requested changes
Feb 24, 2022
Contributor
trefis
left a comment
There was a problem hiding this comment.
Thanks for the PR!
I have a couple of suggestions, let me know if they make sense or not!
Contributor
|
(The CI failure seems unrelated, but I'll wait for @voodoos' confirmation before merging). |
Collaborator
Yes it was unrelated. @nilsbecker can you rebase your PR and add a changelog entry ? |
Contributor
Author
|
@voodoos does it look ok now? |
voodoos
reviewed
Mar 28, 2022
Collaborator
|
Thanks for the changes ! It would be great if you could rebase to clean the history a bit by squashing the fixes and simplifications. |
A new intermediate function accepts line and column number. This allows type-on-hover.
docs addition under "Extras"
Contributor
Author
|
ok i tried to clean this up and rebase it onto current master -- hopefully correctly. |
Collaborator
|
Thank you ! |
voodoos
added a commit
to voodoos/merlin
that referenced
this pull request
Mar 30, 2022
Enable type-on-hover functionality in Vim
voodoos
added a commit
to voodoos/merlin
that referenced
this pull request
Mar 30, 2022
Enable type-on-hover functionality in Vim
voodoos
added a commit
to voodoos/opam-repository
that referenced
this pull request
Apr 5, 2022
CHANGES:
Tue Apr 5 20:59:42 CEST 2020
+ merlin binary
- don't reset the environment when running merlin in single mode so that the
parent environement is forwarded the the child processes (ocaml/merlin#1425)
- filter dups in source paths (ocaml/merlin#1218)
- improve load path performance (ocaml/merlin#1323)
- fix handlink of ppx's under Windows (ocaml/merlin#1413)
- locate: look for original source files before looking for preprocessed
files (ocaml/merlin#1219 by @ddickstein, fixes ocaml/merlin#894)
- handle `=` syntax in compiler flags (ocaml/merlin#1409)
- expose all destruct exceptions in the api (ocaml/merlin#1437)
- fix superfluous break in error reporting (ocaml/merlin#1432)
- recognise binding operators in locate and occurrences (ocaml/merlin#1398, @mattiase)
- remove dependency on Result (ocaml/merlin#1441, @kit-ty-kate)
+ editor modes
- fix an issue in Neovim where the current line jumps to the top of the
window on repeated calls to `MerlinTypeOf` (ocaml/merlin#1433 by @ddickstein, fixes
ocaml/merlin#1221)
- add module, module type, and class imenu items for emacs (ocaml/merlin#1244, @ivg)
- add prefix argument to force or prevent opening in a new buffer in locate
command (ocaml/merlin#1426, @panglesd)
- add type-on-hover functionality for vim (ocaml/merlin#1439, @nilsbecker)
- add a dedicated buffer `*merlin-errors*` containing the last viewed error
(ocaml/merlin#1414, @panglesd)
+ test suite
- make `merlin-wrapper` create a default `.merlin` file only when there is
no `dune-project` to let tests use `dune ocaml-merlin` reader. (ocaml/merlin#1425)
- cover locate calls on module aliases with and without dune
- Add a test expliciting the interaction between locate and Dune's generated
source files (ocaml/merlin#1444)
voodoos
added a commit
to voodoos/opam-repository
that referenced
this pull request
Apr 5, 2022
CHANGES:
Tue Apr 5 21:12:42 CEST 2022
+ merlin binary
- don't reset the environment when running merlin in single mode so that the
parent environement is forwarded the the child processes (ocaml/merlin#1425)
- locate: look for original source files before looking for preprocessed
files (ocaml/merlin#1219 by @ddickstein, fixes ocaml/merlin#894)
- fix handlink of ppx's under Windows (ocaml/merlin#1413)
- handle `=` syntax in compiler flags (ocaml/merlin#1409)
- fix superfluous break in error reporting (ocaml/merlin#1432)
- recognise binding operators in locate and occurrences (ocaml/merlin#1398, @mattiase)
- improve load path performance (ocaml/merlin#1323)
- remove dependency on Result (ocaml/merlin#1441, @kit-ty-kate)
+ editor modes
- fix an issue in Neovim where the current line jumps to the top of the
window on repeated calls to `MerlinTypeOf` (ocaml/merlin#1433 by @ddickstein, fixes
ocaml/merlin#1221)
- add module, module type, and class imenu items for emacs (ocaml/merlin#1244, @ivg)
- add prefix argument to force or prevent opening in a new buffer in locate
command (ocaml/merlin#1426, @panglesd)
- add type-on-hover functionality for vim (ocaml/merlin#1439, @nilsbecker)
- add a dedicated buffer `*merlin-errors*` containing the last viewed error
(ocaml/merlin#1414, @panglesd)
+ test suite
- make `merlin-wrapper` create a default `.merlin` file only when there is
no `dune-project` to let tests use `dune ocaml-merlin` reader. (ocaml/merlin#1425)
voodoos
added a commit
to voodoos/opam-repository
that referenced
this pull request
Apr 5, 2022
CHANGES:
Tue Apr 5 21:17:21 PM CET 2022
+ merlin binary
- don't reset the environment when running merlin in single mode so that the
parent environement is forwarded the the child processes (ocaml/merlin#1425)
- locate: look for original source files before looking for preprocessed
files (ocaml/merlin#1219 by @ddickstein, fixes ocaml/merlin#894)
- fix handling of ppx's under Windows (ocaml/merlin#1413)
- handle `=` syntax in compiler flags (ocaml/merlin#1409)
- fix superfluous break in error reporting (ocaml/merlin#1432)
- recognise binding operators in locate and occurrences (ocaml/merlin#1398, @mattiase)
- remove dependency on Result (ocaml/merlin#1441, @kit-ty-kate)
+ editor modes
- update quick setup instructions for emacs (ocaml/merlin#1380, @ScriptDevil)
- fix an issue in Neovim where the current line jumps to the top of the
window on repeated calls to `MerlinTypeOf` (ocaml/merlin#1433 by @ddickstein, fixes
ocaml/merlin#1221)
- add module, module type, and class imenu items for emacs (ocaml/merlin#1244, @ivg)
- add prefix argument to force or prevent opening in a new buffer in locate
command (ocaml/merlin#1426, @panglesd)
- add type-on-hover functionality for vim (ocaml/merlin#1439, @nilsbecker)
- add a dedicated buffer `*merlin-errors*` containing the last viewed error
(ocaml/merlin#1414, @panglesd)
+ test suite
- make `merlin-wrapper` create a default `.merlin` file only when there is
no `dune-project` to let tests use `dune ocaml-merlin` reader. (ocaml/merlin#1425)
voodoos
added a commit
to voodoos/opam-repository
that referenced
this pull request
Apr 5, 2022
CHANGES for 414:
Tue Apr 5 20:51:42 CEST 2022
+ merlin binary
- don't reset the environment when running merlin in single mode so that the
parent environement is forwarded the the child processes (ocaml/merlin#1425)
- filter dups in source paths (ocaml/merlin#1218)
- improve load path performance (ocaml/merlin#1323)
- fix handlink of ppx's under Windows (ocaml/merlin#1413)
- locate: look for original source files before looking for preprocessed
files (ocaml/merlin#1219 by @ddickstein, fixes ocaml/merlin#894)
- handle `=` syntax in compiler flags (ocaml/merlin#1409)
- expose all destruct exceptions in the api (ocaml/merlin#1437)
- fix superfluous break in error reporting (ocaml/merlin#1432)
- recognise binding operators in locate and occurrences (ocaml/merlin#1398, @mattiase)
- remove dependency on Result (ocaml/merlin#1441, @kit-ty-kate)
- use the new "shapes" generated by the compiler to perform precise
jump-to-definition (ocaml/merlin#1431)
+ editor modes
- fix an issue in Neovim where the current line jumps to the top of the
window on repeated calls to `MerlinTypeOf` (ocaml/merlin#1433 by @ddickstein, fixes
ocaml/merlin#1221)
- add module, module type, and class imenu items for emacs (ocaml/merlin#1244, @ivg)
- add prefix argument to force or prevent opening in a new buffer in locate
command (ocaml/merlin#1426, @panglesd)
- add type-on-hover functionality for vim (ocaml/merlin#1439, @nilsbecker)
- add a dedicated buffer `*merlin-errors*` containing the last viewed error
(ocaml/merlin#1414, @panglesd)
+ test suite
- make `merlin-wrapper` create a default `.merlin` file only when there is
no `dune-project` to let tests use `dune ocaml-merlin` reader. (ocaml/merlin#1425)
- cover locate calls on module aliases with and without dune
- Add a test expliciting the interaction between locate and Dune's generated
source files (ocaml/merlin#1444)
CHANGES for 413:
Tue Apr 5 20:59:42 CEST 2022
+ merlin binary
- don't reset the environment when running merlin in single mode so that the
parent environement is forwarded the the child processes (ocaml/merlin#1425)
- filter dups in source paths (ocaml/merlin#1218)
- improve load path performance (ocaml/merlin#1323)
- fix handlink of ppx's under Windows (ocaml/merlin#1413)
- locate: look for original source files before looking for preprocessed
files (ocaml/merlin#1219 by @ddickstein, fixes ocaml/merlin#894)
- handle `=` syntax in compiler flags (ocaml/merlin#1409)
- expose all destruct exceptions in the api (ocaml/merlin#1437)
- fix superfluous break in error reporting (ocaml/merlin#1432)
- recognise binding operators in locate and occurrences (ocaml/merlin#1398, @mattiase)
- remove dependency on Result (ocaml/merlin#1441, @kit-ty-kate)
+ editor modes
- fix an issue in Neovim where the current line jumps to the top of the
window on repeated calls to `MerlinTypeOf` (ocaml/merlin#1433 by @ddickstein, fixes
ocaml/merlin#1221)
- add module, module type, and class imenu items for emacs (ocaml/merlin#1244, @ivg)
- add prefix argument to force or prevent opening in a new buffer in locate
command (ocaml/merlin#1426, @panglesd)
- add type-on-hover functionality for vim (ocaml/merlin#1439, @nilsbecker)
- add a dedicated buffer `*merlin-errors*` containing the last viewed error
(ocaml/merlin#1414, @panglesd)
+ test suite
- make `merlin-wrapper` create a default `.merlin` file only when there is
no `dune-project` to let tests use `dune ocaml-merlin` reader. (ocaml/merlin#1425)
- cover locate calls on module aliases with and without dune
- Add a test expliciting the interaction between locate and Dune's generated
source files (ocaml/merlin#1444)
CHANGES for 412:
Tue Apr 5 21:12:42 CEST 2022
+ merlin binary
- don't reset the environment when running merlin in single mode so that the
parent environement is forwarded the the child processes (ocaml/merlin#1425)
- locate: look for original source files before looking for preprocessed
files (ocaml/merlin#1219 by @ddickstein, fixes ocaml/merlin#894)
- fix handlink of ppx's under Windows (ocaml/merlin#1413)
- handle `=` syntax in compiler flags (ocaml/merlin#1409)
- fix superfluous break in error reporting (ocaml/merlin#1432)
- recognise binding operators in locate and occurrences (ocaml/merlin#1398, @mattiase)
- improve load path performance (ocaml/merlin#1323)
- remove dependency on Result (ocaml/merlin#1441, @kit-ty-kate)
+ editor modes
- fix an issue in Neovim where the current line jumps to the top of the
window on repeated calls to `MerlinTypeOf` (ocaml/merlin#1433 by @ddickstein, fixes
ocaml/merlin#1221)
- add module, module type, and class imenu items for emacs (ocaml/merlin#1244, @ivg)
- add prefix argument to force or prevent opening in a new buffer in locate
command (ocaml/merlin#1426, @panglesd)
- add type-on-hover functionality for vim (ocaml/merlin#1439, @nilsbecker)
- add a dedicated buffer `*merlin-errors*` containing the last viewed error
(ocaml/merlin#1414, @panglesd)
+ test suite
- make `merlin-wrapper` create a default `.merlin` file only when there is
no `dune-project` to let tests use `dune ocaml-merlin` reader. (ocaml/merlin#1425)
CHANGES for 411:
Tue Apr 5 21:17:21 PM CET 2022
+ merlin binary
- don't reset the environment when running merlin in single mode so that the
parent environement is forwarded the the child processes (ocaml/merlin#1425)
- locate: look for original source files before looking for preprocessed
files (ocaml/merlin#1219 by @ddickstein, fixes ocaml/merlin#894)
- fix handling of ppx's under Windows (ocaml/merlin#1413)
- handle `=` syntax in compiler flags (ocaml/merlin#1409)
- fix superfluous break in error reporting (ocaml/merlin#1432)
- recognise binding operators in locate and occurrences (ocaml/merlin#1398, @mattiase)
- remove dependency on Result (ocaml/merlin#1441, @kit-ty-kate)
+ editor modes
- update quick setup instructions for emacs (ocaml/merlin#1380, @ScriptDevil)
- fix an issue in Neovim where the current line jumps to the top of the
window on repeated calls to `MerlinTypeOf` (ocaml/merlin#1433 by @ddickstein, fixes
ocaml/merlin#1221)
- add module, module type, and class imenu items for emacs (ocaml/merlin#1244, @ivg)
- add prefix argument to force or prevent opening in a new buffer in locate
command (ocaml/merlin#1426, @panglesd)
- add type-on-hover functionality for vim (ocaml/merlin#1439, @nilsbecker)
- add a dedicated buffer `*merlin-errors*` containing the last viewed error
(ocaml/merlin#1414, @panglesd)
+ test suite
- make `merlin-wrapper` create a default `.merlin` file only when there is
no `dune-project` to let tests use `dune ocaml-merlin` reader. (ocaml/merlin#1425)
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.
This PR refactors some functions in merlin.py to allow passing the mouse cursor position as input. In this way vim's balloonexpr functionality can be used to show the type at the mouse cursor. Hopefully this will be handy for browsing a codebase, where one does not necessarily wish to navigate the cursor to various places by keyboard commands.
Beware: the actualy popup window displayed by balloon-eval seems to be a bit flaky. I tested on two macos machines with identical MacVim version and identical .vimrc. The popup shows up only on one of the two. That is not a problem of merlin, as it fails also for the ALE plugin. The version with type display in the status line (or actually, below the status line? what is the bottom line of the screen called?) works in any case, so that should be a workable solution for everyone.
I'm happy for corrections, in particular also for the doc text.