#visual-studio-code #token #textmate
Вопрос:
Я создаю расширение VSCode для обеспечения подсветки синтаксиса для пользовательского языка. Единственной оставшейся проблемой является раскраска экранированных символов в строковых литералах. Когда зарегистрированный поставщик семантических маркеров предоставляет строковый литерал, содержащий один или несколько экранированных символов, строка правильно окрашивается только до того момента, когда существует первый экранированный символ, как показано на этом рисунке: Проблема с раскраской экранированных символов.
Когда подсветка синтаксиса обеспечивается грамматикой TextMate, этой проблемы не существует. В грамматике текстового текста я могу предоставить что-то подобное этому:
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#string_escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#string_placeholder</string>
</dict>
</array>
и VSCode позволит экранированным символам в строках быть окрашенными иначе, чем остальная часть строки, при этом все еще правильно окрашивая всю строку. Есть ли способ разрешить этот тип поведения с помощью поставщика семантических токенов автоматически? Или можно ли включить это поведение в semanticTokenScopes
или в какую-либо другую конфигурацию опций package.json
?