Class: RuboCop::Cop::Layout::LineContinuationLeadingSpace
- Extended by:
- AutoCorrector
- Includes:
- RangeHelp
- Defined in:
- lib/rubocop/cop/layout/line_continuation_leading_space.rb
Overview
Checks that strings broken over multiple lines (by a backslash) contain trailing spaces instead of leading spaces (default) or leading spaces instead of trailing spaces.
Constant Summary
Constants inherited from Base
Instance Attribute Summary
Attributes inherited from Base
Class Method Summary collapse
-
.autocorrect_incompatible_with ⇒ Object
When both cops are activated and run in the same iteration of the correction loop, ‘Style/StringLiterals` undoes the moving of spaces that `Layout/LineContinuationLeadingSpace` performs.
Instance Method Summary collapse
Methods included from AutoCorrector
Methods inherited from Base
#active_support_extensions_enabled?, #add_global_offense, #add_offense, #always_autocorrect?, badge, #begin_investigation, #callbacks_needed, callbacks_needed, #config_to_allow_offenses, #config_to_allow_offenses=, #contextual_autocorrect?, #cop_config, cop_name, #cop_name, department, documentation_url, exclude_from_registry, #excluded_file?, #external_dependency_checksum, inherited, #initialize, #inspect, joining_forces, lint?, match?, #offenses, #on_investigation_end, #on_new_investigation, #on_other_file, #parse, #parser_engine, #ready, #relevant_file?, requires_gem, #string_literals_frozen_by_default?, 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
Class Method Details
.autocorrect_incompatible_with ⇒ Object
When both cops are activated and run in the same iteration of the correction loop, ‘Style/StringLiterals` undoes the moving of spaces that `Layout/LineContinuationLeadingSpace` performs. This is because `Style/StringLiterals` takes the original string content and transforms it, rather than just modifying the delimiters, in order to handle escaping for quotes within the string.
59 60 61 |
# File 'lib/rubocop/cop/layout/line_continuation_leading_space.rb', line 59 def self.autocorrect_incompatible_with [Style::StringLiterals] end |
Instance Method Details
#on_dstr(node) ⇒ Object
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/rubocop/cop/layout/line_continuation_leading_space.rb', line 63 def on_dstr(node) # Quick check if we possibly have line continuations. return unless node.source.include?('\\') end_of_first_line = node.source_range.begin_pos - node.source_range.column lines = raw_lines(node) lines.each_cons(2).with_index(node.first_line) do |(raw_line_one, raw_line_two), line_num| end_of_first_line += raw_line_one.length next unless continuation?(raw_line_one, line_num, node) investigate(raw_line_one, raw_line_two, end_of_first_line) end end |