@@ -59,7 +59,7 @@ 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.encClass(virtualFile, project);
|
@NotNull PsiClass[] psiClasses = PsiClassUtils.fileToClasses(virtualFile, project);
|
||||||
@NotNull List<String> jsonPath = jsonPath(jsonProp);
|
@NotNull List<String> jsonPath = jsonPath(jsonProp);
|
||||||
put(project, psiFields, tips, psiClasses, jsonPath, jsonPath.size() - 1);
|
put(project, psiFields, tips, psiClasses, jsonPath, jsonPath.size() - 1);
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,13 @@
|
|||||||
package io.github.linwancen.plugin.show.java.doc;
|
package io.github.linwancen.plugin.show.java.doc;
|
||||||
|
|
||||||
import com.intellij.openapi.vfs.VirtualFile;
|
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 com.intellij.psi.javadoc.PsiDocComment;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
@@ -59,7 +65,7 @@ public class OwnerToPsiDocUtils {
|
|||||||
// for "xxx ClassName.xxx"
|
// for "xxx ClassName.xxx"
|
||||||
if (psiClasses.length == 0) {
|
if (psiClasses.length == 0) {
|
||||||
VirtualFile virtualFile = psiFile.getVirtualFile();
|
VirtualFile virtualFile = psiFile.getVirtualFile();
|
||||||
psiClasses = PsiClassUtils.encClass(virtualFile, psiFile.getProject());
|
psiClasses = PsiClassUtils.fileToClasses(virtualFile, psiFile.getProject());
|
||||||
}
|
}
|
||||||
for (@NotNull PsiClass psiClass : psiClasses) {
|
for (@NotNull PsiClass psiClass : psiClasses) {
|
||||||
@Nullable PsiDocComment docComment = srcOrByteCodeDoc(psiClass);
|
@Nullable PsiDocComment docComment = srcOrByteCodeDoc(psiClass);
|
||||||
|
|||||||
@@ -20,8 +20,12 @@ public class PsiClassUtils {
|
|||||||
private static final Pattern JSON_PATTERN = Pattern.compile("[\\w.]*+$");
|
private static final Pattern JSON_PATTERN = Pattern.compile("[\\w.]*+$");
|
||||||
|
|
||||||
@NotNull
|
@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();
|
@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);
|
@NotNull Matcher matcher = JSON_PATTERN.matcher(fileName);
|
||||||
if (!matcher.find()) {
|
if (!matcher.find()) {
|
||||||
return PsiClass.EMPTY_ARRAY;
|
return PsiClass.EMPTY_ARRAY;
|
||||||
@@ -35,7 +39,7 @@ public class PsiClassUtils {
|
|||||||
return psiClasses;
|
return psiClasses;
|
||||||
}
|
}
|
||||||
// issue #23
|
// issue #23
|
||||||
if (virtualFile.getExtension() == null || className.length() != fileName.length()) {
|
if (className.length() != fileName.length()) {
|
||||||
return PsiClass.EMPTY_ARRAY;
|
return PsiClass.EMPTY_ARRAY;
|
||||||
}
|
}
|
||||||
@NotNull char[] chars = fileName.toCharArray();
|
@NotNull char[] chars = fileName.toCharArray();
|
||||||
|
|||||||
Reference in New Issue
Block a user