diff --git a/idea/src/org/jetbrains/jet/plugin/hierarchy/calls/KotlinCallHierarchyNodeDescriptor.java b/idea/src/org/jetbrains/jet/plugin/hierarchy/calls/KotlinCallHierarchyNodeDescriptor.java index ef6ec887c02..2cff620cb9c 100644 --- a/idea/src/org/jetbrains/jet/plugin/hierarchy/calls/KotlinCallHierarchyNodeDescriptor.java +++ b/idea/src/org/jetbrains/jet/plugin/hierarchy/calls/KotlinCallHierarchyNodeDescriptor.java @@ -12,10 +12,8 @@ import com.intellij.openapi.util.Comparing; import com.intellij.openapi.util.Iconable; import com.intellij.openapi.util.text.StringUtil; import com.intellij.pom.Navigatable; -import com.intellij.psi.*; -import com.intellij.psi.presentation.java.ClassPresentationUtil; -import com.intellij.psi.util.PsiFormatUtil; -import com.intellij.psi.util.PsiFormatUtilBase; +import com.intellij.psi.PsiClass; +import com.intellij.psi.PsiElement; import com.intellij.psi.util.PsiTreeUtil; import com.intellij.ui.LayeredIcon; import com.intellij.util.Function; @@ -32,12 +30,9 @@ import org.jetbrains.jet.renderer.DescriptorRenderer; import javax.swing.*; import java.awt.*; -import java.util.ArrayList; -import java.util.List; public class KotlinCallHierarchyNodeDescriptor extends HierarchyNodeDescriptor implements Navigatable { private int usageCount = 1; - private final List references = new ArrayList(); private final CallHierarchyNodeDescriptor javaDelegate; public KotlinCallHierarchyNodeDescriptor(@NotNull Project project, @@ -57,14 +52,6 @@ public class KotlinCallHierarchyNodeDescriptor extends HierarchyNodeDescriptor i usageCount++; } - public void addReference(PsiReference reference) { - references.add(reference); - } - - public boolean hasReference(PsiReference reference) { - return references.contains(reference); - } - public final PsiElement getTargetElement(){ return myElement; } @@ -132,9 +119,10 @@ public class KotlinCallHierarchyNodeDescriptor extends HierarchyNodeDescriptor i ); } - if (packageName != null && packageName.length() > 0) { - myHighlightedText.getEnding().addText(" (" + packageName + ")", HierarchyNodeDescriptor.getPackageNameAttributes()); + if (packageName == null) { + packageName = ""; } + myHighlightedText.getEnding().addText(" (" + packageName + ")", HierarchyNodeDescriptor.getPackageNameAttributes()); myName = myHighlightedText.getText(); @@ -196,32 +184,12 @@ public class KotlinCallHierarchyNodeDescriptor extends HierarchyNodeDescriptor i containerDescriptor = containerDescriptor.getContainingDeclaration(); } } - else if (element instanceof PsiMember) { - PsiMember member = (PsiMember) element; - - if (member instanceof PsiMethod) { - elementText = renderPsiMethod((PsiMethod) member); - } else if (member instanceof PsiClass) { - elementText = ClassPresentationUtil.getNameForClass((PsiClass) member, false); - } else return null; - - PsiClass containingClass = member.getContainingClass(); - if (containingClass != null) { - containerText = ClassPresentationUtil.getNameForClass(containingClass, false); - } - } else return null; if (elementText == null) return null; return containerText != null ? containerText + "." + elementText : elementText; } - private static String renderPsiMethod(PsiMethod member) { - return PsiFormatUtil.formatMethod( - member, PsiSubstitutor.EMPTY, PsiFormatUtilBase.SHOW_NAME | PsiFormatUtilBase.SHOW_PARAMETERS, PsiFormatUtilBase.SHOW_TYPE - ); - } - private static String renderNamedFunction(FunctionDescriptor descriptor) { String name = descriptor.getName().asString(); String paramTypes = StringUtil.join( diff --git a/idea/src/org/jetbrains/jet/plugin/hierarchy/calls/KotlinCallerMethodsTreeStructure.java b/idea/src/org/jetbrains/jet/plugin/hierarchy/calls/KotlinCallerMethodsTreeStructure.java index b370ce2ab87..862db48989d 100644 --- a/idea/src/org/jetbrains/jet/plugin/hierarchy/calls/KotlinCallerMethodsTreeStructure.java +++ b/idea/src/org/jetbrains/jet/plugin/hierarchy/calls/KotlinCallerMethodsTreeStructure.java @@ -89,8 +89,8 @@ public class KotlinCallerMethodsTreeStructure extends KotlinCallTreeStructure { private Object[] processCallers(PsiElement element, HierarchyNodeDescriptor descriptor) { SearchScope searchScope = getSearchScope(scopeType, basePsiClass); - Map methodToDescriptorMap = - new HashMap(); + Map methodToDescriptorMap = + new HashMap(); Object[] javaCallers = null; if (element instanceof PsiMethod && javaTreeStructure != null) { @@ -118,7 +118,7 @@ public class KotlinCallerMethodsTreeStructure extends KotlinCallTreeStructure { private void processPsiMethodCallers( @Nullable PsiMethod lightMethod, HierarchyNodeDescriptor descriptor, - Map methodToDescriptorMap, + Map methodToDescriptorMap, SearchScope searchScope, boolean kotlinOnly ) { @@ -130,7 +130,7 @@ public class KotlinCallerMethodsTreeStructure extends KotlinCallTreeStructure { private void processJetClassOrObjectCallers( final JetClassOrObject classOrObject, HierarchyNodeDescriptor descriptor, - Map methodToDescriptorMap, + Map methodToDescriptorMap, SearchScope searchScope ) { Processor processor = new FilteringProcessor( @@ -147,7 +147,7 @@ public class KotlinCallerMethodsTreeStructure extends KotlinCallTreeStructure { private Processor defaultQueryProcessor( final HierarchyNodeDescriptor descriptor, - final Map methodToDescriptorMap, + final Map methodToDescriptorMap, final boolean kotlinOnly ) { return new ReadActionProcessor() { @@ -188,15 +188,7 @@ public class KotlinCallerMethodsTreeStructure extends KotlinCallTreeStructure { } if (element != null) { - KotlinCallHierarchyNodeDescriptor d = methodToDescriptorMap.get(element); - if (d == null) { - d = new KotlinCallHierarchyNodeDescriptor(myProject, descriptor, element, false, true); - methodToDescriptorMap.put(element, d); - } - else if (!d.hasReference(ref)) { - d.incrementUsageCount(); - } - d.addReference(ref); + addNodeDescriptorForElement(element, methodToDescriptorMap, descriptor); } return true; diff --git a/idea/testData/hierarchy/calls/callees/javaConstructor/JavaConstructor_verification.xml b/idea/testData/hierarchy/calls/callees/javaConstructor/JavaConstructor_verification.xml index 7319ab48fef..ace35f140cb 100644 --- a/idea/testData/hierarchy/calls/callees/javaConstructor/JavaConstructor_verification.xml +++ b/idea/testData/hierarchy/calls/callees/javaConstructor/JavaConstructor_verification.xml @@ -1,4 +1,4 @@ - + diff --git a/idea/testData/hierarchy/calls/callees/javaMethod/JavaMethod_verification.xml b/idea/testData/hierarchy/calls/callees/javaMethod/JavaMethod_verification.xml index 7e8f8c64157..dccd4d3f47c 100644 --- a/idea/testData/hierarchy/calls/callees/javaMethod/JavaMethod_verification.xml +++ b/idea/testData/hierarchy/calls/callees/javaMethod/JavaMethod_verification.xml @@ -1,4 +1,4 @@ - + diff --git a/idea/testData/hierarchy/calls/callees/kotlinClass/KotlinClass_verification.xml b/idea/testData/hierarchy/calls/callees/kotlinClass/KotlinClass_verification.xml index 3f1353add64..3f64b1c89f7 100644 --- a/idea/testData/hierarchy/calls/callees/kotlinClass/KotlinClass_verification.xml +++ b/idea/testData/hierarchy/calls/callees/kotlinClass/KotlinClass_verification.xml @@ -1,15 +1,15 @@ - - - - - - - + + + + + + + - - + + + - - + diff --git a/idea/testData/hierarchy/calls/callees/kotlinClassObject/KotlinClassObject_verification.xml b/idea/testData/hierarchy/calls/callees/kotlinClassObject/KotlinClassObject_verification.xml index 5916f091b3f..f3d935eeb61 100644 --- a/idea/testData/hierarchy/calls/callees/kotlinClassObject/KotlinClassObject_verification.xml +++ b/idea/testData/hierarchy/calls/callees/kotlinClassObject/KotlinClassObject_verification.xml @@ -1,10 +1,10 @@ - - - - - - - + + + + - \ No newline at end of file + + + + diff --git a/idea/testData/hierarchy/calls/callees/kotlinEnumClass/KotlinEnumClass_verification.xml b/idea/testData/hierarchy/calls/callees/kotlinEnumClass/KotlinEnumClass_verification.xml index 1328a954edd..d71187d5cd9 100644 --- a/idea/testData/hierarchy/calls/callees/kotlinEnumClass/KotlinEnumClass_verification.xml +++ b/idea/testData/hierarchy/calls/callees/kotlinEnumClass/KotlinEnumClass_verification.xml @@ -1,10 +1,10 @@ - - - - - - - + + + - \ No newline at end of file + + + + + diff --git a/idea/testData/hierarchy/calls/callees/kotlinFunction/KotlinFunction_verification.xml b/idea/testData/hierarchy/calls/callees/kotlinFunction/KotlinFunction_verification.xml index 05a6d2bdfda..c89544e03b0 100644 --- a/idea/testData/hierarchy/calls/callees/kotlinFunction/KotlinFunction_verification.xml +++ b/idea/testData/hierarchy/calls/callees/kotlinFunction/KotlinFunction_verification.xml @@ -1,14 +1,14 @@ - - - - - - - - - + + + + + - - + + + + + + diff --git a/idea/testData/hierarchy/calls/callees/kotlinObject/KotlinObject_verification.xml b/idea/testData/hierarchy/calls/callees/kotlinObject/KotlinObject_verification.xml index 3f1353add64..7c77baba027 100644 --- a/idea/testData/hierarchy/calls/callees/kotlinObject/KotlinObject_verification.xml +++ b/idea/testData/hierarchy/calls/callees/kotlinObject/KotlinObject_verification.xml @@ -1,15 +1,15 @@ - - - - - - - + + - - + + + + + + + - - + + diff --git a/idea/testData/hierarchy/calls/callees/kotlinProperty/KotlinProperty_verification.xml b/idea/testData/hierarchy/calls/callees/kotlinProperty/KotlinProperty_verification.xml index 3ca42833182..c630d78fb8a 100644 --- a/idea/testData/hierarchy/calls/callees/kotlinProperty/KotlinProperty_verification.xml +++ b/idea/testData/hierarchy/calls/callees/kotlinProperty/KotlinProperty_verification.xml @@ -1,14 +1,14 @@ - - - + + + - - - - - + + + + + + + - - diff --git a/idea/testData/hierarchy/calls/callers/javaConstructor/JavaConstructor_verification.xml b/idea/testData/hierarchy/calls/callers/javaConstructor/JavaConstructor_verification.xml index 9b195204881..03cdfc440b0 100644 --- a/idea/testData/hierarchy/calls/callers/javaConstructor/JavaConstructor_verification.xml +++ b/idea/testData/hierarchy/calls/callers/javaConstructor/JavaConstructor_verification.xml @@ -1,7 +1,7 @@ - + + - - - + + diff --git a/idea/testData/hierarchy/calls/callers/javaMethod/JavaMethod_verification.xml b/idea/testData/hierarchy/calls/callers/javaMethod/JavaMethod_verification.xml index 1d1abf12886..8992cec2e2e 100644 --- a/idea/testData/hierarchy/calls/callers/javaMethod/JavaMethod_verification.xml +++ b/idea/testData/hierarchy/calls/callers/javaMethod/JavaMethod_verification.xml @@ -1,7 +1,7 @@ - - - + - - + + + + diff --git a/idea/testData/hierarchy/calls/callers/kotlinClass/KotlinClass_verification.xml b/idea/testData/hierarchy/calls/callers/kotlinClass/KotlinClass_verification.xml index 25a116a8b14..a040ef387e8 100644 --- a/idea/testData/hierarchy/calls/callers/kotlinClass/KotlinClass_verification.xml +++ b/idea/testData/hierarchy/calls/callers/kotlinClass/KotlinClass_verification.xml @@ -1,12 +1,12 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/idea/testData/hierarchy/calls/callers/kotlinFunction/KotlinFunction_verification.xml b/idea/testData/hierarchy/calls/callers/kotlinFunction/KotlinFunction_verification.xml index bb728347b60..53c5b586e54 100644 --- a/idea/testData/hierarchy/calls/callers/kotlinFunction/KotlinFunction_verification.xml +++ b/idea/testData/hierarchy/calls/callers/kotlinFunction/KotlinFunction_verification.xml @@ -1,12 +1,12 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/idea/testData/hierarchy/calls/callers/kotlinProperty/KotlinProperty_verification.xml b/idea/testData/hierarchy/calls/callers/kotlinProperty/KotlinProperty_verification.xml index ee96c82c7b4..40a8a3154d7 100644 --- a/idea/testData/hierarchy/calls/callers/kotlinProperty/KotlinProperty_verification.xml +++ b/idea/testData/hierarchy/calls/callers/kotlinProperty/KotlinProperty_verification.xml @@ -1,12 +1,12 @@ - - - - - - - - - - - + + + + + + + + + + +