Skip to content

Commit 6666d3b

Browse files
committed
feat: 2.05 ignore id in ignore.sql-list.txt | 忽略 ignore.sql-list.txt 中的 id
1 parent cd960ff commit 6666d3b

File tree

6 files changed

+69
-30
lines changed

6 files changed

+69
-30
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
## [1.0.0]
66

7+
- 2.05 ignore id in ignore.sql-list.txt
78
- 2.04 MyBatis *.xml SQL inspection
89
- 2.02 ★ Column Relationships PlantUML
910
- 2.01 Copy MyBatis *.xml SQL
@@ -12,6 +13,7 @@
1213

1314
# 中文更新日志
1415

16+
- 2.05 忽略 ignore.sql-list.txt 中的 id
1517
- 2.04 MyBatis *.xml SQL 实时检查
1618
- 2.03 增加 sql-list.err.md 文件
1719
- 2.02 ★ 列关系 PlantUML 图

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ pluginGroup = com.github.linwancen.plugin.sql
44
pluginName = sql-list
55
pluginRepositoryUrl = https://github.com/LinWanCen/sql-list
66
# SemVer format -> https://semver.org
7-
pluginVersion = 2.04
7+
pluginVersion = 2.05
88

99
# Supported build number ranges and IntelliJ Platform versions -> https://plugins.jetbrains.com/docs/intellij/build-number-ranges.html
1010
pluginSinceBuild = 201

src/main/java/io/github/linwancen/sql/excel/SqlInfoWriter.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,10 @@ public void write(List<SqlInfo> sqlInfo) {
4646
StringBuilder err = new StringBuilder();
4747
for (SqlInfo info : sqlInfo) {
4848
String sqlStr = info.getSql();
49-
sqlStr = LineFormat.itemsOneLine(sqlStr);
50-
sqlStr = LineFormat.deleteSpaceLine(sqlStr);
49+
if (sqlStr != null) {
50+
sqlStr = LineFormat.itemsOneLine(sqlStr);
51+
sqlStr = LineFormat.deleteSpaceLine(sqlStr);
52+
}
5153
info.setSql(sqlStr);
5254

5355
for (TreeMap<String, TableColumn> map : info.getColumnList()) {
@@ -136,7 +138,7 @@ private static void write(String pathPrefix, String ext, StringBuilder err, Stri
136138
File errFile = new File(pathPrefix + ext);
137139
try {
138140
Files.write(errFile.toPath(), err.toString().getBytes(StandardCharsets.UTF_8));
139-
LOG.info("{}:\tfile:///{}{}", tip, pathPrefix.replace('\\', '/'), ext);
141+
LOG.info("{}:\tfile:///{}{}\n", tip, pathPrefix.replace('\\', '/'), ext);
140142
} catch (IOException e) {
141143
LOG.error("{} write fail: ", tip, e);
142144
}

src/main/java/io/github/linwancen/sql/parser/AllParser.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import io.github.linwancen.sql.bean.GitRootInfo;
44
import io.github.linwancen.sql.bean.SqlInfo;
55
import io.github.linwancen.sql.parser.jsqlparser.JSqlParser;
6+
import io.github.linwancen.sql.parser.log.SqlInfoLog;
67
import io.github.linwancen.sql.parser.mybatis.MapperFileFinder;
78
import io.github.linwancen.sql.parser.mybatis.MyBatisParser;
89
import io.github.linwancen.util.java.TimeUtils;
@@ -21,21 +22,25 @@ public static List<SqlInfo> parse(Collection<File> files, GitRootInfo gitRootInf
2122
List<SqlInfo> sqlInfoList = new ArrayList<>();
2223
long t1 = System.currentTimeMillis();
2324

24-
List<File> mapperFileList = MapperFileFinder.findMapperFileList(files);
25-
LOG.info("mapperList size {}", mapperFileList.size());
25+
List<File> ignoreFileList = new ArrayList<>();
26+
List<File> mapperFileList = new ArrayList<>();
27+
MapperFileFinder.findMapperFileList(files, mapperFileList, ignoreFileList);
28+
LOG.info("ignoreFileList size {}\n", ignoreFileList.size());
29+
SqlInfoLog.loadAndAddIgnore(ignoreFileList);
30+
LOG.info("mapperFileList size {}\n", mapperFileList.size());
2631
new MyBatisParser().parser(mapperFileList, gitRootInfo, sqlInfoList::add);
2732
long t2 = System.currentTimeMillis();
28-
LOG.info("sql size {}", sqlInfoList.size());
29-
LOG.info("MyBatisParser use {}", TimeUtils.useTime(t2 - t1));
33+
LOG.info("sql size {}\n", sqlInfoList.size());
34+
LOG.info("MyBatisParser use {}\n", TimeUtils.useTime(t2 - t1));
3035

3136
sqlInfoList.parallelStream().forEach(JSqlParser::parseSQL);
3237
long t3 = System.currentTimeMillis();
33-
LOG.info("SqlParser use {}", TimeUtils.useTime(t3 - t2));
38+
LOG.info("SqlParser use {}\n", TimeUtils.useTime(t3 - t2));
3439

3540
if (git) {
3641
sqlInfoList.parallelStream().forEach(GitParser::parseLast);
3742
long t4 = System.currentTimeMillis();
38-
LOG.info("GitParser use {}", TimeUtils.useTime(t4 - t3));
43+
LOG.info("GitParser use {}\n", TimeUtils.useTime(t4 - t3));
3944
}
4045

4146
return sqlInfoList;

src/main/java/io/github/linwancen/sql/parser/log/SqlInfoLog.java

Lines changed: 43 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,31 @@
77
import org.slf4j.Logger;
88
import org.slf4j.LoggerFactory;
99

10+
import java.io.File;
1011
import java.io.PrintWriter;
1112
import java.io.StringWriter;
13+
import java.nio.file.Files;
14+
import java.util.List;
15+
import java.util.Map;
16+
import java.util.concurrent.ConcurrentHashMap;
1217

1318
public class SqlInfoLog {
1419
private static final Logger LOG = LoggerFactory.getLogger(SqlInfoLog.class);
20+
private static final Map<String, String> ignoreIdMap = new ConcurrentHashMap<>();
21+
22+
public static void loadAndAddIgnore(List<File> files) {
23+
ignoreIdMap.clear();
24+
files.parallelStream().forEach(file -> {
25+
try {
26+
List<String> list = Files.readAllLines(file.toPath());
27+
for (String s : list) {
28+
ignoreIdMap.put(s, "");
29+
}
30+
} catch (Exception e) {
31+
LOG.error("loadAndAddIgnore fail: ", e);
32+
}
33+
});
34+
}
1535

1636
/**
1737
* gitAuthor name fail: ExceptionClassSimpleName: LocalizedMessage.delete("Was expecting...")
@@ -20,6 +40,9 @@ public class SqlInfoLog {
2040
* <br>^
2141
*/
2242
public static String msg(String name, SqlInfo sqlInfo, Exception e, boolean inXml) {
43+
if (ignoreIdMap.containsKey(sqlInfo.getFullId())) {
44+
return name + " ignore fail: " + sqlInfo.getFullId() + "\n";
45+
}
2346
StringWriter sw = new StringWriter();
2447
e.printStackTrace(new PrintWriter(sw));
2548
String stackTrace = sw.toString();
@@ -33,35 +56,40 @@ public static String msg(String name, SqlInfo sqlInfo, Exception e, boolean inXm
3356
if (msg == null) {
3457
return stackTrace;
3558
}
36-
StringBuilder sb = new StringBuilder(name).append(" fail: ");
37-
sb.append(e.getClass().getSimpleName()).append(": ");
38-
int i = msg.indexOf("\nWas expecting");
39-
if (i > 0) {
40-
msg = msg.substring(0, i).replace("\n", "");
41-
}
42-
if (inXml) {
43-
sqlInfo.setXmlErr(msg);
44-
} else {
45-
sqlInfo.setSqlErr(msg);
46-
}
47-
sb.append(msg).append('\n');
59+
StringBuilder sb = new StringBuilder(name).append(" fail:\n");
60+
msg = addExceptionMsg(sqlInfo, e, inXml, sb, msg);
4861
GitParser.parseLast(sqlInfo);
4962
sb.append(sqlInfo.getLastAuthor()).append(' ');
5063
sb.append(".(").append(sqlInfo.getFile().getName()).append(':').append(sqlInfo.getStartLine()).append(") ");
51-
sb.append(sqlInfo.getId());
52-
sb.append(" file:///").append(PathUtils.canonicalPath(sqlInfo.getFile()));
64+
sb.append(sqlInfo.getId()).append("\n");
65+
sb.append("file:///").append(PathUtils.canonicalPath(sqlInfo.getFile())).append("\n");
5366

5467
String sql = sqlInfo.getSql();
5568
if (sql == null) {
5669
return sb.toString();
5770
}
5871
sql = LineColumnTip.parseMsg(sql, msg);
5972
sqlInfo.setSql(sql);
60-
sb.append('\n').append(sql);
73+
sb.append('\n').append(sql).append("\n");
6174
return sb.toString();
6275
} catch (RuntimeException re) {
6376
LOG.warn("SqlInfoLog.msg() Exception: ", re);
6477
return stackTrace;
6578
}
6679
}
80+
81+
private static String addExceptionMsg(SqlInfo sqlInfo, Exception e, boolean inXml, StringBuilder sb, String msg) {
82+
sb.append(e.getClass().getSimpleName()).append(": ");
83+
int i = msg.indexOf("\nWas expecting");
84+
if (i > 0) {
85+
msg = msg.substring(0, i).replace("\n", "");
86+
}
87+
if (inXml) {
88+
sqlInfo.setXmlErr(msg);
89+
} else {
90+
sqlInfo.setSqlErr(msg);
91+
}
92+
sb.append(msg).append('\n');
93+
return msg;
94+
}
6795
}

src/main/java/io/github/linwancen/sql/parser/mybatis/MapperFileFinder.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,25 +4,27 @@
44
import io.github.linwancen.util.java.MultiFileUtils;
55

66
import java.io.File;
7-
import java.util.ArrayList;
87
import java.util.Collection;
98
import java.util.List;
109

1110
public class MapperFileFinder {
1211

13-
public static List<File> findMapperFileList(Collection<File> files) {
14-
List<File> mapperList = new ArrayList<>();
12+
public static void findMapperFileList(Collection<File> files,
13+
List<File> mapperFileList,
14+
List<File> ignoreFileList) {
1515
files.parallelStream().forEach(file -> {
1616
MultiFileUtils.walk(file, f -> {
1717
String path = PathUtils.canonicalPath(f);
1818
if (path.contains("/target/") || path.contains("/build/")) {
1919
return;
2020
}
2121
if (path.endsWith(".xml")) {
22-
mapperList.add(f);
22+
mapperFileList.add(f);
23+
}
24+
if (path.endsWith("ignore.sql-list.txt")) {
25+
ignoreFileList.add(f);
2326
}
2427
});
2528
});
26-
return mapperList;
2729
}
2830
}

0 commit comments

Comments
 (0)