Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Filtering TextDocumentService.codeAction results based on the provided kinds. #7368

Merged
merged 1 commit into from May 14, 2024

Conversation

lahodaj
Copy link
Contributor

@lahodaj lahodaj commented May 8, 2024

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:

2024-05-08 19:50:36.988 [warning] asf.apache-netbeans-java - Code actions of kind 'source 'requested but returned code action is of kind 'quickfix'. Code action will be dropped. Please check 'CodeActionContext.only' to only return requested code actions.

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 and CodeActionProvider. While most of these perform the filtering internally, I am not sure if that's an approach that scales too well. E.g. the SurroundWithHint 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!

@lahodaj lahodaj requested review from dbalek and sdedic May 8, 2024 17:58
@mbien mbien added LSP [ci] enable Language Server Protocol tests Micronaut [ci] enable enterprise job labels May 8, 2024
@ebarboni ebarboni added this to the NB23 milestone May 13, 2024
@lahodaj lahodaj merged commit c6843c4 into apache:master May 14, 2024
32 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
LSP [ci] enable Language Server Protocol tests Micronaut [ci] enable enterprise job
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants