From baeaf71d18a71eda1b61cdfbea61320afa60f3e9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9E=97=E4=B8=87=E7=A8=8B?= <1498425439@qq.com>
Date: Thu, 28 Apr 2022 01:07:28 +0800
Subject: [PATCH] =?UTF-8?q?1.16=20skip=20when=20comments=20have=20been=20a?=
=?UTF-8?q?dded=20|=20=E5=B7=B2=E7=BB=8F=E6=B7=BB=E5=8A=A0=E8=A1=8C?=
=?UTF-8?q?=E6=9C=AB=E6=B3=A8=E9=87=8A=E6=97=B6=E8=B7=B3=E8=BF=87?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 4 +++-
build.gradle | 4 +++-
.../io/github/linwancen/plugin/show/Tree.java | 2 +-
.../plugin/show/doc/PsiDocToStrDoc.java | 1 -
.../show/line/FileViewToDocStrUtils.java | 23 +++++++++++++++----
.../show/settings/AppSettingsState.java | 2 +-
6 files changed, 26 insertions(+), 10 deletions(-)
diff --git a/README.md b/README.md
index 9c3b037..9aa0bea 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,7 @@ IDEA 智能注释插件
https://plugins.jetbrains.com/plugin/18553-show-comment
-
+Thanks JetBrains Licenses for Open Source.
## Notes 说明
@@ -56,6 +56,7 @@ https://plugins.jetbrains.com/plugin/18553-show-comment
English Change Notes:
+- 1.16 Add line-end-comment skip when comments have been added
- 1.15 Add line-end-comment support COBOL ext '', 'cbl', 'cob', 'cobol'
- 1.14 Add line-end-comment skip Annotation, skip only English (ASCII)
- 1.13 Add Copy With Line Comment & Add Line Comment
@@ -75,6 +76,7 @@ https://plugins.jetbrains.com/plugin/18553-show-comment
中文更新说明:
+- 1.16 增加 行末注释 已经添加行末注释时跳过
- 1.15 增加 行末注释 COBOL 拓展名支持 无拓展名、cbl、cob、cobol
- 1.14 增加 行末注释 忽略注解 与 忽略纯英文
- 1.13 增加 带行末注释复制 和 添加行末注释
diff --git a/build.gradle b/build.gradle
index dc32239..511ac23 100644
--- a/build.gradle
+++ b/build.gradle
@@ -4,7 +4,7 @@ plugins {
}
group 'io.github.linwancen'
-version '1.15.0.' + (new Date().format('yyyy.MM.dd_HH.mm'))
+version '1.16.0.' + (new Date().format('yyyy.MM.dd_HH.mm'))
apply plugin: 'java'
@@ -39,6 +39,7 @@ patchPluginXml {
changeNotes = """
English Change Notes:
+- 1.16 Add line-end-comment skip when comments have been added
- 1.15 Add line-end-comment support COBOL ext '', 'cbl', 'cob', 'cobol'
- 1.14 Add line-end-comment skip Annotation, skip only English (ASCII)
- 1.13 Add Copy With Line Comment & Add Line Comment
@@ -58,6 +59,7 @@ patchPluginXml {
中文更新说明:
+- 1.16 增加 行末注释 已经添加行末注释时跳过
- 1.15 增加 行末注释 COBOL 拓展名支持 无拓展名、cbl、cob、cobol
- 1.14 增加 行末注释 忽略注解 与 忽略纯英文
- 1.13 增加 带行末注释复制 和 添加行末注释
diff --git a/src/main/java/io/github/linwancen/plugin/show/Tree.java b/src/main/java/io/github/linwancen/plugin/show/Tree.java
index 2353d35..cec46ac 100644
--- a/src/main/java/io/github/linwancen/plugin/show/Tree.java
+++ b/src/main/java/io/github/linwancen/plugin/show/Tree.java
@@ -45,7 +45,7 @@ public class Tree implements ProjectViewNodeDecorator {
if (coloredText.isEmpty()) {
data.addText(data.getPresentableText(), SimpleTextAttributes.REGULAR_ATTRIBUTES);
}
- data.addText(doc, SimpleTextAttributes.GRAY_ATTRIBUTES);
+ data.addText(" " + doc, SimpleTextAttributes.GRAY_ATTRIBUTES);
});
}
diff --git a/src/main/java/io/github/linwancen/plugin/show/doc/PsiDocToStrDoc.java b/src/main/java/io/github/linwancen/plugin/show/doc/PsiDocToStrDoc.java
index d44ef04..1c1e698 100644
--- a/src/main/java/io/github/linwancen/plugin/show/doc/PsiDocToStrDoc.java
+++ b/src/main/java/io/github/linwancen/plugin/show/doc/PsiDocToStrDoc.java
@@ -35,7 +35,6 @@ public class PsiDocToStrDoc {
if (sb.length() == 0) {
return null;
}
- sb.insert(0, " ");
return sb.toString();
}
diff --git a/src/main/java/io/github/linwancen/plugin/show/line/FileViewToDocStrUtils.java b/src/main/java/io/github/linwancen/plugin/show/line/FileViewToDocStrUtils.java
index 6cf5c4f..797a4a4 100644
--- a/src/main/java/io/github/linwancen/plugin/show/line/FileViewToDocStrUtils.java
+++ b/src/main/java/io/github/linwancen/plugin/show/line/FileViewToDocStrUtils.java
@@ -18,7 +18,7 @@ import java.util.regex.Pattern;
* call LineExt, ~LeftToRight, ~RightToLeft
*/
public class FileViewToDocStrUtils {
-
+
public static final Pattern NOT_ASCII_PATTERN = Pattern.compile("[^\u0000-\u007f]");
private FileViewToDocStrUtils() {}
@@ -32,21 +32,34 @@ public class FileViewToDocStrUtils {
@Nullable VirtualFile file,
@Nullable FileViewProvider viewProvider,
int startOffset, int endOffset, @NotNull String text) {
+ AppSettingsState setting = AppSettingsState.getInstance();
if (file != null) {
- String extDoc = LineExt.extDoc(project, file.getPath(), file.getName(), file.getExtension(), text);
+ int i = text.indexOf(setting.lineEndPrefix);
+ String code = i <= 0 ? text : text.substring(0, i);
+ String extDoc = LineExt.extDoc(project, file.getPath(), file.getName(), file.getExtension(), code);
if (extDoc != null) {
+ extDoc = extDoc.trim();
+ if (text.endsWith(extDoc)) {
+ return null;
+ }
return extDoc;
}
}
if (viewProvider == null) {
return null;
}
- AppSettingsState setting = AppSettingsState.getInstance();
PsiDocComment docComment = setting.findElementRightToLeft
? FileViewToPsiDocRightToLeft.rightDoc(viewProvider, startOffset, endOffset)
: FileViewToPsiDocLeftToRight.leftDoc(viewProvider, document, startOffset, endOffset);
String strDoc = PsiDocToStrDoc.text(docComment);
- if (setting.skipAscii && strDoc != null && !NOT_ASCII_PATTERN.matcher(strDoc).find()) {
+ if (strDoc == null) {
+ return null;
+ }
+ strDoc = strDoc.trim();
+ if (text.endsWith(strDoc)) {
+ return null;
+ }
+ if (setting.skipAscii && !NOT_ASCII_PATTERN.matcher(strDoc).find()) {
return null;
}
return strDoc;
@@ -72,7 +85,7 @@ public class FileViewToDocStrUtils {
String text = document.getText(new TextRange(startOffset, endOffset));
sb.append(text);
String doc = doc(document, project, file, viewProvider, startOffset, endOffset, text);
- if (doc != null) {
+ if (doc != null && !text.endsWith(doc)) {
sb.append(settings.lineEndPrefix).append(doc);
}
}
diff --git a/src/main/java/io/github/linwancen/plugin/show/settings/AppSettingsState.java b/src/main/java/io/github/linwancen/plugin/show/settings/AppSettingsState.java
index fab397d..88be5d6 100644
--- a/src/main/java/io/github/linwancen/plugin/show/settings/AppSettingsState.java
+++ b/src/main/java/io/github/linwancen/plugin/show/settings/AppSettingsState.java
@@ -30,7 +30,7 @@ public class AppSettingsState implements PersistentStateComponent