textlint-ja / textlint-rule-no-mix-dearu-desumasu

textlint rule that check no mix である and ですます.
MIT License
27 stars 8 forks source link

Breaking Change: デフォルトでは文末の"です/である"のみ検出するように #14

Closed azu closed 8 years ago

azu commented 8 years ago

strictオプションを導入し、デフォルトを{ "strict": false }としています。 そのため、デフォルトでは文末の表記のみを対象にチェックするように変更されています。

textlintでは多くのルールはfalse positiveにならないように、デフォルトを緩く設定しています。 厳しく(接続的な"である"なども)検出したい場合は、{ "strict": true } オプションが利用できます。

例えば、strict:false(デフォルト)では以下のような"である場合に"という接続的な"である"は無視されます。 そのため、次のような "であったが" は無視されています。

OK: 昨日はいい天気であったが、今日は雨です。

strict:falseでは次のような文末が"である"や"です"といったものだけを検出します。 そのため、次の文章は"ですが"と"である"が混在しているのでエラーとなります。

NG: 今日はいい天気である。明日も晴れです。

strict:trueとしていた場合では、以下の文章は"ですが"と"である"が混在しているのでエラーとなります。

NG: 今日はいい天気ですが、明日は悪天候である。


Q. なぜデフォルトでは文末のみの検出なのですか? A. 自然言語に絶対の表現がないためデフォルトを緩くするためです。

Q. 2.0(以前)と同じ挙動にするにはどうすればよいですか? A. オプションに"strict": trueを追加してください。

2.0

{
    "rules": {
        "no-mix-dearu-desumasu": {
             "preferInHeader": "", // "である" or "ですます"
             "preferInBody": "ですます",// "である" or "ですます"
             "preferInList": "である"    // "である" or "ですます"
        }
    }
}

3.0

{
    "rules": {
        "no-mix-dearu-desumasu": {
             "preferInHeader": "", // "である" or "ですます"
             "preferInBody": "ですます",// "である" or "ですます"
             "preferInList": "である",    // "である" or "ですます"
             // 文末以外でも、敬体(ですます調)と常体(である調)を厳しくチェックするかどうか
             "strict": true
        }
    }
}

関連Issue

close #13