From a2486a36dd028dfb9139624e4b936d96812a6a5e 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, 11 Oct 2023 22:35:21 +0800 Subject: [PATCH] fix line end comment error parsing into line up comment --- .../plugin/show/lang/base/ResolveDoc.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) 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 1f34461..9ad89e9 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 @@ -73,12 +73,24 @@ public class ResolveDoc { } } @NotNull StringBuilder sb = new StringBuilder(); - while (psiElement instanceof PsiComment) { + boolean isComment = psiElement instanceof PsiComment; + while (isComment) { String text = psiElement.getText(); + int thisStartOffset = psiElement.getTextRange().getStartOffset(); + psiElement = Prev.prevCompactElement(lineInfo, psiElement, document); + isComment = psiElement instanceof PsiComment; + if (!isComment && psiElement != null) { + int prevEndOffset = psiElement.getTextRange().getEndOffset(); + int thisLineNumber = document.getLineNumber(thisStartOffset); + int prevLineNumber = document.getLineNumber(prevEndOffset); + boolean isNotCommentSameLine = thisLineNumber == prevLineNumber; + if (isNotCommentSameLine) { + break; + } + } if (text != null) { sb.insert(0, "\n").insert(0, text); } - psiElement = Prev.prevCompactElement(lineInfo, psiElement, document); } if (sb.length() == 0) { return null;