rename for clarity, cleanup

GitOrigin-RevId: 0f5ff94bf700ee673f246b76d0f3929e33c212e0
This commit is contained in:
Alexey Kudravtsev
2022-08-03 08:34:15 +00:00
committed by intellij-monorepo-bot
parent b18487ea45
commit 6fbab6ab16
6 changed files with 54 additions and 54 deletions
@@ -2,6 +2,7 @@
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.daemon.QuickFixBundle;
import com.intellij.codeInsight.hint.QuestionAction;
import com.intellij.codeInsight.intention.preview.IntentionPreviewInfo;
import com.intellij.java.JavaBundle;
import com.intellij.openapi.command.WriteCommandAction;
@@ -37,10 +38,10 @@ public class QualifyStaticConstantFix extends StaticImportConstantFix {
@NotNull
@Override
protected StaticImportMethodQuestionAction<PsiField> createQuestionAction(@NotNull List<? extends PsiField> fieldsToImport,
@NotNull Project project,
Editor editor) {
return new StaticImportMethodQuestionAction<>(project, editor, fieldsToImport, myRef) {
protected QuestionAction createQuestionAction(@NotNull List<? extends PsiField> fieldsToImport,
@NotNull Project project,
Editor editor) {
return new StaticImportMemberQuestionAction<PsiField>(project, editor, fieldsToImport, myRef) {
@NotNull
@Override
protected String getPopupTitle() {
@@ -1,6 +1,7 @@
// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.hint.QuestionAction;
import com.intellij.codeInsight.intention.preview.IntentionPreviewInfo;
import com.intellij.java.JavaBundle;
import com.intellij.openapi.command.WriteCommandAction;
@@ -25,10 +26,10 @@ public class QualifyStaticMethodCallFix extends StaticImportMethodFix {
@NotNull
@Override
protected StaticImportMethodQuestionAction<PsiMethod> createQuestionAction(@NotNull List<? extends PsiMethod> methodsToImport,
@NotNull Project project,
Editor editor) {
return new StaticImportMethodQuestionAction<>(project, editor, methodsToImport, myRef) {
protected QuestionAction createQuestionAction(@NotNull List<? extends PsiMethod> methodsToImport,
@NotNull Project project,
Editor editor) {
return new StaticImportMemberQuestionAction<PsiMethod>(project, editor, methodsToImport, myRef) {
@Override
protected void doImport(@NotNull PsiMethod toImport) {
PsiMethodCallExpression element = myRef.getElement();
@@ -2,6 +2,7 @@
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.daemon.QuickFixBundle;
import com.intellij.codeInsight.hint.QuestionAction;
import com.intellij.codeInsight.intention.HighPriorityAction;
import com.intellij.codeInsight.intention.impl.AddSingleMemberStaticImportAction;
import com.intellij.codeInsight.intention.preview.IntentionPreviewInfo;
@@ -70,8 +71,8 @@ public class StaticImportConstantFix extends StaticImportMemberFix<PsiField, Psi
@Override
@NotNull
protected StaticImportMethodQuestionAction<PsiField> createQuestionAction(@NotNull List<? extends PsiField> methodsToImport, @NotNull Project project, Editor editor) {
return new StaticImportMethodQuestionAction<>(project, editor, methodsToImport, myRef) {
protected QuestionAction createQuestionAction(@NotNull List<? extends PsiField> methodsToImport, @NotNull Project project, Editor editor) {
return new StaticImportMemberQuestionAction<PsiField>(project, editor, methodsToImport, myRef) {
@NotNull
@Override
protected String getPopupTitle() {
@@ -17,6 +17,7 @@ import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.NlsSafe;
import com.intellij.openapi.util.TextRange;
import com.intellij.psi.*;
import com.intellij.psi.util.PsiModificationTracker;
import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.psi.util.PsiUtil;
import com.intellij.util.containers.ContainerUtil;
@@ -31,8 +32,8 @@ abstract class StaticImportMemberFix<T extends PsiMember, R extends PsiElement>
private final List<SmartPsiElementPointer<T>> myApplicableCandidates;
private final List<T> candidates;
protected final SmartPsiElementPointer<R> myRef;
private final long myPsiModificationCount;
@SuppressWarnings("AbstractMethodCallInConstructor")
StaticImportMemberFix(@NotNull PsiFile file, @NotNull R reference) {
Project project = file.getProject();
myRef = SmartPointerManager.getInstance(project).createSmartPsiElementPointer(reference);
@@ -41,6 +42,7 @@ abstract class StaticImportMemberFix<T extends PsiMember, R extends PsiElement>
candidates = applicableCandidates.isEmpty() ?
getMembersToImport(false, 2) : applicableCandidates;
myApplicableCandidates = ContainerUtil.map(applicableCandidates, SmartPointerManager::createPointer);
myPsiModificationCount = PsiModificationTracker.getInstance(project).getModificationCount();
}
@NotNull
@@ -87,6 +89,11 @@ abstract class StaticImportMemberFix<T extends PsiMember, R extends PsiElement>
;
}
private boolean isPsiModificationStampChanged(@NotNull Project project) {
long currentPsiModificationCount = PsiModificationTracker.getInstance(project).getModificationCount();
return currentPsiModificationCount != myPsiModificationCount;
}
@NotNull
abstract List<T> getMembersToImport(boolean applicableOnly, int maxResults);
@@ -117,40 +124,6 @@ abstract class StaticImportMemberFix<T extends PsiMember, R extends PsiElement>
});
}
@NotNull
private ImportClassFixBase.Result doFix(@NotNull Editor editor) {
if (!CodeInsightSettings.getInstance().ADD_MEMBER_IMPORTS_ON_THE_FLY) {
return ImportClassFixBase.Result.POPUP_NOT_SHOWN;
}
List<T> candidates = ContainerUtil.mapNotNull(myApplicableCandidates, SmartPsiElementPointer::getElement);
if (candidates.isEmpty()) {
return ImportClassFixBase.Result.POPUP_NOT_SHOWN;
}
PsiElement element = getElement();
if (element == null) {
return ImportClassFixBase.Result.POPUP_NOT_SHOWN;
}
if (toAddStaticImports() &&
candidates.size() == 1 &&
PsiTreeUtil.isAncestor(element.getContainingFile(), candidates.get(0), true)) {
return ImportClassFixBase.Result.POPUP_NOT_SHOWN;
}
QuestionAction action = createQuestionAction(candidates, element.getProject(), editor);
String hintText = ShowAutoImportPass.getMessage(candidates.size() > 1, getMemberPresentableText(candidates.get(0)));
if (!ApplicationManager.getApplication().isHeadlessEnvironment()
&& !HintManager.getInstance().hasShownHintsThatWillHideByOtherHint(true)) {
TextRange textRange = element.getTextRange();
HintManager.getInstance().showQuestionHint(editor, hintText,
textRange.getStartOffset(),
textRange.getEndOffset(), action);
}
return ImportClassFixBase.Result.POPUP_SHOWN;
}
@Override
public boolean startInWriteAction() {
@@ -160,11 +133,34 @@ abstract class StaticImportMemberFix<T extends PsiMember, R extends PsiElement>
@Override
public boolean showHint(@NotNull Editor editor) {
PsiElement callExpression = getElement();
if (callExpression == null ||
getQualifierExpression() != null) {
if (callExpression == null || getQualifierExpression() != null) {
return false;
}
ImportClassFixBase.Result result = doFix(editor);
return result == ImportClassFixBase.Result.POPUP_SHOWN || result == ImportClassFixBase.Result.CLASS_AUTO_IMPORTED;
if (!CodeInsightSettings.getInstance().ADD_MEMBER_IMPORTS_ON_THE_FLY) {
return false;
}
List<T> candidates = ContainerUtil.mapNotNull(myApplicableCandidates, SmartPsiElementPointer::getElement);
if (candidates.isEmpty()) {
return false;
}
T firstCandidate = candidates.get(0);
PsiFile containingFile = callExpression.getContainingFile();
if (!toAddStaticImports() ||
candidates.size() != 1 ||
!PsiTreeUtil.isAncestor(containingFile, firstCandidate, true)) {
if (!ApplicationManager.getApplication().isHeadlessEnvironment()
&& !HintManager.getInstance().hasShownHintsThatWillHideByOtherHint(true)) {
TextRange textRange = callExpression.getTextRange();
QuestionAction action = createQuestionAction(candidates, containingFile.getProject(), editor);
String hintText = ShowAutoImportPass.getMessage(candidates.size() > 1, getMemberPresentableText(firstCandidate));
HintManager.getInstance().showQuestionHint(editor, hintText,
textRange.getStartOffset(),
textRange.getEndOffset(), action);
}
return true;
}
return false;
}
}
@@ -31,14 +31,14 @@ import javax.swing.*;
import java.awt.*;
import java.util.List;
public class StaticImportMethodQuestionAction<T extends PsiMember> implements QuestionAction {
private static final Logger LOG = Logger.getInstance(StaticImportMethodQuestionAction.class);
class StaticImportMemberQuestionAction<T extends PsiMember> implements QuestionAction {
private static final Logger LOG = Logger.getInstance(StaticImportMemberQuestionAction.class);
private final Project myProject;
private final Editor myEditor;
private final List<? extends T> myCandidates;
private final SmartPsiElementPointer<? extends PsiElement> myRef;
StaticImportMethodQuestionAction(@NotNull Project project,
StaticImportMemberQuestionAction(@NotNull Project project,
Editor editor,
@NotNull List<? extends T> candidates,
@NotNull SmartPsiElementPointer<? extends PsiElement> ref) {
@@ -2,6 +2,7 @@
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.daemon.QuickFixBundle;
import com.intellij.codeInsight.hint.QuestionAction;
import com.intellij.codeInsight.intention.impl.AddSingleMemberStaticImportAction;
import com.intellij.codeInsight.intention.preview.IntentionPreviewInfo;
import com.intellij.openapi.editor.Editor;
@@ -64,8 +65,8 @@ public class StaticImportMethodFix extends StaticImportMemberFix<PsiMethod, PsiM
@Override
@NotNull
protected StaticImportMethodQuestionAction<PsiMethod> createQuestionAction(@NotNull List<? extends PsiMethod> methodsToImport, @NotNull Project project, Editor editor) {
return new StaticImportMethodQuestionAction<>(project, editor, methodsToImport, myRef);
protected QuestionAction createQuestionAction(@NotNull List<? extends PsiMethod> methodsToImport, @NotNull Project project, Editor editor) {
return new StaticImportMemberQuestionAction<>(project, editor, methodsToImport, myRef);
}
@Nullable