Class: Mdlint::Linter::Rules::JapaneseStyle
- Inherits:
-
Mdlint::Linter::Rule
- Object
- Mdlint::Linter::Rule
- Mdlint::Linter::Rules::JapaneseStyle
- Includes:
- JapaneseHelpers
- Defined in:
- lib/mdlint/linter/rules/japanese.rb,
sig/internal.rbs
Constant Summary
Constants included from JapaneseHelpers
Mdlint::Linter::Rules::JapaneseHelpers::CJK, Mdlint::Linter::Rules::JapaneseHelpers::JAPANESE
Instance Attribute Summary
Attributes inherited from Mdlint::Linter::Rule
Instance Method Summary collapse
Methods included from JapaneseHelpers
#each_inline, #line_for, #prose_content
Methods inherited from Mdlint::Linter::Rule
#add_violation, #fix, inherited, #initialize
Constructor Details
This class inherits a constructor from Mdlint::Linter::Rule
Instance Method Details
#check(tokens, _source) ⇒ Object
85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
# File 'lib/mdlint/linter/rules/japanese.rb', line 85 def check(tokens, _source) prose = tokens.filter_map { |token| prose_content(token) if token.type == :inline }.join("\n") has_desu_masu = prose.match?(/です(?:。|\z)|ます(?:。|\z)|でした(?:。|\z)|ません(?:。|\z)/) has_de_aru = prose.match?(/である(?:。|\z)|だ(?:。|\z)|であった(?:。|\z)/) return @violations unless has_desu_masu && has_de_aru token = tokens.find { |candidate| candidate.type == :inline } add_violation( message: "Avoid mixing desu-masu and de-aru styles", line: line_for(token), fixable: false ) @violations end |