Sha256: aa12bf74a6bf209af6e80f36b3fad02e045d22bb165c8642453e11b304a71c6e
Contents?: true
Size: 1.52 KB
Versions: 2
Compression:
Stored size: 1.52 KB
Contents
# frozen_string_literal: true module RuboCop module Cop module Layout # This cop checks the indentation of the first line of the # right-hand-side of a multi-line assignment. # # @example # # bad # value = # if foo # 'bar' # end # # # good # value = # if foo # 'bar' # end # # The indentation of the remaining lines can be corrected with # other cops such as `IndentationConsistency` and `EndAlignment`. class AssignmentIndentation < Base include CheckAssignment include Alignment extend AutoCorrector MSG = 'Indent the first line of the right-hand-side of a ' \ 'multi-line assignment.' private def check_assignment(node, rhs) return unless rhs return unless node.loc.operator return if node.loc.operator.line == rhs.first_line base = display_column(leftmost_multiple_assignment(node).source_range) check_alignment([rhs], base + configured_indentation_width) end def autocorrect(corrector, node) AlignmentCorrector.correct(corrector, processed_source, node, column_delta) end def leftmost_multiple_assignment(node) return node unless same_line?(node, node.parent) && node.parent.assignment? leftmost_multiple_assignment(node.parent) node.parent end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rubocop-1.12.1 | lib/rubocop/cop/layout/assignment_indentation.rb |
rubocop-1.12.0 | lib/rubocop/cop/layout/assignment_indentation.rb |