def find_a_bracket(self, caret_pt):
"""
Locate the next bracket after the caret in the current line.
If None is found, execution must be aborted.
Return (bracket, brackets, bracket_pt).
Example ('(', ('(', ')'), 1337)).
"""
caret_row, caret_col = self.view.rowcol(caret_pt)
line_text = self.view.substr(Region(caret_pt, self.view.line(caret_pt).b))
try:
found_brackets = min([(line_text.index(bracket), bracket)
for bracket in chain(*self.pairs)
if bracket in line_text])
except ValueError:
return None, None, None
bracket_a, bracket_b = [(a, b) for (a, b) in self.pairs if found_brackets[1] in (a, b)][0]
return (found_brackets[1], (bracket_a, bracket_b),
self.view.text_point(caret_row, caret_col + found_brackets[0]))
评论列表
文章目录