@@ -119,19 +119,19 @@ class JavaCustomDevInsSymbolProvider : DevInsSymbolProvider {
119
119
120
120
// className only, like `String` not Dot
121
121
if (symbol.contains(" ." ).not ()) {
122
- val psiClasses = PsiShortNamesCache .getInstance(project).getClassesByName(symbol, scope)
122
+ val psiClasses = runReadAction { PsiShortNamesCache .getInstance(project).getClassesByName(symbol, scope) }
123
123
if (psiClasses.isNotEmpty()) {
124
124
return psiClasses.toList()
125
125
}
126
126
}
127
127
128
128
// for package name only, like `cc.unitmesh`
129
- JavaFileManagerImpl (project).findPackage(symbol)?.let { pkg ->
129
+ runReadAction { JavaFileManagerImpl (project).findPackage(symbol) } ?.let { pkg ->
130
130
return runReadAction { pkg.classes.toList() }
131
131
}
132
132
133
133
// for single class, with function name, like `cc.unitmesh.idea.provider.JavaCustomDevInsSymbolProvider`
134
- val clazz = JavaFileManagerImpl (project).findClass(symbol, scope)
134
+ val clazz = runReadAction { JavaFileManagerImpl (project).findClass(symbol, scope) }
135
135
if (clazz != null ) {
136
136
return listOf (clazz)
137
137
}
@@ -162,9 +162,11 @@ class JavaCustomDevInsSymbolProvider : DevInsSymbolProvider {
162
162
scope : GlobalSearchScope ,
163
163
methodName : String
164
164
): List <String > {
165
- val psiClass = JavaFileManagerImpl (project).findClass(clazzName, scope)
165
+ val psiClass = runReadAction { JavaFileManagerImpl (project).findClass(clazzName, scope) }
166
166
if (psiClass != null ) {
167
- val psiMethod = psiClass.findMethodsByName(methodName, true ).firstOrNull()
167
+ val psiMethod = runReadAction {
168
+ psiClass.findMethodsByName(methodName, true ).firstOrNull()
169
+ }
168
170
if (psiMethod != null ) {
169
171
return listOf (psiMethod.text)
170
172
}
@@ -179,9 +181,11 @@ class JavaCustomDevInsSymbolProvider : DevInsSymbolProvider {
179
181
scope : GlobalSearchScope ,
180
182
methodName : String
181
183
): List <PsiElement > {
182
- val psiClass = JavaFileManagerImpl (project).findClass(clazzName, scope)
184
+ val psiClass = runReadAction { JavaFileManagerImpl (project).findClass(clazzName, scope) }
183
185
if (psiClass != null ) {
184
- val psiMethod = psiClass.findMethodsByName(methodName, true ).firstOrNull()
186
+ val psiMethod = runReadAction {
187
+ psiClass.findMethodsByName(methodName, true ).firstOrNull()
188
+ }
185
189
if (psiMethod != null ) {
186
190
return listOf (psiMethod)
187
191
}
0 commit comments