From bf1463a3f80404f8fc754340c1816c6785eafc3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E4=B8=87=E7=A8=8B?= <1498425439@qq.com> Date: Wed, 9 Mar 2022 19:33:43 +0800 Subject: [PATCH] =?UTF-8?q?json=20doc=20support=20List<>=20in=20class=20an?= =?UTF-8?q?d=20same=20name=20|=20json=20=E6=B3=A8=E9=87=8A=E6=94=AF?= =?UTF-8?q?=E6=8C=81=20class=20=E7=9A=84=20List<>=20=E5=92=8C=E5=90=8C?= =?UTF-8?q?=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/show/doc/JsonDocUtils.java | 7 +++++- .../plugin/show/demo/java/InDoc.java | 4 ++-- .../plugin/show/demo/java/obj/Pojo.java | 23 +++++++++++++++++++ .../plugin/show/demo/json/nested Pojo.json | 8 +------ 4 files changed, 32 insertions(+), 10 deletions(-) create mode 100644 src/test/java/io/github/linwancen/plugin/show/demo/java/obj/Pojo.java diff --git a/src/main/java/io/github/linwancen/plugin/show/doc/JsonDocUtils.java b/src/main/java/io/github/linwancen/plugin/show/doc/JsonDocUtils.java index 7a6861f..a2c4377 100644 --- a/src/main/java/io/github/linwancen/plugin/show/doc/JsonDocUtils.java +++ b/src/main/java/io/github/linwancen/plugin/show/doc/JsonDocUtils.java @@ -43,7 +43,7 @@ public class JsonDocUtils { for (PsiClass psiClass : psiClasses) { PsiField psiField = psiClass.findFieldByName(name, true); if (psiField == null) { - return null; + continue; } if (level == 0) { return DocUtils.srcOrByteCodeDoc(psiField); @@ -60,6 +60,11 @@ public class JsonDocUtils { @NotNull private static String toClassFullName(PsiField psiField) { + // <> only in .java + PsiElement navElement = psiField.getNavigationElement(); + if (navElement instanceof PsiField) { + psiField = (PsiField) navElement; + } PsiTypeElement typeElement = psiField.getTypeElement(); if (typeElement != null) { PsiJavaCodeReferenceElement code = typeElement.getInnermostComponentReferenceElement(); diff --git a/src/test/java/io/github/linwancen/plugin/show/demo/java/InDoc.java b/src/test/java/io/github/linwancen/plugin/show/demo/java/InDoc.java index e7136fd..ddbcf7d 100644 --- a/src/test/java/io/github/linwancen/plugin/show/demo/java/InDoc.java +++ b/src/test/java/io/github/linwancen/plugin/show/demo/java/InDoc.java @@ -14,11 +14,11 @@ public class InDoc { /** field */ public String field; - /** method() */ + /** method1() */ public void method1() { } - /** method(InDoc) */ + /** method2(InDoc) */ public void method2(InDoc inDoc) { } } diff --git a/src/test/java/io/github/linwancen/plugin/show/demo/java/obj/Pojo.java b/src/test/java/io/github/linwancen/plugin/show/demo/java/obj/Pojo.java new file mode 100644 index 0000000..9c8051f --- /dev/null +++ b/src/test/java/io/github/linwancen/plugin/show/demo/java/obj/Pojo.java @@ -0,0 +1,23 @@ +package io.github.linwancen.plugin.show.demo.java.obj; + +import java.util.Date; +import java.util.List; + +/** not doc */ +public class Pojo { + private int integer; + private String str; + private Date date; + private boolean bool; + private NestedClass nestedClass; + private NestedClass[] nestedClassArr; + private List nestedClassList; + + public static class NestedClass { + private NestedClass2 nestedClass2; + + public static class NestedClass2 { + private String a; + } + } +} diff --git a/src/test/java/io/github/linwancen/plugin/show/demo/json/nested Pojo.json b/src/test/java/io/github/linwancen/plugin/show/demo/json/nested Pojo.json index 0755524..b75e80d 100644 --- a/src/test/java/io/github/linwancen/plugin/show/demo/json/nested Pojo.json +++ b/src/test/java/io/github/linwancen/plugin/show/demo/json/nested Pojo.json @@ -1,14 +1,8 @@ { - "nestedClassList": [ - { - "nestedClass2": { - "a": "" - } - }, + "nestedClass": { "nestedClass2": { "a": "" } } - ] } \ No newline at end of file