From d565e188896a421255c11e0b6a7c70bed51588fb Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Fri, 18 Nov 2016 14:56:18 +0100 Subject: [PATCH] Show enum constants in Goto Symbol #KT-6535 Fixed --- .../jetbrains/kotlin/idea/goto/gotoContributors.kt | 12 +++--------- idea/testData/navigation/gotoSymbol/enumConstants.kt | 5 +++++ .../idea/navigation/KotlinGotoTestGenerated.java | 6 ++++++ 3 files changed, 14 insertions(+), 9 deletions(-) create mode 100644 idea/testData/navigation/gotoSymbol/enumConstants.kt diff --git a/idea/src/org/jetbrains/kotlin/idea/goto/gotoContributors.kt b/idea/src/org/jetbrains/kotlin/idea/goto/gotoContributors.kt index 219d7f6c319..e16597ee353 100644 --- a/idea/src/org/jetbrains/kotlin/idea/goto/gotoContributors.kt +++ b/idea/src/org/jetbrains/kotlin/idea/goto/gotoContributors.kt @@ -20,8 +20,6 @@ import com.intellij.navigation.ChooseByNameContributor import com.intellij.navigation.GotoClassContributor import com.intellij.navigation.NavigationItem import com.intellij.openapi.project.Project -import com.intellij.openapi.vfs.VirtualFile -import com.intellij.psi.search.DelegatingGlobalSearchScope import com.intellij.psi.search.GlobalSearchScope import com.intellij.psi.stubs.StubIndex import org.jetbrains.kotlin.asJava.LightClassUtil @@ -88,15 +86,11 @@ class KotlinGotoSymbolContributor : ChooseByNameContributor { LightClassUtil.getLightClassBackingField(it) == null || it.containingClass()?.isInterface() ?: false } - result += KotlinClassShortNameIndex.getInstance().get(name, project, BuiltInClassesScope(noLibrarySourceScope)) + result += KotlinClassShortNameIndex.getInstance().get(name, project, noLibrarySourceScope).filter { + it is KtEnumEntry || it.containingFile.virtualFile?.fileType == KotlinBuiltInFileType + } result += KotlinTypeAliasShortNameIndex.getInstance().get(name, project, noLibrarySourceScope) return result.toTypedArray() } } - -private class BuiltInClassesScope(baseScope: GlobalSearchScope) : DelegatingGlobalSearchScope(baseScope) { - override fun contains(file: VirtualFile): Boolean { - return file.fileType == KotlinBuiltInFileType && file in myBaseScope - } -} diff --git a/idea/testData/navigation/gotoSymbol/enumConstants.kt b/idea/testData/navigation/gotoSymbol/enumConstants.kt new file mode 100644 index 00000000000..f952d48320b --- /dev/null +++ b/idea/testData/navigation/gotoSymbol/enumConstants.kt @@ -0,0 +1,5 @@ +enum class Foo { BAR, BAZ } + +// SEARCH_TEXT: B +// REF: (in Foo).BAR +// REF: (in Foo).BAZ diff --git a/idea/tests/org/jetbrains/kotlin/idea/navigation/KotlinGotoTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/navigation/KotlinGotoTestGenerated.java index 931bb71cac5..e4f5d4c0dad 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/navigation/KotlinGotoTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/navigation/KotlinGotoTestGenerated.java @@ -125,6 +125,12 @@ public class KotlinGotoTestGenerated extends AbstractKotlinGotoTest { doSymbolTest(fileName); } + @TestMetadata("enumConstants.kt") + public void testEnumConstants() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/navigation/gotoSymbol/enumConstants.kt"); + doSymbolTest(fileName); + } + @TestMetadata("functions.kt") public void testFunctions() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("idea/testData/navigation/gotoSymbol/functions.kt");