Почему подсветка синтаксиса не отображается для моего пользовательского расширения в VS Code?

#visual-studio-code #vscode-extensions

#visual-studio-code #vscode-расширения

Вопрос:

Я пытаюсь создать пользовательское языковое расширение для VS Code. Я в основном следовал инструкциям, приведенным здесь и здесь .

Когда я запускаю расширение на хосте разработки расширений, нажимая клавишу F5, все работает нормально. Как только я пытаюсь установить свое расширение и использовать его в VS Code, оно больше не отображается.

Отсюда я понял, что у меня есть три варианта установки моего расширения

  1. свяжите мое расширение с vsix с помощью vsce и установите его из VS Code
  2. установите пакет vsix из командной строки с помощью code --install-extension myExt.vsix
  3. скопируйте содержимое в папку в %userprofile%.vscodeextensions

Все три параметра дают один и тот же результат: подсветка синтаксиса не работает для ключевых слов и т. Д., Но Она работает для комментариев. Используя инспектор области видимости, я вижу, что все токены правильно обнаружены и классифицированы, поэтому расширение, похоже, в основном работает, но код не подсвечивается (опять же, за исключением комментариев, как ни странно).

Единственная подсказка, которую я получаю при установке через командную строку:

Установка расширений… (узел: 34352) [DEP0005] Предупреждение об устаревании: Buffer() устарел из-за проблем с безопасностью и удобством использования. Пожалуйста, используйте вместо этого методы Buffer.alloc(), Buffer.allocUnsafe() или Buffer.from() . Расширение ‘vscode-knitout.vsix’ было успешно установлено.

но я сомневаюсь, что это имеет какое-либо отношение к проблеме.

Это мой package.json файл:

 {
    "name": "vscode-myLanguage",
    "displayName": "myLanguage",
    "description": "myLanguage language extension for VS Code",
    "version": "0.0.1",
    "publisher": "me",
    "author": {
        "name": "name"
    },
    "icon": "images/icon.png",
    "galleryBanner": {
        "color": "#C80000",
        "theme": "dark"
    },
    "engines": {
        "vscode": "^1.53.0"
    },
    "license": "SEE LICENSE IN LICENSE.txt",
    "repository": {
        "type": "git",
        "url": "https://some.git.url"
    },
    "homepage": "https://our.website",
    "categories": [
        "Programming Languages"
    ],
    "contributes": {
        "languages": [{
            "id": "myLanguage",
            "aliases": ["myLanguage", "myLanguage"],
            "extensions": [".m",".myLanguage"],
            "configuration": "./language-configuration.json"
        }],
        "grammars": [{
            "language": "myLanguage",
            "scopeName": "source.myLanguage",
            "path": "./syntaxes/myLanguage.tmLanguage.json"
        }],
        "themes": [
            {
                "label": "myLanguage-dark",
                "uiTheme": "vs-dark",
                "path": "./themes/myLanguage-vs-dark-color-theme.json"
            }
        ]
    }
}
 

Когда я запускаюсь через узел разработки расширений, инспектор области правильно распознает области языка и textmate и соответствующее правило темы для «переднего плана». Когда я запускаю VS Code с установленным / скопированным расширением, инспектор области говорит «Нет выбора темы» для «переднего плана», но все остальное (область, язык) выглядит правильно.

В чем здесь проблема? Есть ли где-нибудь очень простой пример для ссылки?