gems.scss_lint-0.57.0.lib.scss_lint.linter.qualifying_element.rb Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of sass-maven-plugin Show documentation
Show all versions of sass-maven-plugin Show documentation
A Maven Plugin that compiles Sass files.
module SCSSLint
# Checks for element selectors qualifying id, classes, or attribute selectors.
class Linter::QualifyingElement < Linter
include LinterRegistry
def visit_simple_sequence(seq)
return unless seq_contains_sel_class?(seq, Sass::Selector::Element)
check_id(seq) unless config['allow_element_with_id']
check_class(seq) unless config['allow_element_with_class']
check_attribute(seq) unless config['allow_element_with_attribute']
end
private
# Checks if a simple sequence contains a
# simple selector of a certain class.
#
# @param seq [Sass::Selector::SimpleSequence]
# @param selector_class [Sass::Selector::Simple]
# @returns [Boolean]
def seq_contains_sel_class?(seq, selector_class)
seq.members.any? do |simple|
simple.is_a?(selector_class)
end
end
def check_id(seq)
return unless seq_contains_sel_class?(seq, Sass::Selector::Id)
add_lint(seq.line, 'Avoid qualifying id selectors with an element.')
end
def check_class(seq)
return unless seq_contains_sel_class?(seq, Sass::Selector::Class)
add_lint(seq.line, 'Avoid qualifying class selectors with an element.')
end
def check_attribute(seq)
return unless seq_contains_sel_class?(seq, Sass::Selector::Attribute)
add_lint(seq.line, 'Avoid qualifying attribute selectors with an element.')
end
end
end
© 2015 - 2025 Weber Informatics LLC | Privacy Policy