Elisp: make merlin-construct use the user's configured completion interface#1598
Merged
voodoos merged 3 commits intoocaml:masterfrom May 10, 2023
Merged
Elisp: make merlin-construct use the user's configured completion interface#1598voodoos merged 3 commits intoocaml:masterfrom
voodoos merged 3 commits intoocaml:masterfrom
Conversation
Collaborator
|
Thank you, the code is much cleaner that way ! @3Rafal could you test it on your setup ? |
Collaborator
voodoos
approved these changes
May 10, 2023
Collaborator
voodoos
left a comment
There was a problem hiding this comment.
LGTM.
Could you add a changelog entry ?
The POINT argument was indeed unused, as `point` is distinct from `(point)`.
Rather than directly constructing a completion buffer the way the default `completion--in-region` function does, use `completing-read` to select a candidate constructor. This will respect the user's configuration of `completing-read-function`. This also changes merlin-construct to signal an error if there are no candidate constructors.
cc0fa32 to
0810505
Compare
Contributor
Author
|
Done, and rebased. Thanks! |
voodoos
added a commit
to voodoos/merlin
that referenced
this pull request
May 26, 2023
…#1598) from bcc32/construct-completing-read
voodoos
added a commit
to voodoos/opam-repository
that referenced
this pull request
May 26, 2023
CHANGES:
Fri May 26 15:23:42 CEST 2023
+ merlin binary
- Allow monadic IO in dot protocol (ocaml/merlin#1581)
- Add a `scope` option to the `occurrences` command in preparation for
the upcoming `project-wide-occurrences` feature (ocaml/merlin#1596)
- Construct bool-typed holes as `false` instead of `true` in the
`construct` command, for consistency (ocaml/merlin#1599).
- Add a hook to configure system command for spawning ppxes when Merlin is
used as a library. (ocaml/merlin#1585)
- Implement an all-or-nothing cache for the PPX phase (ocaml/merlin#1584)
- Cleanup functors caches when backtracking, to avoid memory leaks
(ocaml/merlin#1609, fixes ocaml/merlin#1529 and ocaml-lsp#1032)
- Fix `construct` results ordering for sum types sand poly variants (ocaml/merlin#1603)
- Fix object method completion not working (ocaml/merlin#1606, fixes ocaml/merlin#1575)
- Improve context detection for package types (ocaml/merlin#1608, fixes ocaml/merlin#1607)
- Fix incorrect locations for string literals (ocaml/merlin#1574)
- Fixed an issue that caused `errors` to erroneously alert about missing
`cmi` files (ocaml/merlin#1577)
- Prevent destruct from crashing on closed variant types (ocaml/merlin#1602,
fixes ocaml/merlin#1601)
- Improve longident parsing (ocaml/merlin#1612, fixes ocaml/merlin#945)
+ editor modes
- emacs: call the user's configured completion UI in
`merlin-construct` (ocaml/merlin#1598)
+ test suite
- Add missing dependency to a test using ppxlib (ocaml/merlin#1583)
- Add tests for the new PPX phase cache (ocaml/merlin#1584)
- Add and update tests for `construct` ordering (ocaml/merlin#1603)
voodoos
added a commit
to voodoos/opam-repository
that referenced
this pull request
May 26, 2023
CHANGES:
Fri May 26 15:23:42 CEST 2023
+ merlin binary
- Allow monadic IO in dot protocol (ocaml/merlin#1581)
- Add a `scope` option to the `occurrences` command in preparation for
the upcoming `project-wide-occurrences` feature (ocaml/merlin#1596)
- Construct bool-typed holes as `false` instead of `true` in the
`construct` command, for consistency (ocaml/merlin#1599).
- Add a hook to configure system command for spawning ppxes when Merlin is
used as a library. (ocaml/merlin#1585)
- Implement an all-or-nothing cache for the PPX phase (ocaml/merlin#1584)
- Cleanup functors caches when backtracking, to avoid memory leaks
(ocaml/merlin#1609, fixes ocaml/merlin#1529 and ocaml-lsp#1032)
- Fix `construct` results ordering for sum types sand poly variants (ocaml/merlin#1603)
- Fix object method completion not working (ocaml/merlin#1606, fixes ocaml/merlin#1575)
- Improve context detection for package types (ocaml/merlin#1608, fixes ocaml/merlin#1607)
- Fix incorrect locations for string literals (ocaml/merlin#1574)
- Fixed an issue that caused `errors` to erroneously alert about missing
`cmi` files (ocaml/merlin#1577)
- Prevent destruct from crashing on closed variant types (ocaml/merlin#1602,
fixes ocaml/merlin#1601)
- Improve longident parsing (ocaml/merlin#1612, fixes ocaml/merlin#945)
+ editor modes
- emacs: call the user's configured completion UI in
`merlin-construct` (ocaml/merlin#1598)
+ test suite
- Add missing dependency to a test using ppxlib (ocaml/merlin#1583)
- Add tests for the new PPX phase cache (ocaml/merlin#1584)
- Add and update tests for `construct` ordering (ocaml/merlin#1603)
voodoos
added a commit
to voodoos/opam-repository
that referenced
this pull request
May 26, 2023
CHANGES:
Fri May 26 15:23:42 CEST 2023
+ merlin binary
- Allow monadic IO in dot protocol (ocaml/merlin#1581)
- Add a `scope` option to the `occurrences` command in preparation for
the upcoming `project-wide-occurrences` feature (ocaml/merlin#1596)
- Construct bool-typed holes as `false` instead of `true` in the
`construct` command, for consistency (ocaml/merlin#1599).
- Add a hook to configure system command for spawning ppxes when Merlin is
used as a library. (ocaml/merlin#1585)
- Implement an all-or-nothing cache for the PPX phase (ocaml/merlin#1584)
- Cleanup functors caches when backtracking, to avoid memory leaks
(ocaml/merlin#1609, fixes ocaml/merlin#1529 and ocaml-lsp#1032)
- Fix `construct` results ordering for sum types sand poly variants (ocaml/merlin#1603)
- Fix object method completion not working (ocaml/merlin#1606, fixes ocaml/merlin#1575)
- Improve context detection for package types (ocaml/merlin#1608, fixes ocaml/merlin#1607)
- Fix incorrect locations for string literals (ocaml/merlin#1574)
- Fixed an issue that caused `errors` to erroneously alert about missing
`cmi` files (ocaml/merlin#1577)
- Prevent destruct from crashing on closed variant types (ocaml/merlin#1602,
fixes ocaml/merlin#1601)
- Improve longident parsing (ocaml/merlin#1612, fixes ocaml/merlin#945)
+ editor modes
- emacs: call the user's configured completion UI in
`merlin-construct` (ocaml/merlin#1598)
+ test suite
- Add missing dependency to a test using ppxlib (ocaml/merlin#1583)
- Add tests for the new PPX phase cache (ocaml/merlin#1584)
- Add and update tests for `construct` ordering (ocaml/merlin#1603)
[new release] merlin, merlin-lib and dot-merlin-reader (4.9-414)
CHANGES:
Fri May 26 15:23:42 CEST 2023
+ merlin binary
- Allow monadic IO in dot protocol (ocaml/merlin#1581)
- Add a `scope` option to the `occurrences` command in preparation for
the upcoming `project-wide-occurrences` feature (ocaml/merlin#1596)
- Construct bool-typed holes as `false` instead of `true` in the
`construct` command, for consistency (ocaml/merlin#1599).
- Add a hook to configure system command for spawning ppxes when Merlin is
used as a library. (ocaml/merlin#1585)
- Implement an all-or-nothing cache for the PPX phase (ocaml/merlin#1584)
- Cleanup functors caches when backtracking, to avoid memory leaks
(ocaml/merlin#1609, fixes ocaml/merlin#1529 and ocaml-lsp#1032)
- Fix `construct` results ordering for sum types sand poly variants (ocaml/merlin#1603)
- Fix object method completion not working (ocaml/merlin#1606, fixes ocaml/merlin#1575)
- Improve context detection for package types (ocaml/merlin#1608, fixes ocaml/merlin#1607)
- Fix incorrect locations for string literals (ocaml/merlin#1574)
- Fixed an issue that caused `errors` to erroneously alert about missing
`cmi` files (ocaml/merlin#1577)
- Prevent destruct from crashing on closed variant types (ocaml/merlin#1602,
fixes ocaml/merlin#1601)
- Improve longident parsing (ocaml/merlin#1612, fixes ocaml/merlin#945)
+ editor modes
- emacs: call the user's configured completion UI in
`merlin-construct` (ocaml/merlin#1598)
+ test suite
- Add missing dependency to a test using ppxlib (ocaml/merlin#1583)
- Add tests for the new PPX phase cache (ocaml/merlin#1584)
- Add and update tests for `construct` ordering (ocaml/merlin#1603)
voodoos
added a commit
to voodoos/opam-repository
that referenced
this pull request
May 31, 2023
CHANGES:
unreleased
+ merlin binary
- Preview support for OCaml 5.1-alpha1. Short path is temporary disabled and
inline records might not behave as expected.
- Allow monadic IO in dot protocol (ocaml/merlin#1581)
- Add a `scope` option to the `occurrences` command in preparation for
the upcoming `project-wide-occurrences` feature (ocaml/merlin#1596)
- Construct bool-typed holes as `false` instead of `true` in the
`construct` command, for consistency (ocaml/merlin#1599).
- Add a hook to configure system command for spawning ppxes when Merlin is
used as a library. (ocaml/merlin#1585)
- Implement an all-or-nothing cache for the PPX phase (ocaml/merlin#1584)
- Cleanup functors caches when backtracking, to avoid memory leaks
(ocaml/merlin#1609, fixes ocaml/merlin#1529 and ocaml-lsp#1032)
- Fix `construct` results ordering for sum types sand poly variants (ocaml/merlin#1603)
- Fix object method completion not working (ocaml/merlin#1606, fixes ocaml/merlin#1575)
- Improve context detection for package types (ocaml/merlin#1608, fixes ocaml/merlin#1607)
- Fix incorrect locations for string literals (ocaml/merlin#1574)
- Fixed an issue that caused `errors` to erroneously alert about missing
`cmi` files (ocaml/merlin#1577)
- Prevent destruct from crashing on closed variant types (ocaml/merlin#1602,
fixes ocaml/merlin#1601)
- Improve longident parsing (ocaml/merlin#1612, fixes ocaml/merlin#945)
+ editor modes
- emacs: call the user's configured completion UI in
`merlin-construct` (ocaml/merlin#1598)
+ test suite
- Add missing dependency to a test using ppxlib (ocaml/merlin#1583)
- Add tests for the new PPX phase cache (ocaml/merlin#1584)
- Add and update tests for `construct` ordering (ocaml/merlin#1603)
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.
The current
merlin-constructinterface is somewhat awkward. It requires the user to switch buffers, and forces the use of the old-style built-in completion buffer, rather than using whatever completion interface the user has set up (e.g., ivy, helm).Also make the following small improvements: