Skip to content

Commit b69c090

Browse files
authored
fix: update kuromojin@3 and fix max option (#11)
1 parent 77f763a commit b69c090

File tree

5 files changed

+50
-45
lines changed

5 files changed

+50
-45
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
"rules": {
2828
"max-ten": {
2929
// 1文に利用できる最大の、の数
30+
// max: 3の場合は4つ以上の読点でエラーとなる
3031
"max": 3,
3132
// 例外ルールを適応するかどうか,
3233
"strict": false,

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
"textlint-scripts": "^3.0.0"
4141
},
4242
"dependencies": {
43-
"kuromojin": "^2.1.1",
43+
"kuromojin": "^3.0.0",
4444
"sentence-splitter": "^3.2.0",
4545
"structured-source": "^3.0.2",
4646
"textlint-rule-helper": "^2.0.0",

src/max-ten.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,16 +87,16 @@ module.exports = function (context, options = {}) {
8787
currentTenCount++;
8888
lastToken = token;
8989
}
90-
if (surface === "。") {
90+
if (surface === kuten) {
9191
// reset
9292
currentTenCount = 0;
9393
}
9494
// report
95-
if (currentTenCount >= maxLen) {
95+
if (currentTenCount > maxLen) {
9696
const positionInSentence = source.originalIndexFromIndex(lastToken.word_position - 1);
9797
const index = sentence.range[0] + positionInSentence;
9898
const ruleError = new context.RuleError(
99-
`一つの文で"${touten}"を${maxLen}つ以上使用しています`,
99+
`一つの文で"${touten}"を${maxLen + 1}つ以上使用しています`,
100100
{
101101
index
102102
}

test/max-ten-test.js

Lines changed: 25 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,14 @@ const tester = new TextLintTester();
1010
tester.run("max-ten", rule, {
1111
// default max:3
1212
valid: [
13-
"名詞、名詞、名詞、名詞の場合は例外",
13+
"名詞、名詞、名詞、名詞、名詞の場合は例外",
1414
"ビスケットの主な材料は(1)小麦粉、(2)牛乳、(3)ショートニング、(4)バター、(5)砂糖である。",
1515
"これは、TaskA、TaskB、TaskC、TaskDが処理するものです。",
1616
{
17-
text: textIncludeTen(3 - 1)
17+
text: textIncludeTen(3)
1818
},
1919
{
20-
text: textIncludeTen(5 - 1),
20+
text: textIncludeTen(5),
2121
options: {
2222
max: 5
2323
}
@@ -33,7 +33,7 @@ tester.run("max-ten", rule, {
3333
}
3434
},
3535
{
36-
text: `これは,これは.これは,これは.`,
36+
text: `これは,これは.これは,これは,これは.`,
3737
options: {
3838
touten: ",",
3939
kuten: "."
@@ -42,22 +42,20 @@ tester.run("max-ten", rule, {
4242
],
4343
invalid: [
4444
{
45-
text: `これは、これは、これは
46-
、d`,
45+
text: `これは、これは、これは、これは、これはだめ。`,
4746
errors: [
4847
{
49-
message: `一つの文で"、"を3つ以上使用しています`,
50-
line: 2,
51-
column: 1
48+
message: `一つの文で"、"を4つ以上使用しています`,
49+
index: 15
5250
}
5351
]
5452
},
5553
{
56-
text: `これは,これは,これは,これは。`,
54+
text: `これは,これは,これは,これは,これは。`,
5755
errors: [
5856
{
59-
message: `一つの文で","を3つ以上使用しています`,
60-
index: 11
57+
message: `一つの文で","を4つ以上使用しています`,
58+
index: 15
6159
}
6260
],
6361
options: {
@@ -66,11 +64,11 @@ tester.run("max-ten", rule, {
6664
}
6765
},
6866
{
69-
text: `これは,これは,これは。これは,これは,これは,`,
67+
text: `これは,これは,これは。これは,これは,これは,どうですか?`,
7068
errors: [
7169
{
72-
message: `一つの文で","を3つ以上使用しています`,
73-
index: 23
70+
message: `一つの文で","を4つ以上使用しています`,
71+
index: 19
7472
}
7573
],
7674
options: {
@@ -79,20 +77,20 @@ tester.run("max-ten", rule, {
7977
}
8078
},
8179
{
82-
text: textIncludeTen(5),
80+
text: textIncludeTen(6),
8381
options: {
8482
max: 5
8583
},
8684
errors: [
8785
{
88-
message: `一つの文で"、"を5つ以上使用しています`
86+
message: `一つの文で"、"を6つ以上使用しています`
8987
}
9088
]
9189
},
9290
{
9391
text: `これは、長文の例ですが、columnがちゃんと計算、されてるはずです。`,
9492
options: {
95-
max: 3
93+
max: 2
9694
},
9795
errors: [
9896
{
@@ -103,41 +101,41 @@ tester.run("max-ten", rule, {
103101
]
104102
},
105103
{
106-
text: "間に、Str以外の`code`Nodeが、あっても、OK",
104+
text: "間に、Str以外の`code`Nodeが、あっても、OKと、聞いています。",
107105
options: {
108106
max: 3
109107
},
110108
errors: [
111109
{
112-
message: `一つの文で"、"を3つ以上使用しています`,
110+
message: `一つの文で"、"を4つ以上使用しています`,
113111
line: 1,
114-
column: 26
112+
column: 30
115113
}
116114
]
117115
},
118116
{
119-
text: `複数のセンテンスがある場合。これでも、columnが、ちゃんと計算、されているはずです。`,
117+
text: `複数のセンテンスがある場合。これでも、columnが、ちゃんと計算、されているはず、そのためのテキストです。`,
120118
options: {
121119
max: 3
122120
},
123121
errors: [
124122
{
125-
message: `一つの文で"、"を3つ以上使用しています`,
123+
message: `一つの文で"、"を4つ以上使用しています`,
126124
line: 1,
127-
column: 34
125+
column: 42
128126
}
129127
]
130128
},
131129
{
132-
text: `複数のセンテンスがあって、改行されている場合でも\n大丈夫です。これでも、lineとcolumnが、ちゃんと計算、されているはずです。`,
130+
text: `複数のセンテンスがあって、改行されている場合でも\n大丈夫です。これでも、lineとcolumnが、ちゃんと計算、されているはず、そのためのテキストです。`,
133131
options: {
134132
max: 3
135133
},
136134
errors: [
137135
{
138-
message: `一つの文で"、"を3つ以上使用しています`,
136+
message: `一つの文で"、"を4つ以上使用しています`,
139137
line: 2,
140-
column: 31
138+
column: 39
141139
}
142140
]
143141
}

yarn.lock

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2706,21 +2706,22 @@ kind-of@^6.0.0, kind-of@^6.0.2:
27062706
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
27072707
integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
27082708

2709-
2710-
version "0.1.1"
2711-
resolved "https://registry.yarnpkg.com/kuromoji/-/kuromoji-0.1.1.tgz#4aabf39bcced8b8ad92d007a04a26be6da8477c9"
2712-
integrity sha1-Sqvzm8zti4rZLQB6BKJr5tqEd8k=
2709+
2710+
version "0.1.2"
2711+
resolved "https://registry.yarnpkg.com/kuromoji/-/kuromoji-0.1.2.tgz#293f0d6706df006112137980588d5daac26d0790"
2712+
integrity sha512-V0dUf+C2LpcPEXhoHLMAop/bOht16Dyr+mDiIE39yX3vqau7p80De/koFqpiTcL1zzdZlc3xuHZ8u5gjYRfFaQ==
27132713
dependencies:
27142714
async "^2.0.1"
27152715
doublearray "0.0.2"
2716-
zlibjs "^0.2.0"
2716+
zlibjs "^0.3.1"
27172717

2718-
kuromojin@^2.1.1:
2719-
version "2.1.1"
2720-
resolved "https://registry.yarnpkg.com/kuromojin/-/kuromojin-2.1.1.tgz#5de1dbec4ffcc7cce57a10e75e751cd1ca384e38"
2721-
integrity sha512-bd5dfE9CdRBoRPiquE5uhzBrDOn2K3WuFeOWqZgM7DNtQhvS7P9IALy5MtDxXcnw7DLBAZ1A7DByPO5BhXdgew==
2718+
kuromojin@^3.0.0:
2719+
version "3.0.0"
2720+
resolved "https://registry.yarnpkg.com/kuromojin/-/kuromojin-3.0.0.tgz#54a1a6643110f49f741c4beb82fef400d1cd498b"
2721+
integrity sha512-3h3qnn/NVVhqoKFP4oc7e6apO2B01Atc056oiVlIY7Uoup4rhrnBe28g3y9lK1HTmLDQEejvXB+3I3qxAneF7A==
27222722
dependencies:
2723-
kuromoji "0.1.1"
2723+
kuromoji "0.1.2"
2724+
lru_map "^0.4.1"
27242725

27252726
levn@^0.4.1:
27262727
version "0.4.1"
@@ -2858,6 +2859,11 @@ loud-rejection@^1.0.0:
28582859
currently-unhandled "^0.4.1"
28592860
signal-exit "^3.0.0"
28602861

2862+
lru_map@^0.4.1:
2863+
version "0.4.1"
2864+
resolved "https://registry.yarnpkg.com/lru_map/-/lru_map-0.4.1.tgz#f7b4046283c79fb7370c36f8fca6aee4324b0a98"
2865+
integrity sha512-I+lBvqMMFfqaV8CJCISjI3wbjmwVu/VyOoU7+qtu9d7ioW5klMgsTTiUOUp+DJvfTTzKXoPbyC6YfgkNcyPSOg==
2866+
28612867
make-dir@^2.0.0, make-dir@^2.1.0:
28622868
version "2.1.0"
28632869
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
@@ -4690,7 +4696,7 @@ [email protected], yargs@^13.3.0:
46904696
y18n "^4.0.0"
46914697
yargs-parser "^13.1.2"
46924698

4693-
zlibjs@^0.2.0:
4694-
version "0.2.0"
4695-
resolved "https://registry.yarnpkg.com/zlibjs/-/zlibjs-0.2.0.tgz#ae20f06243293d85c255563189f9b12f5b3ba1a0"
4696-
integrity sha1-riDwYkMpPYXCVVYxifmxL1s7oaA=
4699+
zlibjs@^0.3.1:
4700+
version "0.3.1"
4701+
resolved "https://registry.yarnpkg.com/zlibjs/-/zlibjs-0.3.1.tgz#50197edb28a1c42ca659cc8b4e6a9ddd6d444554"
4702+
integrity sha1-UBl+2yihxCymWcyLTmqd3W1ERVQ=

0 commit comments

Comments
 (0)