Skip to content

Commit

Permalink
Breaking Change: 文体が統一されていてもpreferIn設定に違反する場合エラーとなるように変更 (#40)
Browse files Browse the repository at this point in the history
* Add enforcePreferences option

* Fix text inspection to force preferIn config

* Update version for disruptive changes

* Update package.json

---------

Co-authored-by: azu <[email protected]>
  • Loading branch information
yo1000 and azu authored Dec 28, 2023
1 parent b5c511a commit 0a3926c
Show file tree
Hide file tree
Showing 2 changed files with 152 additions and 1 deletion.
6 changes: 5 additions & 1 deletion src/MixedChecker.js
Original file line number Diff line number Diff line change
Expand Up @@ -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)
);
}

/**
Expand Down
147 changes: 147 additions & 0 deletions test/no-mix-dearu-desumasu-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -246,6 +246,7 @@ Total:
}
]
},

// 箇条書き間での混在
{
text: `
Expand Down Expand Up @@ -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
}
]
}
]
});

0 comments on commit 0a3926c

Please sign in to comment.