fix: no index json to java field Exception
This commit is contained in:
@@ -2,7 +2,9 @@ package io.github.linwancen.plugin.show.java;
|
|||||||
|
|
||||||
import com.intellij.json.psi.JsonProperty;
|
import com.intellij.json.psi.JsonProperty;
|
||||||
import com.intellij.json.psi.JsonStringLiteral;
|
import com.intellij.json.psi.JsonStringLiteral;
|
||||||
|
import com.intellij.openapi.application.ReadAction;
|
||||||
import com.intellij.openapi.progress.ProcessCanceledException;
|
import com.intellij.openapi.progress.ProcessCanceledException;
|
||||||
|
import com.intellij.openapi.project.DumbService;
|
||||||
import com.intellij.openapi.project.Project;
|
import com.intellij.openapi.project.Project;
|
||||||
import com.intellij.openapi.vfs.VirtualFile;
|
import com.intellij.openapi.vfs.VirtualFile;
|
||||||
import com.intellij.patterns.PlatformPatterns;
|
import com.intellij.patterns.PlatformPatterns;
|
||||||
@@ -59,15 +61,17 @@ public class JsonJumpJava extends PsiReferenceContributor {
|
|||||||
@NotNull Project project = element.getProject();
|
@NotNull Project project = element.getProject();
|
||||||
@NotNull List<PsiField> psiFields = new ArrayList<>();
|
@NotNull List<PsiField> psiFields = new ArrayList<>();
|
||||||
@NotNull List<PsiField> tips = new ArrayList<>();
|
@NotNull List<PsiField> tips = new ArrayList<>();
|
||||||
@NotNull PsiClass[] psiClasses = PsiClassUtils.fileToClasses(virtualFile, project);
|
return DumbService.getInstance(project).runReadActionInSmartMode(() -> ReadAction.compute(() -> {
|
||||||
@NotNull List<String> jsonPath = jsonPath(jsonProp);
|
@NotNull PsiClass[] psiClasses = PsiClassUtils.fileToClasses(virtualFile, project);
|
||||||
put(project, psiFields, tips, psiClasses, jsonPath, jsonPath.size() - 1);
|
@NotNull List<String> jsonPath = jsonPath(jsonProp);
|
||||||
|
put(project, psiFields, tips, psiClasses, jsonPath, jsonPath.size() - 1);
|
||||||
|
|
||||||
@NotNull List<PsiReference> list = new ArrayList<>();
|
@NotNull List<PsiReference> list = new ArrayList<>();
|
||||||
for (@NotNull PsiField psiField : psiFields) {
|
for (@NotNull PsiField psiField : psiFields) {
|
||||||
list.add(new JsonRef<>(element, psiField, tips));
|
list.add(new JsonRef<>(element, psiField, tips));
|
||||||
}
|
}
|
||||||
return list.toArray(PsiReference.EMPTY_ARRAY);
|
return list;
|
||||||
|
})).toArray(PsiReference.EMPTY_ARRAY);
|
||||||
} catch (ProcessCanceledException ignored) {
|
} catch (ProcessCanceledException ignored) {
|
||||||
return PsiReference.EMPTY_ARRAY;
|
return PsiReference.EMPTY_ARRAY;
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
|
|||||||
Reference in New Issue
Block a user