Я работаю над расширением грамматики в VS Code, и у меня возникают трудности с просмотром шаблона регулярных выражений. Учитывая следующую строку, я хочу вернуть только CMP, когда он предшествует @fmt (Regex заглянуть в VS Code?
@fmt(cmp,foo)
Совпадение строка я в другом редакторе был такой:
(?<=[@|©](fmt)\()(\w+)
Однако, это не работает в VS Code, когда я выполняю поиск в регулярном выражении, он возвращается с ошибкой, что это не допустимое выражение. В этом случае проблема заключается в том, что < = символов, которые указывают на внешний вид.
Выполнение поиска веб-сайта VS Code не возвращает никакого справочного руководства по регулярному выражению. Поиск переполнения стека вызвал this question, в котором говорится, что Visual Studio имеет уникальные определения регулярных выражений. К сожалению, пример, приведенный в этом вопросе, не работает в VS Code.
Кто-нибудь знает, как выглядеть за регулярным выражением в коде VS? Или, по крайней мере, знаете, где находится документация по регулярному выражению для кода VS?
Я беспокоюсь, что это невозможно, так как в соответствии с Stack Overflow reference внешний вид не поддерживается в JavaScript. Существует another question, в котором показано, как имитировать внешний вид в функции JavaScript, но я не знаю, можно ли расширить язык в коде VS с помощью пользовательских функций. Если кто-то знает, как это сделать, и может указать мне в этом направлении, это также будет приемлемым обходным решением.
Почему вам нужно вообще просмотра назад? Используйте '([@ ©] fmt \() (\ w +)' и делайте то, что вам нужно, с захваченными значениями через обратные ссылки '$ 1' и' $ 2'. VSC не поддерживает lookbehinds, это по дизайну. Или «до дальнейшего обратите внимание: « –
Thomas, что вы делаете? Пожалуйста, объясните, что вам нужно сделать с помощью' @fmt (cmp, foo) '? Каков конечный результат? Найдите и выделите? Тогда вам вообще не нужен lookbehind, ни захват групп - '[@ ©] fmt \ (\ w +' будет достаточно. –
Это для подсветки синтаксиса, я хочу, чтобы ** @ fmt ** был одним цветом (функцией), а ** cmp ** - другой цвет (параметр). Существует несколько возможных строк, следующих за символами @, это был просто упрощенный пример. – thomasjbarrett