From 84eceb9343acb061a7d1c60823ce18ce4f400f3c 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, 28 Feb 2024 23:05:40 +0800 Subject: [PATCH] fix(PhpLangDoc): PHP file tree comment --- .../plugin/show/lang/PhpLangDoc.java | 23 +++++++++++++++++++ .../plugin/show/lang/base/ResolveDoc.java | 3 ++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/github/linwancen/plugin/show/lang/PhpLangDoc.java b/src/main/java/io/github/linwancen/plugin/show/lang/PhpLangDoc.java index 66f6228..0fd6f4e 100644 --- a/src/main/java/io/github/linwancen/plugin/show/lang/PhpLangDoc.java +++ b/src/main/java/io/github/linwancen/plugin/show/lang/PhpLangDoc.java @@ -1,5 +1,8 @@ package io.github.linwancen.plugin.show.lang; +import com.intellij.ide.projectView.ProjectViewNode; +import com.intellij.openapi.project.Project; +import com.intellij.psi.PsiComment; import com.intellij.psi.PsiElement; import com.intellij.psi.util.PsiTreeUtil; import com.jetbrains.php.lang.PhpLanguage; @@ -33,6 +36,26 @@ public class PhpLangDoc extends BaseTagLangDoc { return info.appSettings.showLineEndCommentPhp; } + @Override + public @Nullable String treeDoc(@NotNull T info, @NotNull ProjectViewNode node, + @NotNull Project project) { + Object value = node.getValue(); + if (value instanceof PsiElement) { + @NotNull PsiElement psiElement = (PsiElement) value; + if (psiElement.getLanguage() == PhpLanguage.INSTANCE) { + @NotNull PsiElement[] children = psiElement.getChildren(); + for (PsiElement child : children) { + @Nullable PsiComment comment = PsiTreeUtil.getChildOfType(child, PsiComment.class); + if (comment != null) { + String text = comment.getText(); + return DocFilter.cutDoc(text, info, true); + } + } + } + } + return null; + } + @Override protected boolean parseBaseComment(@NotNull T info) { return info.appSettings.showLineEndCommentPhpBase; diff --git a/src/main/java/io/github/linwancen/plugin/show/lang/base/ResolveDoc.java b/src/main/java/io/github/linwancen/plugin/show/lang/base/ResolveDoc.java index 0a6b592..6b0b4a7 100644 --- a/src/main/java/io/github/linwancen/plugin/show/lang/base/ResolveDoc.java +++ b/src/main/java/io/github/linwancen/plugin/show/lang/base/ResolveDoc.java @@ -67,7 +67,8 @@ public class ResolveDoc { if (document == null) { return null; } - @Nullable PsiElement psiElement = PsiTreeUtil.findChildOfType(resolve, PsiComment.class); + // Do not use findChildOfType() because will find any comment at project view tree + @Nullable PsiElement psiElement = PsiTreeUtil.getChildOfType(resolve, PsiComment.class); if (psiElement == null) { psiElement = Prev.prevCompactElement(info, resolve, document); }