Class: Rubocop::Cop::Style::IndentArray
- Includes:
- AutocorrectAlignment
- Defined in:
- lib/rubocop/cop/style/indent_array.rb
Overview
This cops checks the indentation of the first element in an array literal where the opening bracket and the first element are on separate lines. The other elements' indentations are handled by the AlignArray cop.
Array literals shall have their first element indented one step (2 spaces) more than the start of the line where the opening bracket is.
Constant Summary
Constants included from Util
Util::ASGN_NODES, Util::EQUALS_ASGN_NODES, Util::OPERATOR_METHODS, Util::PROC_NEW_NODE, Util::SHORTHAND_ASGN_NODES
Instance Attribute Summary
Attributes inherited from Cop
#config, #corrections, #offenses, #processed_source
Instance Method Summary collapse
Methods included from AutocorrectAlignment
#autocorrect, #calculate_range, #check_alignment, #each_line, #remove, #start_of_line?
Methods inherited from Cop
#add_offense, all, #autocorrect?, #config_to_allow_offenses, #config_to_allow_offenses=, #cop_config, cop_name, #cop_name, cop_type, #debug?, #display_cop_names?, #exclude_file?, #include_file?, inherited, #initialize, lint?, non_rails, rails?, #relevant_file?, #support_autocorrect?
Methods included from IgnoredNode
#ignore_node, #ignored_node?, #part_of_ignored_node?
Methods included from Util
block_length, command?, comment_line?, const_name, first_part_of_call_chain, lambda?, lambda_or_proc?, line_range, on_node, operator?, parentheses?, proc?, range_with_surrounding_space, source_range, strip_quotes
Methods included from PathUtil
Constructor Details
This class inherits a constructor from Rubocop::Cop::Cop
Instance Method Details
#message(_) ⇒ Object
33 34 35 36 37 |
# File 'lib/rubocop/cop/style/indent_array.rb', line 33 def (_) format('Use %d spaces for indentation in an array, relative to ' \ 'the start of the line where the left bracket is.', IndentationWidth::CORRECT_INDENTATION) end |
#on_array(node) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/rubocop/cop/style/indent_array.rb', line 16 def on_array(node) first_pair = node.children.first return if first_pair.nil? left_bracket = node.loc.begin return if left_bracket.nil? return if first_pair.loc.expression.line == left_bracket.line column = first_pair.loc.expression.column base_column = left_bracket.source_line =~ /\S/ expected_column = base_column + IndentationWidth::CORRECT_INDENTATION @column_delta = expected_column - column add_offense(first_pair, :expression) if @column_delta != 0 end |