From 3b01ccb40d8f4656e7725b5bfce36a78a8a45c58 Mon Sep 17 00:00:00 2001 From: Tagir Valeev Date: Wed, 29 Jun 2022 17:58:33 +0200 Subject: [PATCH] [java-intentions] QualifyWithThisFix, QualifySuperArgumentFix, QualifyThisArgumentFix: preview-friendly Also suppress inspection for batch-only fix in CanBeFinalInspection GitOrigin-RevId: 057700463f96bff1f33b2e00ab48e9cb357a2383 --- .../daemon/impl/quickfix/QualifySuperArgumentFix.java | 7 +++++++ .../daemon/impl/quickfix/QualifyThisArgumentFix.java | 7 +++++++ .../daemon/impl/quickfix/QualifyWithThisFix.java | 8 ++++++++ .../codeInspection/canBeFinal/CanBeFinalInspection.java | 1 + 4 files changed, 23 insertions(+) diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/QualifySuperArgumentFix.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/QualifySuperArgumentFix.java index 712f94cb8509..a71eca67e0dc 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/QualifySuperArgumentFix.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/QualifySuperArgumentFix.java @@ -17,17 +17,24 @@ package com.intellij.codeInsight.daemon.impl.quickfix; import com.intellij.codeInsight.daemon.impl.HighlightInfo; +import com.intellij.codeInsight.intention.FileModifier; import com.intellij.psi.*; import com.intellij.psi.util.PsiTreeUtil; import com.intellij.refactoring.util.RefactoringChangeUtil; import com.intellij.util.IncorrectOperationException; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; public class QualifySuperArgumentFix extends QualifyThisOrSuperArgumentFix { public QualifySuperArgumentFix(@NotNull PsiExpression expression, @NotNull PsiClass psiClass) { super(expression, psiClass); } + @Override + public @Nullable FileModifier getFileModifierForPreview(@NotNull PsiFile target) { + return new QualifySuperArgumentFix(PsiTreeUtil.findSameElementInCopy(myExpression, target), myPsiClass); + } + @Override protected String getQualifierText() { return PsiKeyword.SUPER; diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/QualifyThisArgumentFix.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/QualifyThisArgumentFix.java index f8c9125b6510..7300cd7d4943 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/QualifyThisArgumentFix.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/QualifyThisArgumentFix.java @@ -17,6 +17,7 @@ package com.intellij.codeInsight.daemon.impl.quickfix; import com.intellij.codeInsight.daemon.impl.HighlightInfo; +import com.intellij.codeInsight.intention.FileModifier; import com.intellij.openapi.util.TextRange; import com.intellij.psi.*; import com.intellij.psi.infos.CandidateInfo; @@ -25,6 +26,7 @@ import com.intellij.psi.util.PsiUtil; import com.intellij.psi.util.TypeConversionUtil; import com.intellij.refactoring.util.RefactoringChangeUtil; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.util.HashSet; import java.util.Set; @@ -34,6 +36,11 @@ public class QualifyThisArgumentFix extends QualifyThisOrSuperArgumentFix{ super(expression, psiClass); } + @Override + public @Nullable FileModifier getFileModifierForPreview(@NotNull PsiFile target) { + return new QualifyThisArgumentFix(PsiTreeUtil.findSameElementInCopy(myExpression, target), myPsiClass); + } + @Override protected String getQualifierText() { return PsiKeyword.THIS; diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/QualifyWithThisFix.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/QualifyWithThisFix.java index 941d3f71700e..60dfba1ed4f2 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/QualifyWithThisFix.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/QualifyWithThisFix.java @@ -15,14 +15,17 @@ */ package com.intellij.codeInsight.daemon.impl.quickfix; +import com.intellij.codeInsight.intention.FileModifier; import com.intellij.codeInsight.intention.IntentionAction; import com.intellij.java.analysis.JavaAnalysisBundle; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.project.Project; import com.intellij.psi.*; +import com.intellij.psi.util.PsiTreeUtil; import com.intellij.refactoring.util.RefactoringChangeUtil; import com.intellij.util.IncorrectOperationException; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; public class QualifyWithThisFix implements IntentionAction { private final PsiClass myContainingClass; @@ -33,6 +36,11 @@ public class QualifyWithThisFix implements IntentionAction { myExpression = expression; } + @Override + public @Nullable FileModifier getFileModifierForPreview(@NotNull PsiFile target) { + return new QualifyWithThisFix(myContainingClass, PsiTreeUtil.findSameElementInCopy(myExpression, target)); + } + @NotNull @Override public String getText() { diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/canBeFinal/CanBeFinalInspection.java b/java/java-analysis-impl/src/com/intellij/codeInspection/canBeFinal/CanBeFinalInspection.java index 415488159697..42fc139eafb2 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/canBeFinal/CanBeFinalInspection.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/canBeFinal/CanBeFinalInspection.java @@ -195,6 +195,7 @@ public class CanBeFinalInspection extends GlobalJavaBatchInspectionTool { } private static class AcceptSuggested implements LocalQuickFix { + @SafeFieldForPreview private final RefManager myManager; AcceptSuggested(final RefManager manager) {