From ef70e9db1921f3870bfc0c3f493f108ceb92dfb9 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Fri, 17 May 2019 18:13:38 +0300 Subject: [PATCH] Don't use light classes for navigation element (KT-10215) Place KotlinNavBarModelExtension before Java extension because it substitutes non-java elements to files. #KT-10215 Fixed --- idea/resources/META-INF/plugin-common.xml | 2 +- .../navigationToolbar/KotlinNavBarModelExtension.kt | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/idea/resources/META-INF/plugin-common.xml b/idea/resources/META-INF/plugin-common.xml index ef223c9ad57..ed8db941037 100644 --- a/idea/resources/META-INF/plugin-common.xml +++ b/idea/resources/META-INF/plugin-common.xml @@ -3426,6 +3426,6 @@ - + \ No newline at end of file diff --git a/idea/src/org/jetbrains/kotlin/idea/navigationToolbar/KotlinNavBarModelExtension.kt b/idea/src/org/jetbrains/kotlin/idea/navigationToolbar/KotlinNavBarModelExtension.kt index 6bb17307250..f4ecd6ccbd2 100644 --- a/idea/src/org/jetbrains/kotlin/idea/navigationToolbar/KotlinNavBarModelExtension.kt +++ b/idea/src/org/jetbrains/kotlin/idea/navigationToolbar/KotlinNavBarModelExtension.kt @@ -9,16 +9,20 @@ import com.intellij.ide.navigationToolbar.AbstractNavBarModelExtension import com.intellij.psi.PsiElement import org.jetbrains.kotlin.asJava.toLightClass import org.jetbrains.kotlin.idea.KotlinIconProvider +import org.jetbrains.kotlin.psi.KtClassOrObject import org.jetbrains.kotlin.psi.KtFile class KotlinNavBarModelExtension : AbstractNavBarModelExtension() { - override fun getPresentableText(`object`: Any?): String? { - return null + override fun getPresentableText(item: Any?): String? { + return when (item) { + is KtClassOrObject -> item.name ?: "unknown" + else -> null + } } override fun adjustElement(psiElement: PsiElement?): PsiElement? { val containingFile = psiElement?.containingFile as? KtFile ?: return psiElement if (containingFile.isScript()) return psiElement - return KotlinIconProvider.getSingleClass(containingFile)?.toLightClass() ?: psiElement + return KotlinIconProvider.getSingleClass(containingFile) ?: psiElement } }