Vimscript: найти последнюю открытую круглую или квадратную скобку

Я хотел бы написать функцию в vimscript, которая находит последнюю открытую круглую или квадратную скобку в строке. Это не обязательно простая проблема, потому что она должна уметь обрабатывать все следующее:

function(abc
function(abc, [def
function(abc, [def], "string("
function(abc, [def], "string(", ghi(

Как видите, вложенные круглые скобки, разные символы и строковые токены должны обрабатываться разумно. Это вообще возможно? Существуют ли инструменты с регулярными выражениями vimscript для контекстно-зависимого поиска, которые знают разницу между незакрытыми скобками и скобками в строках?

Учитывая, что вы можете выделять несбалансированные скобки синтаксиса, должно быть возможно найти последнюю незакрытую круглую скобку / скобку в строке линия. Как это можно сделать?

9
задан Xavier T. 16 December 2015 в 12:12
поделиться