Class: RuboCop::Cop::Layout::LineEndStringConcatenationIndentation
- Extended by:
- AutoCorrector
- Includes:
- Alignment, ConfigurableEnforcedStyle
- Defined in:
- lib/rubocop/cop/layout/line_end_string_concatenation_indentation.rb
Overview
Checks the indentation of the next line after a line that ends with a string literal and a backslash.
If EnforcedStyle: aligned
is set, the concatenated string parts shall be aligned with the
first part. There are some exceptions, such as implicit return values, where the
concatenated string parts shall be indented regardless of EnforcedStyle
configuration.
If EnforcedStyle: indented
is set, it’s the second line that shall be indented one step
more than the first line. Lines 3 and forward shall be aligned with line 2.
Constant Summary collapse
- MSG_ALIGN =
'Align parts of a string concatenated with backslash.'
- MSG_INDENT =
'Indent the first part of a string concatenated with backslash.'
- PARENT_TYPES_FOR_INDENTED =
[nil, :block, :begin, :def, :defs, :if].freeze
Constants inherited from Base
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
Methods included from AutoCorrector
Methods included from ConfigurableEnforcedStyle
#alternative_style, #alternative_styles, #ambiguous_style_detected, #correct_style_detected, #detected_style, #detected_style=, #no_acceptable_style!, #no_acceptable_style?, #opposite_style_detected, #style, #style_configured?, #style_detected, #style_parameter_name, #supported_styles, #unexpected_style_detected
Methods inherited from Base
#active_support_extensions_enabled?, #add_global_offense, #add_offense, autocorrect_incompatible_with, badge, #begin_investigation, callbacks_needed, #callbacks_needed, #config_to_allow_offenses, #config_to_allow_offenses=, #cop_config, cop_name, #cop_name, department, documentation_url, exclude_from_registry, #excluded_file?, #external_dependency_checksum, inherited, #initialize, #inspect, joining_forces, lint?, match?, #message, #offenses, #on_investigation_end, #on_new_investigation, #on_other_file, #parse, #ready, #relevant_file?, support_autocorrect?, support_multiple_source?, #target_rails_version, #target_ruby_version
Methods included from ExcludeLimit
Methods included from AutocorrectLogic
#autocorrect?, #autocorrect_enabled?, #autocorrect_requested?, #autocorrect_with_disable_uncorrectable?, #correctable?, #disable_uncorrectable?, #safe_autocorrect?
Methods included from IgnoredNode
#ignore_node, #ignored_node?, #part_of_ignored_node?
Methods included from Util
Constructor Details
This class inherits a constructor from RuboCop::Cop::Base
Instance Method Details
#autocorrect(corrector, node) ⇒ Object
97 98 99 |
# File 'lib/rubocop/cop/layout/line_end_string_concatenation_indentation.rb', line 97 def autocorrect(corrector, node) AlignmentCorrector.correct(corrector, processed_source, node, @column_delta) end |
#on_dstr(node) ⇒ Object
83 84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/rubocop/cop/layout/line_end_string_concatenation_indentation.rb', line 83 def on_dstr(node) return unless strings_concatenated_with_backslash?(node) children = node.children return if children.empty? if style == :aligned && !always_indented?(node) check_aligned(children, 1) else check_indented(children) check_aligned(children, 2) end end |