Class: SCSSLint::Linter::PlaceholderInExtend
- Inherits:
-
SCSSLint::Linter
- Object
- Sass::Tree::Visitors::Base
- SCSSLint::Linter
- SCSSLint::Linter::PlaceholderInExtend
- Includes:
- SCSSLint::LinterRegistry
- Defined in:
- lib/scss_lint/linter/placeholder_in_extend.rb
Overview
Checks that ‘@extend` is always used with a placeholder selector.
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_extend(node) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/scss_lint/linter/placeholder_in_extend.rb', line 6 def visit_extend(node) # Ignore if it cannot be statically determined that this selector is a # placeholder since its prefix is dynamically generated return if node.selector.first.is_a?(Sass::Script::Tree::Node) # The array returned by the parser is a bit awkward in that it splits on # every word boundary (so %placeholder becomes ['%', 'placeholder']). selector = node.selector.join # Ignore if this is a placeholder return if selector.start_with?('%') add_lint(node, 'Prefer using placeholder selectors (e.g. ' \ '%some-placeholder) with @extend') end |