diff --git a/src/main/idea/io/github/linwancen/plugin/show/java/JsonJumpJava.java b/src/main/idea/io/github/linwancen/plugin/show/java/JsonJumpJava.java index 85971dc..b5893cc 100644 --- a/src/main/idea/io/github/linwancen/plugin/show/java/JsonJumpJava.java +++ b/src/main/idea/io/github/linwancen/plugin/show/java/JsonJumpJava.java @@ -59,7 +59,7 @@ public class JsonJumpJava extends PsiReferenceContributor { @NotNull Project project = element.getProject(); @NotNull List psiFields = new ArrayList<>(); @NotNull List tips = new ArrayList<>(); - @NotNull PsiClass[] psiClasses = PsiClassUtils.encClass(virtualFile, project); + @NotNull PsiClass[] psiClasses = PsiClassUtils.fileToClasses(virtualFile, project); @NotNull List jsonPath = jsonPath(jsonProp); put(project, psiFields, tips, psiClasses, jsonPath, jsonPath.size() - 1); diff --git a/src/main/idea/io/github/linwancen/plugin/show/java/doc/OwnerToPsiDocUtils.java b/src/main/idea/io/github/linwancen/plugin/show/java/doc/OwnerToPsiDocUtils.java index 3bfa6f0..7abf834 100644 --- a/src/main/idea/io/github/linwancen/plugin/show/java/doc/OwnerToPsiDocUtils.java +++ b/src/main/idea/io/github/linwancen/plugin/show/java/doc/OwnerToPsiDocUtils.java @@ -1,7 +1,13 @@ package io.github.linwancen.plugin.show.java.doc; import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.psi.*; +import com.intellij.psi.PsiClass; +import com.intellij.psi.PsiClassOwner; +import com.intellij.psi.PsiDirectory; +import com.intellij.psi.PsiDocCommentOwner; +import com.intellij.psi.PsiElement; +import com.intellij.psi.PsiFile; +import com.intellij.psi.PsiPackage; import com.intellij.psi.javadoc.PsiDocComment; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -59,7 +65,7 @@ public class OwnerToPsiDocUtils { // for "xxx ClassName.xxx" if (psiClasses.length == 0) { VirtualFile virtualFile = psiFile.getVirtualFile(); - psiClasses = PsiClassUtils.encClass(virtualFile, psiFile.getProject()); + psiClasses = PsiClassUtils.fileToClasses(virtualFile, psiFile.getProject()); } for (@NotNull PsiClass psiClass : psiClasses) { @Nullable PsiDocComment docComment = srcOrByteCodeDoc(psiClass); diff --git a/src/main/idea/io/github/linwancen/plugin/show/java/doc/PsiClassUtils.java b/src/main/idea/io/github/linwancen/plugin/show/java/doc/PsiClassUtils.java index 56742bc..71d720f 100644 --- a/src/main/idea/io/github/linwancen/plugin/show/java/doc/PsiClassUtils.java +++ b/src/main/idea/io/github/linwancen/plugin/show/java/doc/PsiClassUtils.java @@ -20,8 +20,12 @@ public class PsiClassUtils { private static final Pattern JSON_PATTERN = Pattern.compile("[\\w.]*+$"); @NotNull - public static PsiClass[] encClass(@NotNull VirtualFile virtualFile, @NotNull Project project) { + public static PsiClass[] fileToClasses(@NotNull VirtualFile virtualFile, @NotNull Project project) { @NotNull String fileName = virtualFile.getNameWithoutExtension(); + @Nullable String ext = virtualFile.getExtension(); + if (ext == null || (!ext.startsWith("json") && !ext.equals("xml"))) { + return PsiClass.EMPTY_ARRAY; + } @NotNull Matcher matcher = JSON_PATTERN.matcher(fileName); if (!matcher.find()) { return PsiClass.EMPTY_ARRAY; @@ -35,7 +39,7 @@ public class PsiClassUtils { return psiClasses; } // issue #23 - if (virtualFile.getExtension() == null || className.length() != fileName.length()) { + if (className.length() != fileName.length()) { return PsiClass.EMPTY_ARRAY; } @NotNull char[] chars = fileName.toCharArray();