mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
names highlighting: don't highlight typed reference as class name (IDEA-65270)
This commit is contained in:
+15
-1
@@ -851,7 +851,21 @@ public class HighlightVisitorImpl extends JavaElementVisitor implements Highligh
|
||||
myHolder.add(HighlightNamesUtil.highlightClassName(null, element, colorsScheme));
|
||||
}
|
||||
else if (resolved instanceof PsiClass) {
|
||||
myHolder.add(HighlightNamesUtil.highlightClassName((PsiClass)resolved, element, colorsScheme));
|
||||
final PsiElement qualifier = element.getQualifier();
|
||||
boolean hasNameHighlighting = qualifier instanceof PsiJavaCodeReferenceElement &&
|
||||
((PsiJavaCodeReferenceElement)qualifier).getTypeParameters().length > 0;
|
||||
final PsiElement referenceNameElement = element.getReferenceNameElement();
|
||||
final List<PsiElement> toHighlight = new ArrayList<>();
|
||||
if (hasNameHighlighting && referenceNameElement != null) {
|
||||
toHighlight.add(referenceNameElement);
|
||||
toHighlight.addAll(PsiTreeUtil.findChildrenOfType(element, PsiJavaCodeReferenceElement.class));
|
||||
}
|
||||
else {
|
||||
toHighlight.add(element);
|
||||
}
|
||||
for (PsiElement psiElement : toHighlight) {
|
||||
myHolder.add(HighlightNamesUtil.highlightClassName((PsiClass)resolved, psiElement, colorsScheme));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+6
@@ -94,4 +94,10 @@ class <symbolName descr="null" type="CLASS_NAME">InheritedSymbolNames</symbolNam
|
||||
return "classC";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class <symbolName descr="null" type="CLASS_NAME">Node</symbolName><<symbolName descr="null" type="TYPE_PARAMETER_NAME">E</symbolName>> {
|
||||
public class <symbolName descr="null" type="CLASS_NAME">Details</symbolName> {}
|
||||
|
||||
<symbolName descr="null" type="CLASS_NAME">Node</symbolName><? extends <symbolName descr="null" type="CLASS_NAME">String</symbolName>>.<symbolName descr="null" type="CLASS_NAME">Details</symbolName> <symbolName descr="null" type="INSTANCE_FIELD">details</symbolName>;
|
||||
}
|
||||
Reference in New Issue
Block a user