Sha256: 7156b83ffea98d7b7e536eae45de1fdd2a5123b7f7febbb75ff3b7f1aea4ac76

Contents?: true

Size: 807 Bytes

Versions: 1

Compression:

Stored size: 807 Bytes

Contents

module SCSSLint
  # Checks for a selector with an ID combined with some other selector.
  class Linter::IdWithExtraneousSelector < Linter
    include LinterRegistry

    def visit_simple_sequence(seq)
      id_sel = seq.members.find { |simple| simple.is_a?(Sass::Selector::Id) }
      return unless id_sel

      can_be_simplified = seq.members.any? do |simple|
        !simple.is_a?(Sass::Selector::Id) &&
          !simple.is_a?(Sass::Selector::Pseudo)
      end

      if can_be_simplified
        # TODO: Sass::Selector::SimpleSequence#source_range sometimes lies about
        # its line, so reference `#line` directly
        add_lint(seq.line, "Selector `#{seq}` can be simplified to `#{id_sel}`, " \
                           'since IDs should be uniquely identifying')
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
scss-lint-0.23.1 lib/scss_lint/linter/id_with_extraneous_selector.rb