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.GotoClassContributor
|
||||||
import com.intellij.navigation.NavigationItem
|
import com.intellij.navigation.NavigationItem
|
||||||
import com.intellij.openapi.project.Project
|
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.search.GlobalSearchScope
|
||||||
import com.intellij.psi.stubs.StubIndex
|
import com.intellij.psi.stubs.StubIndex
|
||||||
import org.jetbrains.kotlin.asJava.LightClassUtil
|
import org.jetbrains.kotlin.asJava.LightClassUtil
|
||||||
@@ -88,15 +86,11 @@ class KotlinGotoSymbolContributor : ChooseByNameContributor {
|
|||||||
LightClassUtil.getLightClassBackingField(it) == null ||
|
LightClassUtil.getLightClassBackingField(it) == null ||
|
||||||
it.containingClass()?.isInterface() ?: false
|
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)
|
result += KotlinTypeAliasShortNameIndex.getInstance().get(name, project, noLibrarySourceScope)
|
||||||
|
|
||||||
return result.toTypedArray()
|
return result.toTypedArray()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class BuiltInClassesScope(baseScope: GlobalSearchScope) : DelegatingGlobalSearchScope(baseScope) {
|
|
||||||
override fun contains(file: VirtualFile): Boolean {
|
|
||||||
return file.fileType == KotlinBuiltInFileType && file in myBaseScope
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -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);
|
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")
|
@TestMetadata("functions.kt")
|
||||||
public void testFunctions() throws Exception {
|
public void testFunctions() throws Exception {
|
||||||
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/navigation/gotoSymbol/functions.kt");
|
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/navigation/gotoSymbol/functions.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user