mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
rename for clarity, cleanup
GitOrigin-RevId: 0f5ff94bf700ee673f246b76d0f3929e33c212e0
This commit is contained in:
committed by
intellij-monorepo-bot
parent
b18487ea45
commit
6fbab6ab16
+5
-4
@@ -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() {
|
||||
|
||||
+5
-4
@@ -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();
|
||||
|
||||
+3
-2
@@ -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() {
|
||||
|
||||
+35
-39
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -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) {
|
||||
+3
-2
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user