Skip to content

Commit 8ab9643

Browse files
committed
feat(4.3.1): 一部の条件で半角かっこをエラーにしない
かっこの内側または外側が日本語以外のとき、半角かっこをエラーにしない。 ただし、かっこ内に日本語が含まれる場合は全角かっこを必須とする。
1 parent 5181b88 commit 8ab9643

File tree

4 files changed

+88
-40
lines changed

4 files changed

+88
-40
lines changed

src/4.3.1.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,10 @@ function reporter(context) {
3131
// 半角のかっこ()は使用しないで全角のかっこを使用する
3232
const text = getSource(node);
3333
const matchRegExps = [
34-
// FIXME: https://github.com/textlint-ja/textlint-rule-preset-JTF-style/issues/79
35-
// rx`([\(\)])(?:${japaneseRegExp}+)([\(\)])`,
36-
// rx`([\(\)])(?:${japaneseRegExp})`,
37-
rx`(?:${japaneseRegExp})([\(\)])`
34+
rx`([\(\)])(?:.*${japaneseRegExp}.*)([\(\)])`,
35+
rx`(?:${japaneseRegExp})([\(\)])(?:${japaneseRegExp})`,
36+
rx`^(\()(?:${japaneseRegExp})`,
37+
rx`(?:${japaneseRegExp})(\))$`
3838
];
3939
matchRegExps.forEach((matchRegExp) => {
4040
matchCaptureGroupAll(text, matchRegExp).forEach((match) => {

test/4.3.1-test.js

Lines changed: 66 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,14 @@ var tester = new TextLintTester();
66
tester.run("4.3.1.丸かっこ()", rule, {
77
valid: [
88
"クォーク(物質の素粒子)",
9+
"(物質の素粒子)クォーク",
910
"(物質の素粒子)",
1011
"(npm 2.x以上をインストールしている必要があります)",
12+
"(必要バージョン: 2.x)",
1113
// 英語のみの半角括弧は許可
1214
// https://github.com/textlint-ja/textlint-rule-preset-JTF-style/issues/79
13-
"これは (English text in half-width parens) です。"
15+
"これは (English text in half-width parens) です。",
16+
"これは(English text in half-width parens)です。"
1417
],
1518
invalid: [
1619
{
@@ -28,41 +31,70 @@ tester.run("4.3.1.丸かっこ()", rule, {
2831
}
2932
]
3033
},
31-
// // FIXME: https://github.com/textlint-ja/textlint-rule-preset-JTF-style/issues/79
32-
// {
33-
// // 半角かっこ
34-
// text: "(物質の素粒子)",
35-
// output: "(物質の素粒子)",
36-
// errors: [
37-
// {
38-
// message: "半角のかっこ()が使用されています。全角のかっこ()を使用してください。",
39-
// column: 1
40-
// },
41-
// {
42-
// message: "半角のかっこ()が使用されています。全角のかっこ()を使用してください。",
43-
// column: 8
44-
// }
45-
// ]
46-
// },
47-
// {
48-
// // 半角かっこ
49-
// text: "(npm 2.x以上をインストールしている必要があります)",
50-
// output: "(npm 2.x以上をインストールしている必要があります)",
51-
// errors: [
52-
// {
53-
// message: "半角のかっこ()が使用されています。全角のかっこ()を使用してください。",
54-
// column: 1
55-
// },
56-
// {
57-
// message: "半角のかっこ()が使用されています。全角のかっこ()を使用してください。",
58-
// column: 29
59-
// }
60-
// ]
61-
// },
6234
{
6335
// 半角かっこ
64-
text: "例)test",
65-
output: "例)test",
36+
text: "(物質の素粒子)クォーク",
37+
output: "(物質の素粒子)クォーク",
38+
errors: [
39+
{
40+
message: "半角のかっこ()が使用されています。全角のかっこ()を使用してください。",
41+
column: 1
42+
},
43+
{
44+
message: "半角のかっこ()が使用されています。全角のかっこ()を使用してください。",
45+
column: 8
46+
}
47+
]
48+
},
49+
{
50+
// 半角かっこ
51+
text: "(物質の素粒子)",
52+
output: "(物質の素粒子)",
53+
errors: [
54+
{
55+
message: "半角のかっこ()が使用されています。全角のかっこ()を使用してください。",
56+
column: 1
57+
},
58+
{
59+
message: "半角のかっこ()が使用されています。全角のかっこ()を使用してください。",
60+
column: 8
61+
}
62+
]
63+
},
64+
{
65+
// 半角かっこ
66+
text: "(npm 2.x以上をインストールしている必要があります)",
67+
output: "(npm 2.x以上をインストールしている必要があります)",
68+
errors: [
69+
{
70+
message: "半角のかっこ()が使用されています。全角のかっこ()を使用してください。",
71+
column: 1
72+
},
73+
{
74+
message: "半角のかっこ()が使用されています。全角のかっこ()を使用してください。",
75+
column: 29
76+
}
77+
]
78+
},
79+
{
80+
// 半角かっこ
81+
text: "(必要バージョン: 2.x)",
82+
output: "(必要バージョン: 2.x)",
83+
errors: [
84+
{
85+
message: "半角のかっこ()が使用されています。全角のかっこ()を使用してください。",
86+
column: 1
87+
},
88+
{
89+
message: "半角のかっこ()が使用されています。全角のかっこ()を使用してください。",
90+
column: 14
91+
}
92+
]
93+
},
94+
{
95+
// 半角かっこ
96+
text: "例)テスト",
97+
output: "例)テスト",
6698
errors: [
6799
{
68100
message: "半角のかっこ()が使用されています。全角のかっこ()を使用してください。",

test/fixtures/input.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,15 @@ A氏は「5月に新製品を発売します。」と述べました。
9191

9292
クォーク(物質の素粒子)
9393

94-
例)test
94+
(物質の素粒子)クォーク
95+
96+
(物質の素粒子)
97+
98+
(npm 2.x以上をインストールしている必要があります)
99+
100+
(必要バージョン: 2.x)
101+
102+
例)テスト
95103

96104
半角[かっこ
97105

test/fixtures/output.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,15 @@ A氏は「5月に新製品を発売します」と述べました。
9191

9292
クォーク(物質の素粒子)
9393

94-
例)test
94+
(物質の素粒子)クォーク
95+
96+
(物質の素粒子)
97+
98+
(npm 2.x以上をインストールしている必要があります)
99+
100+
(必要バージョン: 2.x)
101+
102+
例)テスト
95103

96104
半角[かっこ
97105

0 commit comments

Comments
 (0)