Расширение подсветки синтаксиса вложенного JS в YAML

Пытаюсь реализовать подсветку JS блоков внутри строк с YAML синтаксисом.

Создал расширение по шаблону нового языка. В package.json указал сам язык и scope для использования js:

"contributes": {
    "languages": [{
      "id": "extended-yaml",
      "aliases": ["Extended YAML", "extended-yaml"],
      "extensions": [".e.yaml",".e.yml"],
      "configuration": "./language-configuration.json"
    }],
    "grammars": [{
      "language": "extended-yaml",
      "scopeName": "source.extended-yaml",
      "path": "./syntaxes/extended-yaml.tmLanguage.json",
      "embeddedLanguages": {
        "meta.embedded.block.javascript": "javascript"
      }
    }],
  }

В файле с грамматикой вставил source.yaml, и попытался обработать шаблонную строку на js, но она не отображается в инспекторе токенов.

{
    "scopeName": "source.extended-yaml",
    "name": "Extended YAML",
    "patterns": [
        {
            "include": "source.yaml"
        },
        {
            "scopeName": "meta.embedded.block.javascript",
            "injectionSelector": "L:string.quoted.double.yaml",
            "patterns": [
                { "include": "#inline-template" }
            ]
        }
    ],
    "repository": {
        "inline-template": {
            "begin": "(?<=\\${)",
            "beginCaptures": {
                "0": {
                    "name": "punctuation.definition.template-expression.begin.yaml"
                }
            },
            "end": "(?=})",
            "endCaptures": {
                "0": {
                    "name": "punctuation.definition.template-expression.end.yaml"
                }
            },
            "name": "meta.embedded.block.javascript"
        }
    }
}

Пытался и другими регулярками и для других скопов, но всё равно никак.

Подскажите, как можно такое провернуть и желательно для всех возможных YAML строк и строк с конкретным ключом


Ответы (0 шт):