Sha256: a4c6e41746aa19add87bc966428c56a80e9dd29e5e1362be02b2c47641f960ca

Contents?: true

Size: 818 Bytes

Versions: 6

Compression:

Stored size: 818 Bytes

Contents

module SCSSLint
  # Checks for explicitly transitioned properties instead of transition all.
  class Linter::TransitionAll < Linter
    include LinterRegistry

    TRANSITION_PROPERTIES = %w[
      transition
      transition-property
    ].freeze

    def visit_prop(node)
      property = node.name.first.to_s
      return unless TRANSITION_PROPERTIES.include?(property)

      check_transition(node, property, node.value.first.to_sass)
    end

  private

    def check_transition(node, property, value)
      return unless offset = value =~ /\ball\b/

      pos = node.value_source_range.start_pos.after(value[0, offset])

      add_lint(Location.new(pos.line, pos.offset, 3),
               "#{property} should contain explicit properties " \
                'instead of using the keyword all')
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
scss_lint-0.60.0 lib/scss_lint/linter/transition_all.rb
scss_lint-0.59.0 lib/scss_lint/linter/transition_all.rb
scss_lint-0.58.0 lib/scss_lint/linter/transition_all.rb
scss_lint-0.57.1 lib/scss_lint/linter/transition_all.rb
scss_lint-0.57.0 lib/scss_lint/linter/transition_all.rb
scss_lint-0.56.0 lib/scss_lint/linter/transition_all.rb