Skip to content

Commit d014396

Browse files
committed
1.重新实现触发接口 2.兼容了撤回机制
1 parent c92cf5a commit d014396

13 files changed

+218
-197
lines changed

build.gradle

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ plugins {
55

66

77
group 'com.haojiyou'
8-
version '1.1.0'
8+
version '1.2.0'
99

1010
sourceCompatibility = '11'
1111
targetCompatibility = '11'
@@ -27,6 +27,10 @@ intellij {
2727
patchPluginXml {
2828
changeNotes = """
2929
<em>
30+
<h1> 1.2.0 </h1>
31+
1.增加了撤回功能。
32+
33+
3034
<h1> 1.1.0 </h1>
3135
1.理论上支持常见语言的注释区域不更改。
3236
2.不支持的语言待测试。
@@ -43,4 +47,4 @@ test {
4347

4448
wrapper {
4549
gradleVersion = '6.8'
46-
}
50+
}

src/main/java/com/haojiyou/cnChar/CnCharReplaceTypedHandler.java

Lines changed: 0 additions & 102 deletions
This file was deleted.

src/main/java/com/haojiyou/cnChar/action/EditorHandlerIllustration.java

Lines changed: 0 additions & 29 deletions
This file was deleted.

src/main/java/com/haojiyou/cnChar/service/FileTypeHandlerFactory.java

Lines changed: 0 additions & 13 deletions
This file was deleted.

src/main/java/com/haojiyou/cnChar/service/FileTypeHandlerSevice.java

Lines changed: 0 additions & 40 deletions
This file was deleted.

src/main/java/com/haojiyou/cnChar/CnCharSettingComponent.java renamed to src/main/java/com/haojiyou/cnchar/CnCharSettingComponent.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
package com.haojiyou.cnChar;
1+
package com.haojiyou.cnchar;
22

3+
import com.haojiyou.cnchar.common.ReplaceCharConfig;
34
import com.intellij.ide.util.PropertiesComponent;
45
import com.intellij.openapi.options.Configurable;
56
import org.jetbrains.annotations.Nullable;
@@ -84,7 +85,7 @@ public void mouseClicked(MouseEvent e) {
8485
int response = JOptionPane.showConfirmDialog(settingPanel,"确定恢复默认吗?",getDisplayName(), JOptionPane.YES_NO_OPTION);
8586
if (response == 0) {
8687
PropertiesComponent.getInstance().setValue(KEY, DEFAULT_STRING);
87-
CnCharReplaceTypedHandler.reload();
88+
ReplaceCharConfig.reload();
8889
reset();
8990
}
9091
}
@@ -125,7 +126,7 @@ public boolean isModified() {
125126
public void apply() {
126127
String str = getConfigString();
127128
PropertiesComponent.getInstance().setValue(KEY, str);
128-
CnCharReplaceTypedHandler.reload();
129+
ReplaceCharConfig.reload();
129130
}
130131
@Override
131132
//点reset按钮,打开页面时调用
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
package com.haojiyou.cnchar;
2+
3+
import com.haojiyou.cnchar.common.ReplaceCharConfig;
4+
import com.intellij.openapi.application.ApplicationManager;
5+
import com.intellij.openapi.command.CommandProcessor;
6+
import com.intellij.openapi.command.WriteCommandAction;
7+
import com.intellij.openapi.editor.Document;
8+
import com.intellij.openapi.editor.event.DocumentEvent;
9+
import com.intellij.openapi.editor.event.DocumentListener;
10+
import com.intellij.openapi.project.Project;
11+
import org.jetbrains.annotations.NotNull;
12+
13+
/**
14+
* 描述: 实现DocumentListener接口,进行字符替换处理
15+
*
16+
* @author : best.xu
17+
*/
18+
public class MyDocumentLisener implements DocumentListener {
19+
20+
@Override
21+
public void beforeDocumentChange(@NotNull DocumentEvent event) {
22+
DocumentListener.super.beforeDocumentChange(event);
23+
}
24+
25+
@Override
26+
public void documentChanged(@NotNull DocumentEvent event) {
27+
28+
String text = event.getNewFragment().toString();
29+
String enChar = ReplaceCharConfig.cnCharMap.get(text);
30+
31+
if (enChar == null) {
32+
//没有找到映射的值就不转换了
33+
return;
34+
}
35+
36+
Document document = event.getDocument();
37+
Project project = CommandProcessor.getInstance().getCurrentCommandProject();
38+
39+
int caretOffset = event.getOffset();
40+
ApplicationManager.getApplication().invokeLater(new Runnable() {
41+
@Override
42+
public void run() {
43+
WriteCommandAction.runWriteCommandAction(project, new Runnable() {
44+
@Override
45+
public void run() {
46+
document.replaceString(caretOffset, caretOffset + 1, enChar);
47+
48+
}
49+
});
50+
51+
}
52+
});
53+
document.removeDocumentListener(MyDocumentLisener.this);
54+
55+
}
56+
57+
58+
@Override
59+
public void bulkUpdateStarting(@NotNull Document document) {
60+
DocumentListener.super.bulkUpdateStarting(document);
61+
}
62+
63+
@Override
64+
public void bulkUpdateFinished(@NotNull Document document) {
65+
DocumentListener.super.bulkUpdateFinished(document);
66+
}
67+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.haojiyou.cnchar.action;
2+
3+
import com.intellij.openapi.actionSystem.AnAction;
4+
import com.intellij.openapi.actionSystem.AnActionEvent;
5+
import org.jetbrains.annotations.NotNull;
6+
7+
/**
8+
* 中文符号替换成英文符号
9+
*
10+
* @author lixuran
11+
*/
12+
public class EditorHandlerIllustration extends AnAction {
13+
14+
15+
16+
17+
@Override
18+
public void actionPerformed(@NotNull AnActionEvent anActionEvent) {
19+
}
20+
}
21+
22+
23+

src/main/java/com/haojiyou/cnChar/common/CommentUtil.java renamed to src/main/java/com/haojiyou/cnchar/common/CommentUtil.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
package com.haojiyou.cnChar.common;
1+
package com.haojiyou.cnchar.common;
22

33
import org.apache.commons.lang3.StringUtils;
44

55
import java.util.HashMap;
6+
import java.util.Map;
67

78
/**
89
* 描述:
@@ -11,8 +12,8 @@
1112
*/
1213
public class CommentUtil {
1314

14-
private static HashMap COMMENT_START_MAP = new HashMap();
15-
private static HashMap COMMENT_END_MAP = new HashMap();
15+
private static final Map<String, String[]> COMMENT_START_MAP = new HashMap<>();
16+
private static final Map<String, String[]> COMMENT_END_MAP = new HashMap<>();
1617

1718
static {
1819
COMMENT_START_MAP.put(FileType.JAVA.getType(), new String[]{"//", "/*", "*"});
@@ -35,8 +36,8 @@ public static boolean isComment(String line, FileType fileType) {
3536
//不支持的文件类型,目前暂不转换
3637
return true;
3738
}
38-
String[] commentStartFlags = (String[]) COMMENT_START_MAP.get(fileType.getType());
39-
String[] commentEndFlags = (String[]) COMMENT_END_MAP.get(fileType.getType());
39+
String[] commentStartFlags = COMMENT_START_MAP.get(fileType.getType());
40+
String[] commentEndFlags = COMMENT_END_MAP.get(fileType.getType());
4041
boolean result = false;
4142
if (commentStartFlags != null){
4243
result = StringUtils.startsWithAny(StringUtils.trim(line),commentStartFlags );

src/main/java/com/haojiyou/cnChar/common/FileType.java renamed to src/main/java/com/haojiyou/cnchar/common/FileType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.haojiyou.cnChar.common;
1+
package com.haojiyou.cnchar.common;
22

33
import org.apache.commons.lang3.StringUtils;
44

0 commit comments

Comments
 (0)