From 17b05de3f41031fdd0841923344d30ed2b0ad095 Mon Sep 17 00:00:00 2001 From: Vladimir Rudev Date: Sun, 4 Nov 2012 11:30:29 +0400 Subject: [PATCH] Icon for kotlin declarations detected by descriptor --- .../codeInsight/DescriptorClassMember.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/idea/src/org/jetbrains/jet/plugin/codeInsight/DescriptorClassMember.java b/idea/src/org/jetbrains/jet/plugin/codeInsight/DescriptorClassMember.java index ed21fc8129e..034a4a09e19 100644 --- a/idea/src/org/jetbrains/jet/plugin/codeInsight/DescriptorClassMember.java +++ b/idea/src/org/jetbrains/jet/plugin/codeInsight/DescriptorClassMember.java @@ -29,6 +29,7 @@ import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; import org.jetbrains.jet.lang.psi.JetClass; import org.jetbrains.jet.lang.psi.JetDeclaration; import org.jetbrains.jet.lang.psi.JetNamedDeclaration; +import org.jetbrains.jet.plugin.JetDescriptorIconProvider; import org.jetbrains.jet.resolve.DescriptorRenderer; import javax.swing.*; @@ -51,11 +52,18 @@ public class DescriptorClassMember implements ClassMemberWithElement { myDescriptor = descriptor; if (myPsiElement.isValid()) { boolean isClass = myPsiElement instanceof PsiClass || myPsiElement instanceof JetClass; - int flags = isClass ? 0 : 3; - icon = myPsiElement.getIcon(flags); + int flags = isClass ? 0 : 1; + if (myPsiElement instanceof JetDeclaration) { // kotlin declaration + // visibility and abstraction better detect by a descriptor + icon = JetDescriptorIconProvider.getIcon(myDescriptor, flags); + } + else { + // it is better to show java icons for java code + icon = myPsiElement.getIcon(flags); + } } else { - icon = null; + icon = JetDescriptorIconProvider.getIcon(myDescriptor, 0); } } @@ -72,7 +80,7 @@ public class DescriptorClassMember implements ClassMemberWithElement { declaration = ((PsiMember) myPsiElement).getContainingClass(); } assert parent != null : NO_PARENT_FOR + myDescriptor; - assert declaration != null : String.format("No parent of type %s for %s", JetNamedDeclaration.class.getSimpleName(), myPsiElement); + assert declaration != null : NO_PARENT_FOR + myPsiElement; return new DescriptorClassMember(declaration, parent); }