Skip to content

Commit b8cdd16

Browse files
authoredSep 12, 2020
fix(4.3.1): 開きかっこと閉じかっこを両方reportする (#76)
1 parent e9c58f7 commit b8cdd16

File tree

4 files changed

+56
-12
lines changed

4 files changed

+56
-12
lines changed
 

‎src/4.3.1.js

+17-11
Original file line numberDiff line numberDiff line change
@@ -30,17 +30,23 @@ function reporter(context) {
3030
}
3131
// 半角のかっこ()は使用しないで全角のかっこを使用する
3232
const text = getSource(node);
33-
const matchRegExp = rx`(?:${japaneseRegExp})([\(\)])`;
34-
matchCaptureGroupAll(text, matchRegExp).forEach(match => {
35-
const { index } = match;
36-
report(
37-
node,
38-
new RuleError("半角のかっこ()が使用されています。全角のかっこ()を使用してください。", {
39-
index: index,
40-
fix: fixer.replaceTextRange([index, index + 1], replaceSymbol(match.text))
41-
})
42-
);
43-
});
33+
const matchRegExps = [
34+
rx`([\(\)])(?:.*${japaneseRegExp}+.*)([\(\)])`,
35+
rx`([\(\)])(?:.*${japaneseRegExp})`,
36+
rx`(?:${japaneseRegExp}.*)([\(\)])`
37+
];
38+
for (const matchRegExp of matchRegExps) {
39+
matchCaptureGroupAll(text, matchRegExp).forEach(match => {
40+
const { index } = match;
41+
report(
42+
node,
43+
new RuleError("半角のかっこ()が使用されています。全角のかっこ()を使用してください。", {
44+
index: index,
45+
fix: fixer.replaceTextRange([index, index + 1], replaceSymbol(match.text))
46+
})
47+
);
48+
});
49+
}
4450
}
4551
};
4652
}

‎test/4.3.1-test.js

+31-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import TextLintTester from "textlint-tester";
44
import rule from "../src/4.3.1.js";
55
var tester = new TextLintTester();
66
tester.run("4.3.1.丸かっこ()", rule, {
7-
valid: ["クォーク(物質の素粒子)"],
7+
valid: ["クォーク(物質の素粒子)", "(物質の素粒子)", "(npm 2.x以上をインストールしている必要があります)"],
88
invalid: [
99
{
1010
// 半角かっこ
@@ -21,6 +21,36 @@ tester.run("4.3.1.丸かっこ()", rule, {
2121
}
2222
]
2323
},
24+
{
25+
// 半角かっこ
26+
text: "(物質の素粒子)",
27+
output: "(物質の素粒子)",
28+
errors: [
29+
{
30+
message: "半角のかっこ()が使用されています。全角のかっこ()を使用してください。",
31+
column: 1
32+
},
33+
{
34+
message: "半角のかっこ()が使用されています。全角のかっこ()を使用してください。",
35+
column: 8
36+
}
37+
]
38+
},
39+
{
40+
// 半角かっこ
41+
text: "(npm 2.x以上をインストールしている必要があります)",
42+
output: "(npm 2.x以上をインストールしている必要があります)",
43+
errors: [
44+
{
45+
message: "半角のかっこ()が使用されています。全角のかっこ()を使用してください。",
46+
column: 1
47+
},
48+
{
49+
message: "半角のかっこ()が使用されています。全角のかっこ()を使用してください。",
50+
column: 29
51+
}
52+
]
53+
},
2454
{
2555
// 半角かっこ
2656
text: "例)test",

‎test/fixtures/input.md

+4
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,10 @@ A氏は「5月に新製品を発売します。」と述べました。
8585

8686
クォーク(物質の素粒子)
8787

88+
(物質の素粒子)
89+
90+
(npm 2.x以上をインストールしている必要があります)
91+
8892
例)test
8993

9094
半角[かっこ

‎test/fixtures/output.md

+4
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,10 @@ A氏は「5月に新製品を発売します」と述べました。
8585

8686
クォーク(物質の素粒子)
8787

88+
(物質の素粒子)
89+
90+
(npm 2.x以上をインストールしている必要があります)
91+
8892
例)test
8993

9094
半角[かっこ

0 commit comments

Comments
 (0)
Please sign in to comment.