Skip to content

Commit da3628a

Browse files
committed
feat(devins-java): add support for resolving symbols in Java packages #101
Add support for resolving symbols in Java packages by using JavaFileManagerImpl and mapping package classes' qualified names.
1 parent d20961f commit da3628a

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

java/src/main/kotlin/cc/unitmesh/idea/provider/JavaCustomDevInsSymbolProvider.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import com.intellij.ide.highlighter.JavaFileType
88
import com.intellij.openapi.project.Project
99
import com.intellij.psi.PsiManager
1010
import com.intellij.psi.PsiPackageStatement
11+
import com.intellij.psi.impl.file.impl.JavaFileManagerImpl
1112
import com.intellij.psi.search.FileTypeIndex
1213
import com.intellij.psi.search.GlobalSearchScope
1314
import com.intellij.psi.search.ProjectScope
@@ -50,6 +51,10 @@ class JavaCustomDevInsSymbolProvider : DevInsSymbolProvider {
5051
override fun resolveSymbol(project: Project, symbol: String): Iterable<String> {
5152
val scope = GlobalSearchScope.allScope(project)
5253

54+
JavaFileManagerImpl(project).findPackage(symbol)?.let { pkg ->
55+
return pkg.classes.map { it.qualifiedName!! }
56+
}
57+
5358
// for class name only
5459
val psiClasses = PsiShortNamesCache.getInstance(project).getClassesByName(symbol, scope)
5560
if (psiClasses.isNotEmpty()) {

0 commit comments

Comments
 (0)