diff --git a/README.md b/README.md
index 8a03ec0..03c1518 100644
--- a/README.md
+++ b/README.md
@@ -71,7 +71,7 @@ https://plugins.jetbrains.com/plugin/18553-show-comment
中文更新说明:
-- 1.12 增加 带行末注释复制 和 添加行末注释
+
- 1.13 增加 带行末注释复制 和 添加行末注释
- 1.12 ★ 外部注释用于 COBOL 等
- 1.11 增加 json 跳转到字段
- 1.10 增加 在父包和其他项目的包中获取 项目导航栏注释
diff --git a/build.gradle b/build.gradle
index 9140471..69b02e8 100644
--- a/build.gradle
+++ b/build.gradle
@@ -56,7 +56,7 @@ patchPluginXml {
中文更新说明:
-- 1.12 增加 带行末注释复制 和 添加行末注释
+
- 1.13 增加 带行末注释复制 和 添加行末注释
- 1.12 ★ 外部注释用于 COBOL 等
- 1.11 增加 json 跳转到字段
- 1.10 增加 在父包和其他项目的包中获取 项目导航栏注释
diff --git a/src/main/java/io/github/linwancen/plugin/show/LineEndAdd.java b/src/main/java/io/github/linwancen/plugin/show/LineEndAdd.java
index 3b998f0..5d17bbf 100644
--- a/src/main/java/io/github/linwancen/plugin/show/LineEndAdd.java
+++ b/src/main/java/io/github/linwancen/plugin/show/LineEndAdd.java
@@ -3,6 +3,7 @@ package io.github.linwancen.plugin.show;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.CommonDataKeys;
+import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.command.WriteCommandAction;
import com.intellij.openapi.editor.Document;
import com.intellij.openapi.project.Project;
@@ -34,7 +35,7 @@ public class LineEndAdd extends AnAction {
}
ListPopup confirmation = JBPopupFactory.getInstance().createConfirmation(
"Add Line Comment?", "Add and replace files!", "Don't add.",
- () -> addDocAll(project, files), 2);
+ () -> ApplicationManager.getApplication().runReadAction(() -> addDocAll(project, files)), 2);
confirmation.showInFocusCenter();
}
@@ -45,7 +46,7 @@ public class LineEndAdd extends AnAction {
@Override
public boolean visitFile(@NotNull VirtualFile file) {
if (!file.isDirectory()) {
- addDoc(project, file, settings);
+ ApplicationManager.getApplication().runReadAction(() -> addDoc(project, file, settings));
}
return true;
}
diff --git a/src/main/java/io/github/linwancen/plugin/show/LineEndCopy.java b/src/main/java/io/github/linwancen/plugin/show/LineEndCopy.java
index 266230d..ef5d73c 100644
--- a/src/main/java/io/github/linwancen/plugin/show/LineEndCopy.java
+++ b/src/main/java/io/github/linwancen/plugin/show/LineEndCopy.java
@@ -3,6 +3,7 @@ package io.github.linwancen.plugin.show;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.CommonDataKeys;
+import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.editor.Caret;
import com.intellij.openapi.editor.Document;
import com.intellij.openapi.editor.Editor;
@@ -24,6 +25,10 @@ public class LineEndCopy extends AnAction {
@Override
public void actionPerformed(@NotNull AnActionEvent event) {
+ ApplicationManager.getApplication().runReadAction(() -> copyWithDoc(event));
+ }
+
+ private void copyWithDoc(@NotNull AnActionEvent event) {
Project project = event.getProject();
VirtualFile file = event.getData(CommonDataKeys.VIRTUAL_FILE);
if (file == null) {
diff --git a/src/main/java/io/github/linwancen/plugin/show/ext/LineExt.java b/src/main/java/io/github/linwancen/plugin/show/ext/LineExt.java
index 8e460eb..a5305a3 100644
--- a/src/main/java/io/github/linwancen/plugin/show/ext/LineExt.java
+++ b/src/main/java/io/github/linwancen/plugin/show/ext/LineExt.java
@@ -70,6 +70,11 @@ public class LineExt {
}
appendKeyDoc(sb, matcher, keyMap);
}
+ int before;
+ do {
+ before = sb.length();
+ appendKeyDoc(sb, matcher, keyMap);
+ } while (sb.length() != before);
if (!haveDoc) {
return null;
}
diff --git a/src/main/java/io/github/linwancen/plugin/show/line/PsiClassSkip.java b/src/main/java/io/github/linwancen/plugin/show/line/PsiClassSkip.java
index dabcae2..1aaa263 100644
--- a/src/main/java/io/github/linwancen/plugin/show/line/PsiClassSkip.java
+++ b/src/main/java/io/github/linwancen/plugin/show/line/PsiClassSkip.java
@@ -4,12 +4,13 @@ import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiClass;
import io.github.linwancen.plugin.show.settings.AppSettingsState;
import io.github.linwancen.plugin.show.settings.ProjectSettingsState;
+import org.jetbrains.annotations.NotNull;
class PsiClassSkip {
private PsiClassSkip() {}
- static boolean skip(PsiClass psiClass, Project project) {
+ static boolean skip(PsiClass psiClass, @NotNull Project project) {
if (psiClass == null) {
return true;
}
diff --git a/src/main/java/io/github/linwancen/plugin/show/settings/AppSettingsConfigurable.java b/src/main/java/io/github/linwancen/plugin/show/settings/AppSettingsConfigurable.java
index cd69bb7..55dea31 100644
--- a/src/main/java/io/github/linwancen/plugin/show/settings/AppSettingsConfigurable.java
+++ b/src/main/java/io/github/linwancen/plugin/show/settings/AppSettingsConfigurable.java
@@ -1,8 +1,6 @@
package io.github.linwancen.plugin.show.settings;
-import com.intellij.openapi.editor.colors.EditorColorsManager;
import com.intellij.openapi.options.Configurable;
-import com.intellij.ui.JBColor;
import org.jetbrains.annotations.Nls;
import org.jetbrains.annotations.Nullable;
@@ -39,11 +37,7 @@ public class AppSettingsConfigurable implements Configurable {
modified |= mySettingsComponent.getFromNew() != settings.fromNew;
modified |= mySettingsComponent.getFromRef() != settings.fromRef;
modified |= mySettingsComponent.getInJson() != settings.inJson;
- if (EditorColorsManager.getInstance().isDarkEditor()) {
- modified |= !mySettingsComponent.getLineEndColor().equals(settings.lineEndColorDark);
- } else {
- modified |= !mySettingsComponent.getLineEndColor().equals(settings.lineEndColorBright);
- }
+ modified |= !mySettingsComponent.getLineEndColor().equals(settings.lineEndTextAttr.getForegroundColor());
modified |= !mySettingsComponent.getLineEndJsonColor().equals(settings.lineEndJsonTextAttr.getForegroundColor());
modified |= mySettingsComponent.getFindElementRightToLeft() != settings.findElementRightToLeft;
modified |= !mySettingsComponent.getLineEndInclude().equals(settings.lineEndInclude);
@@ -62,13 +56,7 @@ public class AppSettingsConfigurable implements Configurable {
settings.fromNew = mySettingsComponent.getFromNew();
settings.fromRef = mySettingsComponent.getFromRef();
settings.inJson = mySettingsComponent.getInJson();
- if (EditorColorsManager.getInstance().isDarkEditor()) {
- settings.lineEndColorDark = mySettingsComponent.getLineEndColor();
- } else {
- settings.lineEndColorBright = mySettingsComponent.getLineEndColor();
- }
- JBColor jbColor = new JBColor(settings.lineEndColorBright, settings.lineEndColorDark);
- settings.lineEndTextAttr.setForegroundColor(jbColor);
+ settings.lineEndTextAttr.setForegroundColor(mySettingsComponent.getLineEndColor());
settings.lineEndJsonTextAttr.setForegroundColor(mySettingsComponent.getLineEndJsonColor());
settings.findElementRightToLeft = mySettingsComponent.getFindElementRightToLeft();
settings.lineEndInclude = mySettingsComponent.getLineEndInclude();
@@ -92,11 +80,7 @@ public class AppSettingsConfigurable implements Configurable {
mySettingsComponent.setFromNew(settings.fromNew);
mySettingsComponent.setFromRef(settings.fromRef);
mySettingsComponent.setInJson(settings.inJson);
- if (EditorColorsManager.getInstance().isDarkEditor()) {
- mySettingsComponent.setLineEndColor(settings.lineEndColorDark);
- } else {
- mySettingsComponent.setLineEndColor(settings.lineEndColorBright);
- }
+ mySettingsComponent.setLineEndColor(settings.lineEndTextAttr.getForegroundColor());
mySettingsComponent.setLineEndJsonColor(settings.lineEndJsonTextAttr.getForegroundColor());
mySettingsComponent.setFindElementRightToLeft(settings.findElementRightToLeft);
mySettingsComponent.setLineEndInclude(settings.lineEndInclude);
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 59fba7c..e78c4da 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
@@ -12,9 +12,10 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.awt.*;
+import java.math.BigInteger;
@State(
- name = "io.github.linwancen.plugin.comment.settings.AppSettingsState",
+ name = "io.github.linwancen.plugin.show.settings.AppSettingsState",
storages = @Storage("ShowCommentGlobal.xml")
)
public class AppSettingsState implements PersistentStateComponent {
@@ -22,11 +23,8 @@ public class AppSettingsState implements PersistentStateComponent {
@@ -21,8 +21,12 @@ public class ProjectSettingsState implements PersistentStateComponent >
< <
diff --git a/src/test/java/io/github/linwancen/plugin/show/demo/ext/cobol/demo/BASE.cbl b/src/test/java/io/github/linwancen/plugin/show/demo/ext/cobol/demo/BASE.cbl
index 79c62a8..a01f757 100644
--- a/src/test/java/io/github/linwancen/plugin/show/demo/ext/cobol/demo/BASE.cbl
+++ b/src/test/java/io/github/linwancen/plugin/show/demo/ext/cobol/demo/BASE.cbl
@@ -1,7 +1,7 @@
123456 INITIALIZE HELLO-WORLD
- IF (KEY NOT = '1' AND '2')
- AND KEY NOT = '1' THEN
+ IF (KEY NOT = '1' AND '2') AND
+ KEY NOT = '1' THEN
MOVE WS-HELLO-WORLD TO HELLO-WORLD
END IF
TABLE(STRUCT)