mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-04-04 08:31:30 +00:00
Show enum constants in Goto Symbol
#KT-6535 Fixed
This commit is contained in:
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
5
idea/testData/navigation/gotoSymbol/enumConstants.kt
vendored
Normal file
5
idea/testData/navigation/gotoSymbol/enumConstants.kt
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
enum class Foo { BAR, BAZ }
|
||||
|
||||
// SEARCH_TEXT: B
|
||||
// REF: (in Foo).BAR
|
||||
// REF: (in Foo).BAZ
|
||||
@@ -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");
|
||||
|
||||
Reference in New Issue
Block a user