Skip to content

Commit c4779d6

Browse files
jjohnstndatho7561
authored andcommitted
Add type annotation quick-fixes
- add new TypeAnnotationsSubProcessor - enable quick-fix for type annotation problems in QuickFixProcessor - add new TypeAnnotationQuickFixTest
1 parent e89afe4 commit c4779d6

3 files changed

Lines changed: 431 additions & 8 deletions

File tree

org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/QuickFixProcessor.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@
7575
import org.eclipse.jdt.ls.core.internal.handlers.OrganizeImportsHandler;
7676
import org.eclipse.jdt.ls.core.internal.text.correction.ModifierCorrectionSubProcessor;
7777
import org.eclipse.jdt.ls.core.internal.text.correction.NullAnnotationsCorrectionProcessor;
78+
import org.eclipse.jdt.ls.core.internal.text.correction.TypeAnnotationSubProcessor;
7879
import org.eclipse.jdt.ls.core.internal.text.correction.TypeArgumentMismatchSubProcessor;
7980
import org.eclipse.jdt.ls.core.internal.text.correction.VarargsWarningsSubProcessor;
8081
import org.eclipse.jdt.ui.cleanup.CleanUpOptions;
@@ -682,14 +683,12 @@ private void process(CodeActionParams params, IInvocationContext context, IProbl
682683
case IProblem.MultiConstantCaseLabelsNotSupported:
683684
ReorgCorrectionsSubProcessor.getNeedHigherComplianceProposals(context, problem, proposals, JavaCore.VERSION_14);
684685
break;
685-
// case IProblem.TypeAnnotationAtQualifiedName:
686-
// case IProblem.IllegalTypeAnnotationsInStaticMemberAccess:
687-
// case IProblem.NullAnnotationAtQualifyingType:
688-
// case IProblem.IllegalAnnotationForBaseType:
689-
// TypeAnnotationSubProcessor.addMoveTypeAnnotationToTypeProposal(context,
690-
// problem, proposals);
691-
// break;
692-
686+
case IProblem.TypeAnnotationAtQualifiedName:
687+
case IProblem.IllegalTypeAnnotationsInStaticMemberAccess:
688+
case IProblem.NullAnnotationAtQualifyingType:
689+
case IProblem.IllegalAnnotationForBaseType:
690+
TypeAnnotationSubProcessor.addMoveTypeAnnotationToTypeProposal(context, problem, proposals);
691+
break;
693692
default:
694693
String str = problem.toString();
695694
System.out.println(str);
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
/*******************************************************************************
2+
* Copyright (c) 2026 Red Hat Inc. and others.
3+
* All rights reserved. This program and the accompanying materials
4+
* are made available under the terms of the Eclipse Public License 2.0
5+
* which accompanies this distribution, and is available at
6+
* http://www.eclipse.org/legal/epl-2.0
7+
*
8+
* SPDX-License-Identifier: EPL-2.0
9+
*
10+
* Contributors:
11+
* Red Hat Inc. - initial API and implementation
12+
*******************************************************************************/
13+
package org.eclipse.jdt.ls.core.internal.text.correction;
14+
15+
import java.util.Collection;
16+
17+
import org.eclipse.jdt.internal.ui.text.correction.TypeAnnotationBaseSubProcessor;
18+
import org.eclipse.jdt.internal.ui.text.correction.proposals.FixCorrectionProposalCore;
19+
import org.eclipse.jdt.ls.core.internal.corrections.ProposalKindWrapper;
20+
import org.eclipse.jdt.ls.core.internal.handlers.CodeActionHandler;
21+
import org.eclipse.jdt.ui.text.java.IInvocationContext;
22+
import org.eclipse.jdt.ui.text.java.IProblemLocation;
23+
import org.eclipse.lsp4j.CodeActionKind;
24+
25+
/**
26+
* @author jjohnstn
27+
*
28+
*/
29+
public class TypeAnnotationSubProcessor extends TypeAnnotationBaseSubProcessor<ProposalKindWrapper> {
30+
31+
public static void addMoveTypeAnnotationToTypeProposal(IInvocationContext context, IProblemLocation problem, Collection<ProposalKindWrapper> proposals) {
32+
new TypeAnnotationSubProcessor().getMoveTypeAnnotationToTypeProposal(context, problem, proposals);
33+
}
34+
35+
/* (non-Javadoc)
36+
* @see org.eclipse.jdt.internal.ui.text.correction.TypeAnnotationBaseSubProcessor#fixCorrectionProposalCoreToT(org.eclipse.jdt.internal.ui.text.correction.proposals.FixCorrectionProposalCore, int)
37+
*/
38+
@Override
39+
protected ProposalKindWrapper fixCorrectionProposalCoreToT(FixCorrectionProposalCore core, int uid) {
40+
return CodeActionHandler.wrap(core, CodeActionKind.QuickFix);
41+
}
42+
43+
}

0 commit comments

Comments
 (0)