Поддержка tmLanguage для странного многострочного строкового литерала

У меня есть расширение для языка программирования LPC для Visual Studio Code. Я использую грамматики tmLanguage. Однако я не нашел способа поддерживать многострочные строковые литералы языка.

регулярное выражение будет: @{1,2}(\w*)\n((.|\n)*?)\n(###\s*)?(\1)\b

пример синтаксиса для соответствия:

  set_help_str(@HELP
Lorem ipsum dolor sit amet, "Consectetur adipiscing elit," sed do 
eiusmod tempor incididunt ut's labore et dolore magna aliqua. Ut 
enim ad minim veniam, quis nostrud exercitation ullamco laboris.
HELP);

По сути, это последняя часть синтаксиса, которую мне нужно исправить, и я действительно не придумал, как с этим справиться.

Любая помощь будет принята с благодарностью.


person undeadfish    schedule 26.04.2021    source источник


Ответы (1)


На самом деле это невозможно сделать с помощью tmLanguage, поскольку их регулярное выражение считывает только одну строку за раз и не поддерживает это.

Мне придется написать языковой сервер, чтобы справиться с этим.

person undeadfish    schedule 05.05.2021