Closed yo1000 closed 10 months ago
ありがとうございます。
preferの考慮漏れのような気もするので、新しいオプションなしにprefer*が指定されている場合は強制して良いような気もします。
混在させないという設定は""(空)
の指定で実現できてるはずなので、"preferInBody": "ですます"
とかを指定した時点で"である"を使ったらエラーにするのは違和感がない気はしています。
そのため、特に今の挙動(混在はしてないけど、preferじゃない書き方が入ってるケースをスルーする)のユースケースが思いつかなければ、今の挙動をenforceの挙動に変えてしまって問題ないと思います。
丁寧にやるならオプションを追加するのが正しそうですが、デフォルトを強制にした場合、ほとんど使われないオプションな気はするのでオプションはなしで良いかなと思いました。(破壊的な変更なので、major updateでリリースする形です)
minor updateで入れたい場合は、今のオプションありで入れて、次のmajorでデフォルトの挙動を変更する感じになりそうですね。
どちらか良いと思いますか?
@azu レビューありがとうございます。
丁寧にやるならオプションを追加するのが正しそうですが、デフォルトを強制にした場合、ほとんど使われないオプションな気はするのでオプションはなしで良いかなと思いました。(破壊的な変更なので、major updateでリリースする形です)
minor updateで入れたい場合は、今のオプションありで入れて、次のmajorでデフォルトの挙動を変更する感じになりそうですね。
どちらか良いと思いますか?
Major updateで、破壊的変更として取り込むか、Minor updateで、段階的に取り込むかですが、リリースにかかる期間にどの程度影響を与えるか次第で選択できればと考えています。
いずれを選択した場合も、さほど時間を空けずにリリースされるのであれば、Majorでデフォルト挙動自体を変更してしまう形が好ましく、次期Major updateに他にも何らかの機能追加等が計画されており、少し間を空けるようであればMinorを経由する形が良いです。
リリース時期に関する何らかの計画等はあるでしょうか。選択されたリリース方法に応じた内容で修正を加えようと思います。
このルール自体は、マージしたらすぐリリースしてしまうと思います。
presetの方は半年に1度にしていて、次回は1月リリースの予定です。 https://github.com/textlint-ja/textlint-rule-preset-japanese https://github.com/textlint-ja/textlint-rule-preset-ja-technical-writing
@azu ご回答ありがとうございます。
それでは取り急ぎ、Major updateでリリース可能となるよう修正を加えようと思います。
ありがとうございます
presetのリリースPR(1月にマージの予定)
Canary版:
$ npm install textlint-rule-preset-japanese@next
$ npm install textlint-rule-preset-ja-technical-writing@next
現行では、"ですます" に統一しなければならない、といった文書の表現規則を事前に設けることができません。 あくまで記述された文章の結果表現が、"ですます"、ないし "である" に統一されていることだけが検査されます。
執筆前に、これから記述する文書は "ですます" に統一しなければならない、といった規則を設けたい場合があります。
こういった事前定義規則への違反を検知できるようにするため、デフォルトの動作を変更しました。 変更後は、preferIn の設定に従わない場合についても、等しくエラーとなります。
こういった事前定義規則への違反を検知できるようにするためオプションを追加しました。 オプションを使用すると、preferIn に設定された表現と一致しない場合に、エラーとなります。
例えば、次の設定を事前に用意していたとします。
従来であれば、
"preferInBody": "ですます"
が設定されていても、以下の文章はエラーにはなりません。しかし、事前定義規則により、文章表現を "ですます" に強制したい場合があります。 今回追加したオプションを使用して、
"enforcePreferences": true
が設定されていると、この文章はエラーになります。以下の表現に改めれば、エラーは解消されます。