#visual-studio-code #vscode-extensions
#visual-studio-code #vscode-расширения
Вопрос:
Я пытаюсь создать расширение VSC для подсветки пользовательского языка, и я сталкиваюсь с проблемой: мне нужно определенным образом подсветить идентификатор переменной, только если он находится сразу после открытия paren (это похоже на lisp).
До сих пор я пробовал несколько вариантов этого (в my .tmLanguage.json, в поле репозитория):
"builtins": {
"patterns": [
{
"begin": "\(([a-zA-Z_][a-zA-Z0-9_\?:']*)",
"beginCaptures": {
"1": { "name": "entity.name.function.arkscript" }
},
"name": "entity.name.function.afterparen.arkscript"
},
{
"name": "keyword.operator.ark",
"match": "(\ |\-|\*|/|<|>|<=|>=|!=|=|@)"
}
]
},
Я точно знаю, что в beginCaptures «0» относится ко всему, поэтому «1» должно быть тем, что я сопоставил, но, используя инспектор области видимости, я вижу, что это не работает для (hello "test")
. Строка окрашена правильно, но hello имеет область видимости переменной, а не встроенной.
Если кто-нибудь знает обходной путь, пожалуйста, дайте мне знать
Комментарии:
1. рассмотрите это для операторов,
"(<=|>=|!=|[- */<>=@])"
сначала для операторов с несколькими символами, потому что<
и>
являются их префиксами, нет необходимости экранировать, если внутри класса char2. Спасибо, я забыл об этом