Как можно выделить слово после определенного токена?

#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. рассмотрите это для операторов, "(<=|>=|!=|[- */<>=@])" сначала для операторов с несколькими символами, потому что < и > являются их префиксами, нет необходимости экранировать, если внутри класса char

2. Спасибо, я забыл об этом