From 0a3926c7153a9e86ccce05a2c23de0542036deb8 Mon Sep 17 00:00:00 2001 From: YO!CHI KIKUCHI Date: Thu, 28 Dec 2023 22:03:58 +0900 Subject: [PATCH] =?UTF-8?q?Breaking=20Change:=20=E6=96=87=E4=BD=93?= =?UTF-8?q?=E3=81=8C=E7=B5=B1=E4=B8=80=E3=81=95=E3=82=8C=E3=81=A6=E3=81=84?= =?UTF-8?q?=E3=81=A6=E3=82=82preferIn=E8=A8=AD=E5=AE=9A=E3=81=AB=E9=81=95?= =?UTF-8?q?=E5=8F=8D=E3=81=99=E3=82=8B=E5=A0=B4=E5=90=88=E3=82=A8=E3=83=A9?= =?UTF-8?q?=E3=83=BC=E3=81=A8=E3=81=AA=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB?= =?UTF-8?q?=E5=A4=89=E6=9B=B4=20(#40)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add enforcePreferences option * Fix text inspection to force preferIn config * Update version for disruptive changes * Update package.json --------- Co-authored-by: azu --- src/MixedChecker.js | 6 +- test/no-mix-dearu-desumasu-test.js | 147 +++++++++++++++++++++++++++++ 2 files changed, 152 insertions(+), 1 deletion(-) diff --git a/src/MixedChecker.js b/src/MixedChecker.js index b868e8b..b3bb7d7 100644 --- a/src/MixedChecker.js +++ b/src/MixedChecker.js @@ -82,7 +82,11 @@ export default class MixedChecker { } isOver() { - return this.dearuCount !== 0 && this.desumasuCount !== 0; + return ( + (this.options.preferDesumasu && this.dearuCount !== 0) || + (this.options.preferDearu && this.desumasuCount !== 0) || + (this.dearuCount !== 0 && this.desumasuCount !== 0) + ); } /** diff --git a/test/no-mix-dearu-desumasu-test.js b/test/no-mix-dearu-desumasu-test.js index 084ffcf..12cc6c4 100644 --- a/test/no-mix-dearu-desumasu-test.js +++ b/test/no-mix-dearu-desumasu-test.js @@ -246,6 +246,7 @@ Total: } ] }, + // 箇条書き間での混在 { text: ` @@ -502,6 +503,152 @@ Total: column: 12 } ] + }, + + // 混在はしていないがpreferInの設定と一致していない場合 + { + text: `今日はいい天気である。 +明日はいい天気である。`, + options: { + preferInBody: "ですます" + }, + errors: [ + // preferInで"ですます"が設定されているため、"である"に統一された文章でも、"ですます"を優先する + { + message: `本文: "である"調 と "ですます"調 が混在 +=> "ですます"調 の文体に、次の "である"調 の箇所があります: "である。" +Total: +である : 2 +ですます: 0 +`, + line: 1, + column: 8 + }, + { + message: `本文: "である"調 と "ですます"調 が混在 +=> "ですます"調 の文体に、次の "である"調 の箇所があります: "である。" +Total: +である : 2 +ですます: 0 +`, + line: 2, + column: 8 + } + ] + }, + { + text: `今日はいい天気ですね。 +明日はいい天気ですね。`, + options: { + preferInBody: "である" + }, + errors: [ + // preferInで"である"が設定されているため、"ですます"に統一された文章でも、"である"を優先する + { + message: `本文: "である"調 と "ですます"調 が混在 +=> "である"調 の文体に、次の "ですます"調 の箇所があります: "ですね。" +Total: +である : 0 +ですます: 2 +`, + line: 1, + column: 8 + }, + { + message: `本文: "である"調 と "ですます"調 が混在 +=> "である"調 の文体に、次の "ですます"調 の箇所があります: "ですね。" +Total: +である : 0 +ですます: 2 +`, + line: 2, + column: 8 + } + ] + }, + { + text: ` +# 今日はいい天気である +`, + options: { + preferInHeader: "ですます" + }, + errors: [ + // preferInで"ですます"が設定されているため、"である"に統一された文章でも、"ですます"を優先する + { + message: `見出し: "である"調 と "ですます"調 が混在 +=> "ですます"調 の文体に、次の "である"調 の箇所があります: "である" +Total: +である : 1 +ですます: 0 +`, + line: 2, + column: 10 + } + ] + }, + { + text: ` +# 今日はいい天気になりますね +`, + options: { + preferInHeader: "である" + }, + errors: [ + // preferInで"である"が設定されているため、"ですます"に統一された文章でも、"である"を優先する + { + message: `見出し: "である"調 と "ですます"調 が混在 +=> "である"調 の文体に、次の "ですます"調 の箇所があります: "ますね" +Total: +である : 0 +ですます: 1 +`, + line: 2, + column: 13 + } + ] + }, + { + text: ` +- 今日はいい天気である +`, + options: { + preferInList: "ですます" + }, + errors: [ + // preferInで"ですます"が設定されているため、"である"に統一された文章でも、"ですます"を優先する + { + message: `箇条書き: "である"調 と "ですます"調 が混在 +=> "ですます"調 の文体に、次の "である"調 の箇所があります: "である" +Total: +である : 1 +ですます: 0 +`, + line: 2, + column: 10 + } + ] + }, + { + text: ` +- 今日はいい天気になりますね +`, + options: { + preferInList: "である" + }, + errors: [ + // preferInで"である"が設定されているため、"ですます"に統一された文章でも、"である"を優先する + { + message: `箇条書き: "である"調 と "ですます"調 が混在 +=> "である"調 の文体に、次の "ですます"調 の箇所があります: "ますね" +Total: +である : 0 +ですます: 1 +`, + line: 2, + column: 13 + } + ] } ] });