mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
disable static import on-the-fly suggestion if nothing applicable found (following IDEA-CR-7943)
This commit is contained in:
+2
-2
@@ -46,7 +46,7 @@ abstract class MyStaticMembersProcessor<T extends PsiMember> implements Processo
|
||||
protected abstract boolean isApplicable(T member, PsiElement place);
|
||||
|
||||
@NotNull
|
||||
public List<T> getMembersToImport() {
|
||||
public List<T> getMembersToImport(boolean applicableOnly) {
|
||||
final List<T> list = new ArrayList<T>();
|
||||
final List<T> applicableList = new ArrayList<T>();
|
||||
for (Map.Entry<PsiClass, Collection<T>> methodEntry : mySuggestions.entrySet()) {
|
||||
@@ -57,7 +57,7 @@ abstract class MyStaticMembersProcessor<T extends PsiMember> implements Processo
|
||||
registerMember(deprecatedMethod.getKey(), deprecatedMethod.getValue(), list, applicableList);
|
||||
}
|
||||
|
||||
List<T> result = applicableList.isEmpty() ? list : applicableList;
|
||||
List<T> result = !applicableOnly && applicableList.isEmpty() ? list : applicableList;
|
||||
for (int i = result.size() - 1; i >= 0; i--) {
|
||||
ProgressManager.checkCanceled();
|
||||
T method = result.get(i);
|
||||
|
||||
+2
-2
@@ -52,7 +52,7 @@ public class StaticImportConstantFix extends StaticImportMemberFix<PsiField> {
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
protected List<PsiField> getMembersToImport() {
|
||||
protected List<PsiField> getMembersToImport(boolean applicableOnly) {
|
||||
final Project project = myRef.getProject();
|
||||
PsiShortNamesCache cache = PsiShortNamesCache.getInstance(project);
|
||||
final PsiJavaCodeReferenceElement element = myRef.getElement();
|
||||
@@ -66,7 +66,7 @@ public class StaticImportConstantFix extends StaticImportMemberFix<PsiField> {
|
||||
}
|
||||
};
|
||||
cache.processFieldsWithName(name, processor, element.getResolveScope(), null);
|
||||
return processor.getMembersToImport();
|
||||
return processor.getMembersToImport(applicableOnly);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
+4
-3
@@ -70,11 +70,11 @@ public abstract class StaticImportMemberFix<T extends PsiMember> implements Inte
|
||||
&& getQualifierExpression() == null
|
||||
&& resolveRef() == null
|
||||
&& file.getManager().isInProject(file)
|
||||
&& !(candidates == null ? candidates = getMembersToImport() : candidates).isEmpty()
|
||||
&& !(candidates == null ? candidates = getMembersToImport(false) : candidates).isEmpty()
|
||||
;
|
||||
}
|
||||
|
||||
@NotNull protected abstract List<T> getMembersToImport();
|
||||
@NotNull protected abstract List<T> getMembersToImport(boolean applicableOnly);
|
||||
@NotNull protected abstract QuestionAction createQuestionAction(List<T> methodsToImport, @NotNull Project project, Editor editor);
|
||||
|
||||
@Nullable protected abstract PsiElement getElement();
|
||||
@@ -87,7 +87,7 @@ public abstract class StaticImportMemberFix<T extends PsiMember> implements Inte
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
final List<T> methodsToImport = getMembersToImport();
|
||||
final List<T> methodsToImport = getMembersToImport(false);
|
||||
if (methodsToImport.isEmpty()) return;
|
||||
createQuestionAction(methodsToImport, project, editor).execute();
|
||||
}
|
||||
@@ -95,6 +95,7 @@ public abstract class StaticImportMemberFix<T extends PsiMember> implements Inte
|
||||
}
|
||||
|
||||
private ImportClassFixBase.Result doFix(Editor editor) {
|
||||
final List<T> candidates = getMembersToImport(true);
|
||||
if (candidates.isEmpty()) {
|
||||
return ImportClassFixBase.Result.POPUP_NOT_SHOWN;
|
||||
}
|
||||
|
||||
+2
-2
@@ -55,7 +55,7 @@ public class StaticImportMethodFix extends StaticImportMemberFix<PsiMethod> {
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
protected List<PsiMethod> getMembersToImport() {
|
||||
protected List<PsiMethod> getMembersToImport(boolean applicableOnly) {
|
||||
final Project project = myMethodCall.getProject();
|
||||
PsiShortNamesCache cache = PsiShortNamesCache.getInstance(project);
|
||||
final PsiMethodCallExpression element = myMethodCall.getElement();
|
||||
@@ -64,7 +64,7 @@ public class StaticImportMethodFix extends StaticImportMemberFix<PsiMethod> {
|
||||
if (name == null) return Collections.emptyList();
|
||||
final MyStaticMembersProcessor<PsiMethod> processor = new MyStaticMethodProcessor(project, element);
|
||||
cache.processMethodsWithName(name, element.getResolveScope(), processor);
|
||||
return processor.getMembersToImport();
|
||||
return processor.getMembersToImport(applicableOnly);
|
||||
}
|
||||
|
||||
public static boolean isExcluded(PsiMember method) {
|
||||
|
||||
Reference in New Issue
Block a user