Module: Mdlint::Linter::Rules::SourceStyleSupport
- Included in:
- EmphasisStyle, FencedCodeBlankLines, FencedCodeStyle, ListBlankLines, NoBareUrls, NoHardTabs, NoSpaceInCode, NoSpaceInEmphasis, StrongStyle
- Defined in:
- lib/mdlint/linter/rules/source_style.rb,
sig/internal.rbs
Constant Summary collapse
- FENCE_REGEXP =
/\A {0,3}(`{3,}|~{3,})/- LIST_MARKER_REGEXP =
/\A( {0,3}(?:[-+*]|\d+[.)]))([ \t]+)(\S.*)?\z/
Instance Method Summary collapse
- #fenced_lines(source) ⇒ Object
- #inline_tokens(tokens) ⇒ Object
- #line_is_blank?(line) ⇒ Boolean
- #lines(source) ⇒ Object
- #outside_fence?(fence_state) ⇒ Boolean
Instance Method Details
#fenced_lines(source) ⇒ Object
18 19 20 21 22 23 24 25 |
# File 'lib/mdlint/linter/rules/source_style.rb', line 18 def fenced_lines(source) in_fence = false source.each_line.with_index(1).filter_map do |line, line_number| marker = line.chomp.match(FENCE_REGEXP) in_fence = !in_fence if marker [line_number, in_fence, marker] end end |
#inline_tokens(tokens) ⇒ Object
35 36 37 |
# File 'lib/mdlint/linter/rules/source_style.rb', line 35 def inline_tokens(tokens) tokens.select { |token| token.type == :inline }.flat_map(&:children) end |
#line_is_blank?(line) ⇒ Boolean
31 32 33 |
# File 'lib/mdlint/linter/rules/source_style.rb', line 31 def line_is_blank?(line) line.to_s.match?(/\A\s*\z/) end |
#lines(source) ⇒ Object
14 15 16 |
# File 'lib/mdlint/linter/rules/source_style.rb', line 14 def lines(source) source.lines end |
#outside_fence?(fence_state) ⇒ Boolean
27 28 29 |
# File 'lib/mdlint/linter/rules/source_style.rb', line 27 def outside_fence?(fence_state) !fence_state end |