Show enum constants in Goto Symbol

#KT-6535 Fixed
This commit is contained in:
Dmitry Jemerov
2016-11-18 14:56:18 +01:00
parent ab8abc9c62
commit d565e18889
3 changed files with 14 additions and 9 deletions

View File

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

View File

@@ -0,0 +1,5 @@
enum class Foo { BAR, BAZ }
// SEARCH_TEXT: B
// REF: (in Foo).BAR
// REF: (in Foo).BAZ

View File

@@ -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");