Skip to content

Commit

Permalink
feat(devins-java): add support for resolving symbols in Java packages #…
Browse files Browse the repository at this point in the history
…101

Add support for resolving symbols in Java packages by using JavaFileManagerImpl and mapping package classes' qualified names.
  • Loading branch information
phodal committed Mar 18, 2024
1 parent d20961f commit da3628a
Showing 1 changed file with 5 additions and 0 deletions.
Expand Up @@ -8,6 +8,7 @@ import com.intellij.ide.highlighter.JavaFileType
import com.intellij.openapi.project.Project
import com.intellij.psi.PsiManager
import com.intellij.psi.PsiPackageStatement
import com.intellij.psi.impl.file.impl.JavaFileManagerImpl
import com.intellij.psi.search.FileTypeIndex
import com.intellij.psi.search.GlobalSearchScope
import com.intellij.psi.search.ProjectScope
Expand Down Expand Up @@ -50,6 +51,10 @@ class JavaCustomDevInsSymbolProvider : DevInsSymbolProvider {
override fun resolveSymbol(project: Project, symbol: String): Iterable<String> {
val scope = GlobalSearchScope.allScope(project)

JavaFileManagerImpl(project).findPackage(symbol)?.let { pkg ->
return pkg.classes.map { it.qualifiedName!! }
}

// for class name only
val psiClasses = PsiShortNamesCache.getInstance(project).getClassesByName(symbol, scope)
if (psiClasses.isNotEmpty()) {
Expand Down

0 comments on commit da3628a

Please sign in to comment.