def foo(*bar); end
^^^^
def foo(*); end
^
A shareable constant.
alias $foo $bar ^^^^^^^^^^^^^^^
foo.bar += baz ^^^^^^^^^^^^^^^
foo.bar &&= baz ^^^^^^^^^^^^^^^
foo.bar ||= baz ^^^^^^^^^^^^^^^
@@foo, = bar ^^^^^
Foo::Bar, = baz ^^^^^^^^
$foo, = bar ^^^^
foo += baz ^^^^^^^^^^^^^^^
foo &&= baz ^^^^^^^^^^^^^^^^
foo ||= baz ^^^^^^^^^^^^^^^^
def foo(**bar); end
^^^^^
def foo(**); end
^^
foo, = bar ^^^
The logical inverse of ‘capture_last_end_same_indent`
When there is an invalid block with an ‘end` missing a keyword right after another `end`, it is unclear where which end is missing the keyword.
Take this example:
class Dog # 1 puts "woof" # 2 end # 3 end # 4
the problem line will be identified as:
> end # 4
This happens because lines 1, 2, and 3 are technically valid code and are expanded first, deemed valid, and hidden. We need to un-hide the matching keyword on line 1. Also work backwards and if there’s a mis-matched end, show it too