Skip to content

Commit 0dc033d

Browse files
committed
feat(rule): add options
1 parent f87c43c commit 0dc033d

File tree

1 file changed

+12
-5
lines changed

1 file changed

+12
-5
lines changed

src/no-doubled-joshi.js

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,13 @@ function createSurfaceKeyMap(tokens) {
2121
return keyMap;
2222
}, {});
2323
}
24-
export default function (context) {
24+
25+
const defaultOptions = {
26+
min_interval: 2
27+
};
28+
export default function (context, options = {}) {
29+
// 最低間隔値
30+
let minInterval = options.min_interval || defaultOptions.min_interval;
2531
let {Syntax, report, getSource, RuleError} = context;
2632
return {
2733
[Syntax.Str](node){
@@ -30,7 +36,7 @@ export default function (context) {
3036
return node.type === SentenceSyntax.Sentence;
3137
});
3238
return getTokenizer().then(tokenizer => {
33-
sentences.forEach(sentence => {
39+
const checkSentence = (sentence) => {
3440
let tokens = tokenizer.tokenizeForSentence(sentence.raw);
3541
let joshiTokens = tokens.filter(token => {
3642
return token.pos === "助詞";
@@ -56,7 +62,7 @@ export default function (context) {
5662
let otherPosition = joshiTokens.indexOf(current);
5763
// if difference
5864
let differenceIndex = otherPosition - startPosition;
59-
if (differenceIndex <= 2) {
65+
if (differenceIndex <= minInterval) {
6066
report(node, new RuleError(`一文に二回以上利用されている助詞 "${key}" がみつかりました。`, {
6167
line: sentence.loc.start.line - 1,
6268
// matchLastToken.word_position start with 1
@@ -67,8 +73,9 @@ export default function (context) {
6773
return current;
6874
});
6975
});
70-
});
76+
};
77+
sentences.forEach(checkSentence);
7178
});
7279
}
7380
}
74-
}
81+
};

0 commit comments

Comments
 (0)