
textlintで表記ゆれチェックルール集を一部無視する設定
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
どうも。 えーたん(@eetann092)です。
文章校正ツールtextlintでは、 textlint-rule-prhを使って表記ゆれチェックができます。
具体的には、
「コンピューターはコンピュータ、
するようになりますはしますの方が良いのでは?」
と表記ゆれや言い回しの改善案を提案できます。
以下はNeovimでの表示の例です。
本記事では、textlint-rule-prhで表記ゆれチェックのルールファイルをimportした場合に、 一部のルールを無視する方法について紹介します。
すでにtextlint-rule-prhを導入している人向けの記事です。
設定例
無視前の設定
.textlintrcのrulesに、
textlint-rule-prhの設定ファイルのパスとして今回はprh.yamlを指定します。
{
"rules": {
"prh": {
"rulePaths" :["./prh.yaml"]
}
}
}
例として、prhの表記ゆれのルールファイル prh/rulesのWEB+DB_PRESS.yml に定義されている以下の3つを無視します。
| 期待する正規表現 | 表記ゆれの正規表現 | 提案例 |
|---|---|---|
| まったく | 全く | 全く → まったく |
| $1ほか$2 | /([^排人])他([^ァ-ヶ社者人方])/ | の他の → のほかの |
| $1な$2 | /([^有])無([かくいけし])/ | が無い → がない |
ひらがなを提案される部分を漢字で書きたい場合を想定しました。
表記ゆれのルールファイル(今回はWEB+DB_PRESS.yml)では、「期待する正規表現」がexpected、「表記ゆれの正規表現」がpatternにあたります。
以下が無視の設定をしていないprh.yaml例です。
version: 1
imports:
- path: ./node_modules/prh/prh-rules/media/WEB+DB_PRESS.yml
disableImports: true
無視設定を書く
importsでインポートするルールの中から無視したいものは、ignoreRulesで指定します。
指定方法は2種類あり、無視したいルールのexpectedかpatternを書きます。
ここで1つ注意です。
表記ゆれのルールファイル(今回はWEB+DB_PRESS.yml)で書かれたexpectedやpatternを
そのまま書けば良いわけではありません。
prhの実装や prh/prh.yml のコメントの通り、設定ファイルパース後の表現を書く必要があります。
パース後の表現はprhコマンドに--rules-yamlオプションをつけて見ることができます。
たとえば、WEB+DB_PRESS.ymlのルールのパース後の表現の出力のコマンドは以下です。
npx prh --rules ./node_modules/prh/prh-rules/media/WEB+DB_PRESS.yml --rules-yaml
以下がWEB+DB_PRESS.ymlのルールのパース後の表現の出力の一部です。
rules:
- expected: $1な$2
pattern: '/([^有])無([かくいけし])/gmu'
options:
wordBoundary: false
specs: []
raw:
pattern: '/([^有])無([かくいけし])/'
expected: $1な$2
出力は長いため、必要に応じてlessやgrepに渡しましょう。
元のルールの表現はrawの中に書かれており、
「パース後の表現」はrules直下の配列の要素のexpectedとpatternです。
上記の出力のルールを例にすると、
ignoreRulesにpatternで指定する場合は/([^有])無([かくいけし])/gmuのように
フラグgmuを追加する必要があります。
もちろんexpectedを使って$1な$2を指定しても良いでしょう。
以下が無視の設定をしたprh.yaml例です。
version: 1
imports:
- path: ./node_modules/prh/prh-rules/media/WEB+DB_PRESS.yml
disableImports: true
ignoreRules:
- expected: まったく
- expected: $1ほか$2
- pattern: /([^有])無([かくいけし])/gmu
そもそも表記ゆれだけではなくtextlint自体で特定の範囲を無視したい場合は、 以下の記事をご覧ください。
リンク集
よく開いたページのリンクをまとめておきます。
今回使用したサンプル文章や設定ファイルは以下のリポジトリにあります。







