Module: Yatte::BracketMatch

Defined in:
lib/yatte/bracket_match.rb

Constant Summary collapse

PAIRS =
{"(" => ")", "[" => "]", "{" => "}"}.freeze
REVERSE =
PAIRS.invert.freeze
ALL =
(PAIRS.keys + PAIRS.values).freeze

Class Method Summary collapse

Class Method Details

.find_match(buffer, row, col) ⇒ Object



9
10
11
12
13
14
15
16
17
18
# File 'lib/yatte/bracket_match.rb', line 9

def self.find_match(buffer, row, col)
  char = buffer.line_at(row)[col]
  return nil unless char && ALL.include?(char)

  if PAIRS.key?(char)
    scan_forward(buffer, row, col, char, PAIRS[char])
  else
    scan_backward(buffer, row, col, REVERSE[char], char)
  end
end