Skip to content
instance method

SyntaxSuggest::CaptureCodeContext#capture_first_kw_end_same_indent

capture_first_kw_end_same_indent(block)

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