textlint-ja / textlint-rule-ja-no-successive-word

同一の単語を間違えて連続しているのを見つけるtextlintルール
MIT License
6 stars 1 forks source link

記号を許可する RegExp Like 表現 #8

Open hata6502 opened 3 years ago

hata6502 commented 3 years ago

デフォルト設定では、全角スペースや全角感嘆符などの記号が連続している場合にも、エラーが出るようです。 そこで、記号に対してもエラーを出さないための設定を共有します。 ※unicode の記号を完全には網羅していません。

options: {
  allow: ['/[\\u2000-\\u2DFF\\u2E00-\\u33FF\\uF900-\\uFFFD]/'],
}
azu commented 3 years ago

記号の連続は対象外な気がするので、 デフォルトで、ひらがなとカタカナだけが対象で良い気がしますね。

https://github.com/textlint-ja/textlint-rule-ja-no-successive-word/blob/2b40f865158638c96fef83ded01a3a7771330caf/src/textlint-rule-ja-no-successive-word.js#L32-L33 ここで、prevWordとcurrentWordがどちらもひらがな or カタカナ(半角カナも含む) のみで構成されているかのチェックを入れてしまうのが良い気がしますね。 https://github.com/textlint-ja/textlint-rule-preset-JTF-style/blob/465497735666ad303d5d801fe01041b1c43351a6/src/util/regexp.js#L8-L9

(処理的には https://github.com/textlint-ja/textlint-rule-ja-no-successive-word/blob/2b40f865158638c96fef83ded01a3a7771330caf/src/textlint-rule-ja-no-successive-word.js#L27-L28 ここの text の時点で日本語が一切含まれてないなら全くチェックしなくても良い気がしますね。無駄なパースなので)

azu commented 3 years ago

漢字はオプションでチェックできるようにした方がいいもしれないとちょっと悩みますね。 少なくても記号は完全に無視して良い気がしますね。

チェック対象を 明示的に許可リストで持つ方が誤検知しなくていいので、

のみがチェック対象(prevWord, currentWord)と明示するのが良さそうですね。