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 @@ - +