From 0eca9e65942be6dac0413d644e4744935b2a0332 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Tue, 8 Jul 2025 20:00:53 +0200 Subject: [PATCH] [kotlin] exclude enum entries from goto class ^KTIJ-33514 fixed GitOrigin-RevId: 1dc1a59e3a5df524bec0ea69873bced6cbbc7d8a --- .../kotlin/idea/goto/gotoContributors.kt | 15 ++++++++++++++- .../navigation/gotoClass/enumEntries.result.txt | 11 +---------- .../common/resources/META-INF/navigation.xml | 2 +- 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/plugins/kotlin/base/analysis/src/org/jetbrains/kotlin/idea/goto/gotoContributors.kt b/plugins/kotlin/base/analysis/src/org/jetbrains/kotlin/idea/goto/gotoContributors.kt index c15e50b38522..4fe6f9067c44 100644 --- a/plugins/kotlin/base/analysis/src/org/jetbrains/kotlin/idea/goto/gotoContributors.kt +++ b/plugins/kotlin/base/analysis/src/org/jetbrains/kotlin/idea/goto/gotoContributors.kt @@ -73,9 +73,22 @@ abstract class AbstractKotlinGotoSymbolContributor( @ApiStatus.Internal -class KotlinGotoClassContributor : AbstractKotlinGotoSymbolContributor(KotlinClassShortNameIndex) { +abstract class KotlinAbstractGotoClassContributor(private val acceptEnums: Boolean) : AbstractKotlinGotoSymbolContributor(KotlinClassShortNameIndex) { override fun getQualifiedName(item: NavigationItem): String? = (item as? KtClassOrObject)?.fqName?.asString() + + override fun processOriginalElement( + processor: Processor, + element: KtClassOrObject + ): Boolean { + if (!acceptEnums && element is KtEnumEntry) return true + return super.processOriginalElement(processor, element) + } } +@ApiStatus.Internal +class KotlinGotoClassContributor: KotlinAbstractGotoClassContributor(acceptEnums = false) + +@ApiStatus.Internal +class KotlinGotoClassSymbolContributor: KotlinAbstractGotoClassContributor(acceptEnums = true) @ApiStatus.Internal class KotlinGotoTypeAliasContributor : AbstractKotlinGotoSymbolContributor(KotlinTypeAliasShortNameIndex) { diff --git a/plugins/kotlin/idea/tests/testData/navigation/gotoClass/enumEntries.result.txt b/plugins/kotlin/idea/tests/testData/navigation/gotoClass/enumEntries.result.txt index 37776dc7e63f..0d2b621d7acb 100644 --- a/plugins/kotlin/idea/tests/testData/navigation/gotoClass/enumEntries.result.txt +++ b/plugins/kotlin/idea/tests/testData/navigation/gotoClass/enumEntries.result.txt @@ -5,13 +5,4 @@ ItemPresentation: locationString: (some.small) icon: RowIcon(icons=[org/jetbrains/kotlin/idea/icons/enumKotlin.svg, Public]) TargetElement: public enum class EnumClass { -QualifiedName: some.small.EnumClass - -NavigationItem: - name: EnumClassTrue -ItemPresentation: - presentableText: EnumClassTrue - locationString: (in some.small.EnumClass) - icon: RowIcon(icons=[org/jetbrains/kotlin/idea/icons/enumKotlin.svg, Public]) -TargetElement: EnumClassTrue -QualifiedName: some.small.EnumClass.EnumClassTrue \ No newline at end of file +QualifiedName: some.small.EnumClass \ No newline at end of file diff --git a/plugins/kotlin/plugin/common/resources/META-INF/navigation.xml b/plugins/kotlin/plugin/common/resources/META-INF/navigation.xml index e17d4e3255c0..d7cf449293b6 100644 --- a/plugins/kotlin/plugin/common/resources/META-INF/navigation.xml +++ b/plugins/kotlin/plugin/common/resources/META-INF/navigation.xml @@ -26,7 +26,7 @@ - +