From 0a4d21c51ffddb0b008b32ece26641eb8f769543 Mon Sep 17 00:00:00 2001 From: Toshiaki Kameyama Date: Wed, 8 May 2019 18:42:44 +0900 Subject: [PATCH] Sort by class name in navigation bar (KT-10215) #KT-10215 Fixed --- idea/resources/META-INF/plugin-common.xml | 2 ++ .../KotlinNavBarModelExtension.kt | 24 +++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 idea/src/org/jetbrains/kotlin/idea/navigationToolbar/KotlinNavBarModelExtension.kt diff --git a/idea/resources/META-INF/plugin-common.xml b/idea/resources/META-INF/plugin-common.xml index 7f0a06c1b20..ef223c9ad57 100644 --- a/idea/resources/META-INF/plugin-common.xml +++ b/idea/resources/META-INF/plugin-common.xml @@ -3425,5 +3425,7 @@ + + \ 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 new file mode 100644 index 00000000000..6bb17307250 --- /dev/null +++ b/idea/src/org/jetbrains/kotlin/idea/navigationToolbar/KotlinNavBarModelExtension.kt @@ -0,0 +1,24 @@ +/* + * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.idea.navigationToolbar + +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.KtFile + +class KotlinNavBarModelExtension : AbstractNavBarModelExtension() { + override fun getPresentableText(`object`: Any?): String? { + return 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 + } +}