Skip to content

Commit f0e56f5

Browse files
committed
Use correction proposal that preserves underlying "linked" nature.
- "Add missing attributes" (annotation), "Add all missing tags" (javadoc), "Add ... tag" (javadoc) Signed-off-by: Roland Grunberg <[email protected]>
1 parent d1a53b1 commit f0e56f5

File tree

2 files changed

+13
-19
lines changed

2 files changed

+13
-19
lines changed

org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/JavadocTagsSubProcessor.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,13 @@
3131
import org.eclipse.jdt.internal.ui.text.correction.AddJavadocCommentProposalCore;
3232
import org.eclipse.jdt.internal.ui.text.correction.AddMissingJavadocTagProposalCore;
3333
import org.eclipse.jdt.internal.ui.text.correction.AddMissingModuleJavadocTagProposalCore;
34-
import org.eclipse.jdt.ui.text.java.IInvocationContext;
35-
import org.eclipse.jdt.ui.text.java.IProblemLocation;
3634
import org.eclipse.jdt.internal.ui.text.correction.JavadocTagsBaseSubProcessor;
3735
import org.eclipse.jdt.internal.ui.text.correction.ProblemLocation;
3836
import org.eclipse.jdt.internal.ui.text.correction.proposals.ReplaceCorrectionProposalCore;
3937
import org.eclipse.jdt.ls.core.internal.corrections.ProposalKindWrapper;
4038
import org.eclipse.jdt.ls.core.internal.handlers.CodeActionHandler;
39+
import org.eclipse.jdt.ui.text.java.IInvocationContext;
40+
import org.eclipse.jdt.ui.text.java.IProblemLocation;
4141
import org.eclipse.jdt.ui.text.java.correction.ASTRewriteCorrectionProposalCore;
4242
import org.eclipse.lsp4j.CodeActionKind;
4343

@@ -112,7 +112,7 @@ public static void getInvalidQualificationProposals(IInvocationContext context,
112112
*/
113113
@Override
114114
protected ProposalKindWrapper addAllMissingJavadocTagsProposal(String label2, ICompilationUnit compilationUnit, ASTNode parentDeclaration, int relevance) {
115-
ASTRewriteCorrectionProposalCore addAllMissing = new AddAllMissingJavadocTagsProposalCore(label2, compilationUnit, parentDeclaration, relevance);
115+
AddAllMissingJavadocTagsProposalCore addAllMissing = new AddAllMissingJavadocTagsProposalCore(label2, compilationUnit, parentDeclaration, relevance);
116116
return CodeActionHandler.wrap(addAllMissing, CodeActionKind.QuickFix);
117117
}
118118

@@ -121,7 +121,7 @@ protected ProposalKindWrapper addAllMissingJavadocTagsProposal(String label2, IC
121121
*/
122122
@Override
123123
protected ProposalKindWrapper addMissingJavadocTagProposal(String label, ICompilationUnit compilationUnit, ASTNode parentDeclaration, ASTNode node, int relevance) {
124-
ASTRewriteCorrectionProposalCore proposal = new AddMissingJavadocTagProposalCore(label, compilationUnit, parentDeclaration, node, relevance);
124+
AddMissingJavadocTagProposalCore proposal = new AddMissingJavadocTagProposalCore(label, compilationUnit, parentDeclaration, node, relevance);
125125
return CodeActionHandler.wrap(proposal, CodeActionKind.QuickFix);
126126
}
127127

@@ -130,7 +130,7 @@ protected ProposalKindWrapper addMissingJavadocTagProposal(String label, ICompil
130130
*/
131131
@Override
132132
protected ProposalKindWrapper addAllMissingModuleJavadocTagsProposal(String label2, ICompilationUnit compilationUnit, ModuleDeclaration moduleDecl, ASTNode node, int relevance) {
133-
ASTRewriteCorrectionProposalCore addAllMissing = new AddAllMissingJavadocTagsProposalCore(label2, compilationUnit, moduleDecl, relevance);
133+
AddAllMissingJavadocTagsProposalCore addAllMissing = new AddAllMissingJavadocTagsProposalCore(label2, compilationUnit, moduleDecl, relevance);
134134
return CodeActionHandler.wrap(addAllMissing, CodeActionKind.QuickFix);
135135
}
136136

org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/LocalCorrectionsSubProcessor.java

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import org.eclipse.jdt.core.compiler.IProblem;
3434
import org.eclipse.jdt.core.dom.AST;
3535
import org.eclipse.jdt.core.dom.ASTNode;
36+
import org.eclipse.jdt.core.dom.Annotation;
3637
import org.eclipse.jdt.core.dom.Block;
3738
import org.eclipse.jdt.core.dom.BodyDeclaration;
3839
import org.eclipse.jdt.core.dom.CastExpression;
@@ -91,7 +92,6 @@
9192
import org.eclipse.jdt.internal.corext.fix.CleanUpConstants;
9293
import org.eclipse.jdt.internal.corext.fix.CodeStyleFixCore;
9394
import org.eclipse.jdt.internal.corext.fix.IProposableFix;
94-
import org.eclipse.jdt.internal.corext.fix.MissingAnnotationAttributesFixCore;
9595
import org.eclipse.jdt.internal.corext.fix.SealedClassFixCore;
9696
import org.eclipse.jdt.internal.corext.fix.UnimplementedCodeFixCore;
9797
import org.eclipse.jdt.internal.corext.fix.UnusedCodeFixCore;
@@ -102,15 +102,14 @@
102102
import org.eclipse.jdt.internal.corext.util.JavaModelUtil;
103103
import org.eclipse.jdt.internal.ui.fix.CodeStyleCleanUpCore;
104104
import org.eclipse.jdt.internal.ui.fix.UnnecessaryCodeCleanUpCore;
105-
import org.eclipse.jdt.ui.text.java.IInvocationContext;
106-
import org.eclipse.jdt.ui.text.java.IProblemLocation;
107105
import org.eclipse.jdt.internal.ui.text.correction.proposals.ChangeMethodSignatureProposalCore;
108106
import org.eclipse.jdt.internal.ui.text.correction.proposals.ChangeMethodSignatureProposalCore.ChangeDescription;
109107
import org.eclipse.jdt.internal.ui.text.correction.proposals.ChangeMethodSignatureProposalCore.InsertDescription;
110108
import org.eclipse.jdt.internal.ui.text.correction.proposals.ChangeMethodSignatureProposalCore.RemoveDescription;
111109
import org.eclipse.jdt.internal.ui.text.correction.proposals.ConstructorFromSuperclassProposalCore;
112110
import org.eclipse.jdt.internal.ui.text.correction.proposals.FixCorrectionProposalCore;
113111
import org.eclipse.jdt.internal.ui.text.correction.proposals.LinkedCorrectionProposalCore;
112+
import org.eclipse.jdt.internal.ui.text.correction.proposals.MissingAnnotationAttributesProposalCore;
114113
import org.eclipse.jdt.internal.ui.text.correction.proposals.RefactoringCorrectionProposalCore;
115114
import org.eclipse.jdt.internal.ui.util.ASTHelper;
116115
import org.eclipse.jdt.ls.core.internal.JavaLanguageServerPlugin;
@@ -121,6 +120,8 @@
121120
import org.eclipse.jdt.ls.core.internal.handlers.CodeActionHandler;
122121
import org.eclipse.jdt.ls.core.internal.text.correction.ModifierCorrectionSubProcessor;
123122
import org.eclipse.jdt.ls.core.internal.text.correction.QuickAssistProcessor;
123+
import org.eclipse.jdt.ui.text.java.IInvocationContext;
124+
import org.eclipse.jdt.ui.text.java.IProblemLocation;
124125
import org.eclipse.jdt.ui.text.java.correction.ASTRewriteCorrectionProposalCore;
125126
import org.eclipse.lsp4j.CodeActionKind;
126127

@@ -1105,17 +1106,10 @@ public static void addSealedAsDirectSuperTypeProposal(IInvocationContext context
11051106
}
11061107

11071108
public static void addValueForAnnotationProposals(IInvocationContext context, IProblemLocation problem, Collection<ProposalKindWrapper> proposals) {
1108-
MissingAnnotationAttributesFixCore fix = MissingAnnotationAttributesFixCore.addMissingAnnotationAttributesProposal(context.getASTRoot(), problem);
1109-
if (fix != null) {
1110-
String label = fix.getDisplayString();
1111-
CompilationUnitChange change;
1112-
try {
1113-
change = fix.createChange(null);
1114-
CUCorrectionProposalCore proposal = new CUCorrectionProposalCore(label, context.getCompilationUnit(), change, IProposalRelevance.ADD_MISSING_ANNOTATION_ATTRIBUTES);
1115-
proposals.add(CodeActionHandler.wrap(proposal, CodeActionKind.QuickFix));
1116-
} catch (CoreException e) {
1117-
// do nothing
1118-
}
1109+
ASTNode selectedNode = problem.getCoveringNode(context.getASTRoot());
1110+
if ((selectedNode instanceof Annotation annotation)) {
1111+
MissingAnnotationAttributesProposalCore proposal = new MissingAnnotationAttributesProposalCore(context.getCompilationUnit(), annotation, IProposalRelevance.ADD_MISSING_ANNOTATION_ATTRIBUTES);
1112+
proposals.add(CodeActionHandler.wrap(proposal, CodeActionKind.QuickFix));
11191113
}
11201114
}
11211115

0 commit comments

Comments
 (0)