Class: RuboCop::Cop::Layout::LineLength
- Extended by:
- AutoCorrector
- Defined in:
- lib/rubocop/cop/layout/line_length.rb
Overview
This cop checks the length of lines in the source code. The maximum length is configurable. The tab size is configured in the `IndentationWidth` of the `Layout/IndentationStyle` cop. It also ignores a shebang line by default.
This cop has some autocorrection capabilities. It can programmatically shorten certain long lines by inserting line breaks into expressions that can be safely split across lines. These include arrays, hashes, and method calls with argument lists.
If autocorrection is enabled, the following Layout cops are recommended to further format the broken lines. (Many of these are enabled by default.)
-
ArgumentAlignment
-
BlockAlignment
-
BlockDelimiters
-
BlockEndNewline
-
ClosingParenthesisIndentation
-
FirstArgumentIndentation
-
FirstArrayElementIndentation
-
FirstHashElementIndentation
-
FirstParameterIndentation
-
HashAlignment
-
IndentationWidth
-
MultilineArrayLineBreaks
-
MultilineBlockLayout
-
MultilineHashBraceLayout
-
MultilineHashKeyLineBreaks
-
MultilineMethodArgumentLineBreaks
-
ParameterAlignment
Together, these cops will pretty print hashes, arrays, method calls, etc. For example, let's say the max columns is 25:
Constant Summary collapse
- MSG =
'Line is too long. [%<length>d/%<max>d]'
Constants inherited from Base
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
- #on_block(node) ⇒ Object
- #on_investigation_end ⇒ Object
- #on_new_investigation ⇒ Object
- #on_potential_breakable_node(node) ⇒ Object (also: #on_array, #on_hash, #on_send)
Methods included from AutoCorrector
Methods included from CheckLineBreakable
Methods inherited from Base
#add_global_offense, #add_offense, autocorrect_incompatible_with, badge, #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, joining_forces, lint?, match?, #message, #offenses, #on_other_file, #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?, #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
#on_block(node) ⇒ Object
72 73 74 |
# File 'lib/rubocop/cop/layout/line_length.rb', line 72 def on_block(node) check_for_breakable_block(node) end |
#on_investigation_end ⇒ Object
87 88 89 90 91 |
# File 'lib/rubocop/cop/layout/line_length.rb', line 87 def on_investigation_end processed_source.lines.each_with_index do |line, line_index| check_line(line, line_index) end end |
#on_new_investigation ⇒ Object
83 84 85 |
# File 'lib/rubocop/cop/layout/line_length.rb', line 83 def on_new_investigation check_for_breakable_semicolons(processed_source) end |
#on_potential_breakable_node(node) ⇒ Object Also known as: on_array, on_hash, on_send
76 77 78 |
# File 'lib/rubocop/cop/layout/line_length.rb', line 76 def on_potential_breakable_node(node) check_for_breakable_node(node) end |