Class: Shirobai::Cop::Layout::SpaceAroundMethodCallOperator
- Inherits:
-
RuboCop::Cop::Base
- Object
- RuboCop::Cop::Base
- Shirobai::Cop::Layout::SpaceAroundMethodCallOperator
- Extended by:
- RuboCop::Cop::AutoCorrector
- Includes:
- RuboCop::Cop::RangeHelp
- Defined in:
- lib/shirobai/cop/layout/space_around_method_call_operator.rb
Overview
Drop-in Rust reimplementation of ‘Layout/SpaceAroundMethodCallOperator`.
Rust walks the AST, reproduces the stock cop’s ‘on_send` / `on_csend` (the space before/after a `.`/`&.` call operator) and `on_const` (the space after a `::`), flagging a non-empty run of only spaces/tabs (stock’s ‘SPACES_REGEXP = /A[ t]+z/`, so a run spanning a newline is left alone). It returns, per offense, the offending whitespace range —which is both the offense highlight and the autocorrect removal range (stock’s ‘corrector.remove(range)`).
The cop has no configuration, so it is always bundle eligible; the offenses come from the per-file bundled run (‘Shirobai::Dispatch`). The autocorrect re-passes re-investigate a fresh `ProcessedSource`, which recomputes the bundle from scratch, so this cop keeps no cross-pass state.
Constant Summary collapse
- MSG =
"Avoid using spaces around a method call operator."
Class Method Summary collapse
- .badge ⇒ Object
-
.bundle_args(_config) ⇒ Object
No packed configuration: the cop contributes nothing to the bundle’s ‘(nums, lists)` wire format.
- .cop_name ⇒ Object
Instance Method Summary collapse
Class Method Details
.badge ⇒ Object
27 |
# File 'lib/shirobai/cop/layout/space_around_method_call_operator.rb', line 27 def self.badge = RuboCop::Cop::Badge.parse(cop_name) |
.bundle_args(_config) ⇒ Object
No packed configuration: the cop contributes nothing to the bundle’s ‘(nums, lists)` wire format. Kept for symmetry with the other wrappers.
31 32 33 |
# File 'lib/shirobai/cop/layout/space_around_method_call_operator.rb', line 31 def self.bundle_args(_config) [] end |
.cop_name ⇒ Object
26 |
# File 'lib/shirobai/cop/layout/space_around_method_call_operator.rb', line 26 def self.cop_name = "Layout/SpaceAroundMethodCallOperator" |
Instance Method Details
#on_new_investigation ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/shirobai/cop/layout/space_around_method_call_operator.rb', line 35 def on_new_investigation buffer = processed_source.buffer off = SourceOffsets.for(processed_source.raw_source) offenses_for_source.each do |start, fin| range = Parser::Source::Range.new(buffer, off[start], off[fin]) add_offense(range) do |corrector| corrector.remove(range) end end end |