mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
parameter info: don't retrieve inferred annotations in dumb mode
This commit is contained in:
+5
-2
@@ -15,12 +15,15 @@
|
||||
*/
|
||||
package com.intellij.codeInsight.hint.api.impls;
|
||||
|
||||
import com.intellij.codeInsight.*;
|
||||
import com.intellij.codeInsight.AnnotationUtil;
|
||||
import com.intellij.codeInsight.CodeInsightBundle;
|
||||
import com.intellij.codeInsight.CodeInsightSettings;
|
||||
import com.intellij.codeInsight.completion.JavaCompletionUtil;
|
||||
import com.intellij.codeInsight.daemon.DaemonCodeAnalyzer;
|
||||
import com.intellij.codeInsight.lookup.LookupElement;
|
||||
import com.intellij.lang.parameterInfo.*;
|
||||
import com.intellij.openapi.project.DumbAware;
|
||||
import com.intellij.openapi.project.DumbService;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.impl.source.resolve.CompletionParameterTypeInferencePolicy;
|
||||
import com.intellij.psi.infos.CandidateInfo;
|
||||
@@ -443,7 +446,7 @@ public class MethodParameterInfoHandler implements ParameterInfoHandlerWithTabAc
|
||||
private static void appendModifierList(@NotNull StringBuilder buffer, @NotNull PsiModifierListOwner owner) {
|
||||
int lastSize = buffer.length();
|
||||
Set<String> shownAnnotations = ContainerUtil.newHashSet();
|
||||
for (PsiAnnotation annotation : AnnotationUtil.getAllAnnotations(owner, false, null)) {
|
||||
for (PsiAnnotation annotation : AnnotationUtil.getAllAnnotations(owner, false, null, !DumbService.isDumb(owner.getProject()))) {
|
||||
final PsiJavaCodeReferenceElement element = annotation.getNameReferenceElement();
|
||||
if (element != null) {
|
||||
final PsiElement resolved = element.resolve();
|
||||
|
||||
@@ -377,7 +377,16 @@ public class AnnotationUtil {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static PsiAnnotation[] getAllAnnotations(@NotNull PsiModifierListOwner owner, boolean inHierarchy, Set<PsiModifierListOwner> visited) {
|
||||
public static PsiAnnotation[] getAllAnnotations(@NotNull PsiModifierListOwner owner,
|
||||
boolean inHierarchy,
|
||||
Set<PsiModifierListOwner> visited) {
|
||||
return getAllAnnotations(owner, inHierarchy, visited, true);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static PsiAnnotation[] getAllAnnotations(@NotNull PsiModifierListOwner owner,
|
||||
boolean inHierarchy,
|
||||
Set<PsiModifierListOwner> visited, boolean withInferred) {
|
||||
final PsiModifierList list = owner.getModifierList();
|
||||
PsiAnnotation[] annotations = PsiAnnotation.EMPTY_ARRAY;
|
||||
if (list != null) {
|
||||
@@ -389,8 +398,10 @@ public class AnnotationUtil {
|
||||
if (externalAnnotations != null) {
|
||||
annotations = ArrayUtil.mergeArrays(annotations, externalAnnotations, PsiAnnotation.ARRAY_FACTORY);
|
||||
}
|
||||
final PsiAnnotation[] inferredAnnotations = InferredAnnotationsManager.getInstance(project).findInferredAnnotations(owner);
|
||||
annotations = ArrayUtil.mergeArrays(annotations, inferredAnnotations, PsiAnnotation.ARRAY_FACTORY);
|
||||
if (withInferred) {
|
||||
final PsiAnnotation[] inferredAnnotations = InferredAnnotationsManager.getInstance(project).findInferredAnnotations(owner);
|
||||
annotations = ArrayUtil.mergeArrays(annotations, inferredAnnotations, PsiAnnotation.ARRAY_FACTORY);
|
||||
}
|
||||
|
||||
if (inHierarchy) {
|
||||
if (owner instanceof PsiClass) {
|
||||
|
||||
Reference in New Issue
Block a user