respect completion prefix when completing optional arguments #1277
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.
For completions on labels that the LSP gets from merlin, take into account whether the prefix being completed starts with
~
or?
.Merlin appears to always returns the full set of labeled/optional arguments when asked for completions. The LSP forwards these on, leaving it to the client to filter them. The problem is that merlin supplies the optional argument completions with a leading
?
regardless of the prefix the user typed. This causes the client to either filter them out (VSCode) or offer completions that might flip an optional argument being passed with~
to one passed with?
(Emacs).This PR changes the label completions that start with
?
to start with~
when the prefix being completed starts with~
. It also adds a test case and does a bit of refactoring of test helper functions.