Filtering TextDocumentService.codeAction results based on the provided kinds. #7368
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 the
TextDocumentServiceImpl
produces code actions, it will ignore the requested code action kinds for code actions associated with errors, which may lead to warnings like this in the log:The ability to specify which kinds should be returned is probably meant to avoid unnecessary computation.
As I was investigating this, I also looked at the
CodeActionsProvider
andCodeActionProvider
. While most of these perform the filtering internally, I am not sure if that's an approach that scales too well. E.g. theSurroundWithHint
provider does not seem to perform the filtering. This patch proposes to enhance the providers with an ability to return which kinds they process, and avoid calling providers that don't even provide any useful results. Plus, there's an automatic filtering of the results.Also, the introduce hint is hardcoded in
TextDocumentServiceImpl
, and feels problematic in the current situation, so I tried to take that out into a separate provider.Please let me know what you think.
Thanks!