Class: SCSSLint::Linter::DisableLinterReason
- Inherits:
-
SCSSLint::Linter
- Object
- Sass::Tree::Visitors::Base
- SCSSLint::Linter
- SCSSLint::Linter::DisableLinterReason
- Includes:
- SCSSLint::LinterRegistry
- Defined in:
- lib/scss_lint/linter/disable_linter_reason.rb
Overview
Checks for “reason” comments above linter-disabling comments.
Constant Summary
Constants included from Utils
Instance Attribute Summary
Attributes inherited from SCSSLint::Linter
Instance Method Summary collapse
Methods included from SCSSLint::LinterRegistry
extract_linters_from, included
Methods inherited from SCSSLint::Linter
inherited, #initialize, #name, #run
Methods included from Utils
#color?, #color_hex?, #color_keyword?, #color_keyword_to_code, #else_node?, #extract_string_selectors, #node_ancestor, #node_siblings, #pluralize, #previous_node, #remove_quoted_strings, #same_position?
Methods included from SelectorVisitor
Constructor Details
This class inherits a constructor from SCSSLint::Linter
Instance Method Details
#visit_command_comment(node) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/scss_lint/linter/disable_linter_reason.rb', line 17 def visit_command_comment(node) if @previous_comment.nil? report_lint(node) return end # Not a "disable linter reason" if the last line of the previous comment is a command. if comment_lines(@previous_comment).last.match(COMMAND_REGEX) report_lint(node) return end # No lint if the last line of the previous comment is on the previous line. if @previous_comment.source_range.end_pos.line == node.source_range.end_pos.line - 1 return end # The "reason" comment doesn't have to be on the previous line, as long as it is exactly # the previous node. if previous_node(node) == @previous_comment return end report_lint(node) end |
#visit_comment(node) ⇒ Object
6 7 8 9 10 11 12 13 14 15 |
# File 'lib/scss_lint/linter/disable_linter_reason.rb', line 6 def visit_comment(node) # No lint if the first line of the comment is not a command (because then # either this comment has no commands, or the first line serves as a the # reason for a command on a later line). if comment_lines(node).first.match(COMMAND_REGEX) visit_command_comment(node) else @previous_comment = node end end |