Skip to content

Commit ed4c3bb

Browse files
committed
feat(4.1.1): fixer support
1 parent 371c01d commit ed4c3bb

File tree

2 files changed

+24
-12
lines changed

2 files changed

+24
-12
lines changed

src/4.1.1.js

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,27 +8,34 @@
88
文中に丸かっこが入る場合も閉じかっこの前に句点を打ちません。。
99
*/
1010
import {isUserWrittenNode} from "./util/node-util";
11+
import {matchCaptureGroupAll} from "./util/match-index";
1112
const brackets = [
12-
"」", ")", ")"
13+
"」", ")", "\\)"
1314
];
1415
const leftBrackets = brackets.map(bracket => {
15-
return "。" + bracket;
16+
return new RegExp("\(。\)" + bracket, "g");
1617
});
17-
export default function (context) {
18-
let {Syntax, RuleError, report, getSource} = context;
18+
var reporter = function reporter(context) {
19+
let {Syntax, RuleError, report, fixer, getSource} = context;
1920
return {
2021
[Syntax.Str](node){
2122
if (!isUserWrittenNode(node, context)) {
2223
return;
2324
}
2425
let text = getSource(node);
25-
// ←にスペース
2626
leftBrackets.forEach(pattern => {
27-
var index = text.indexOf(pattern);
28-
if (index !== -1) {
29-
report(node, new RuleError("文中にかぎかっこが入る場合は、閉じかっこ の前に句点を打ちません。", index));
30-
}
27+
matchCaptureGroupAll(text, pattern).forEach(match => {
28+
const {index} = match;
29+
report(node, new RuleError("文中にかぎかっこが入る場合は、閉じかっこの前に句点を打ちません。", {
30+
column: index,
31+
fix: fixer.replaceTextRange([index, index + 1], "")
32+
}));
33+
});
3134
});
3235
}
3336
};
34-
}
37+
};
38+
export default {
39+
linter: reporter,
40+
fixer: reporter
41+
};

test/4.1.1-test.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,20 @@ tester.run("4.1.1.句点(。)", rule, {
1111
invalid: [
1212
{
1313
text: "A 氏は「5 月に新製品を発売します。」と述べました。",
14+
output: "A 氏は「5 月に新製品を発売します」と述べました。",
1415
errors: [
15-
{message: "文中にかぎかっこが入る場合は、閉じかっこ の前に句点を打ちません。"}
16+
{
17+
message: "文中にかぎかっこが入る場合は、閉じかっこの前に句点を打ちません。",
18+
column: 19
19+
}
1620
]
1721
},
1822
{
1923
text: "従業員は約 30,000 人です(関連企業を含みます。)",
24+
output: "従業員は約 30,000 人です(関連企業を含みます)",
2025
errors: [
2126
{
22-
message: "文中にかぎかっこが入る場合は、閉じかっこ の前に句点を打ちません。",
27+
message: "文中にかぎかっこが入る場合は、閉じかっこの前に句点を打ちません。",
2328
line: 1,
2429
column: 27
2530
}

0 commit comments

Comments
 (0)