Регулярное выражение для обнаружения! Это не работает - PullRequest
0 голосов
/ 07 января 2020

Я пытаюсь реализовать поддержку нового языка в VS Code, используя файл tmGrammar json. В этом языке переменные начинаются с !, и на этом языке есть специальная зарезервированная переменная с именем !this.

Я хочу применить один класс ко всем общим переменным, а другой - для переменной !this. Я делаю это в моем json файле:

"repository": {
    "keywords": {
        "patterns": [
            {
                "name": "constant.character",
                "match": "(?i)\\b(!this)\\b"
            },
            {
                "name": "variable.other",
                "match": "(?i)\\![a-z0-9]+"
            },
     }
  }

Но это окраска !this и !someVar в один и тот же цвет.

Если я изменю первое правило на (?i)\\b(this)\\b, то без ! слово this будет окрашено правильно.

Я также попытался изменить порядок правил, но теперь независимо от того, что я делаю, !this имеет тот же цвет, что и обычные переменные.

Есть ли проблема с первым регулярным выражением?

...