Filter code actions by prefix, not equality #3071
Merged
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.
It's quite unclear in the spec, but the idea seems to generally be to
filter code actions by their kinds hierarchically, so if the user asks
for
refactor
actions, the server can returnrefactor.inline
actions.This is usually what you want: for example, HLS has a variety of
import-fixing actions which use sub-kinds of
quickfix.import
. Thesecan be requested by just asking for the kind
quickfix.import
, which isvery nice.
However, in
lsp-mode
we then filter these down to those that matchexactly. I think we should also do a prefix match.
(My end goal is to be able to do
(lsp-make-interactive-code-action haskell-fix-imports "quickfix.import")
and have it actually select allthe import-fixing actions and let the user pick one!)
I don't think this will affect any existing users much. Since it
currently doesn't work if you pass a kind expecting actions with
sub-kinds, presumably current users are only passing maximally-specific
kinds, and won't see any different behaviour.