Skip to content

Commit 4460fcd

Browse files
committed
perf(provider): wrap package class retrieval in read action
- Encapsulate package class retrieval in a read action to ensure thread safety - Improve performance by using runReadAction for package class listing
1 parent b421bad commit 4460fcd

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import com.intellij.codeInsight.lookup.LookupElement
66
import com.intellij.codeInsight.lookup.LookupElementBuilder
77
import com.intellij.ide.highlighter.JavaFileType
88
import com.intellij.lang.java.JavaLanguage
9+
import com.intellij.openapi.application.runReadAction
910
import com.intellij.openapi.project.Project
10-
import com.intellij.openapi.roots.PackageIndex
1111
import com.intellij.psi.PsiElement
1212
import com.intellij.psi.PsiManager
1313
import com.intellij.psi.PsiPackageStatement
@@ -122,7 +122,7 @@ class JavaCustomDevInsSymbolProvider : DevInsSymbolProvider {
122122

123123
// for package name only, like `cc.unitmesh`
124124
JavaFileManagerImpl(project).findPackage(symbol)?.let { pkg ->
125-
return pkg.classes.toList()
125+
return runReadAction { pkg.classes.toList() }
126126
}
127127

128128
// for single class, with function name, like `cc.unitmesh.idea.provider.JavaCustomDevInsSymbolProvider`

0 commit comments

Comments
 (0)