Как ДОБАВИТЬ грамматику и конфигурацию к существующему расширению языка VSCode с расширением?

Я пытаюсь расширить язык AL от Microsoft, добавляя регионы. Я могу сделать это вручную, перейдя в папку расширения vscode .vscode \ extensions \ Microsoft.al-0.14.17461 и изменив файлы al.configuration.json и alsyntax.tmlanguage.

Но я хочу сделать это, создав собственное расширение VSCode. Поэтому я создал собственное расширение и скопировал в него эти файлы + добавив свой код. И, к счастью, это сработало!

Однако это работает, только если я использую все файлы синтаксиса, а не только с моим конкретным кодом ..

Ниже приведен код al.configuration.json, его складывающаяся часть между **, которую я хочу добавить.

{
    **"folding": { 
        "markers": { 
        "start": "^\\s*//\\s*#region\\b", 
        "end": "^\\s*//\\s*#endregion\\b" 
        }** 
        },
    "brackets": [
        ["{", "}"],
        ["[", "]"],
        ["(", ")"],
        ["BEGIN", "END;"],
        ["begin", "end;"],
        ["Begin", "End;"]
    ],
    "autoClosingPairs": [
        { "open": "BEGIN", "close": "END;", "notIn": ["string", "comment"] },
        { "open": "begin", "close": "end;", "notIn": ["string", "comment"] },
        { "open": "Begin", "close": "End;", "notIn": ["string", "comment"] },
        { "open": "{", "close": "}" },
        { "open": "[", "close": "]" },
        { "open": "(", "close": ")" },
        { "open": "'", "close": "'", "notIn": ["string", "comment"] },
        { "open": "\"", "close": "\"", "notIn": ["string"] }
    ],
    "surroundingPairs": [
        ["'", "'"],
        ["\"", "\""]
    ],
    "wordPattern": "(\"(?:(?:\\\"\\\")|[^\\\"])*\")|(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\#\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)"
}

person BartP    schedule 13.07.2018    source источник
comment
хорошо, нашел, вам нужно добавить injectTo: дополняет: {грамматики: [{scopeName: al.extended, path: ./syntax/alsyntax.extended.json, injectTo: [source.al]}],   -  person BartP    schedule 14.07.2018


Ответы (1)


ок, нашел, нужно добавить InjectTo

"contributes": {
        "grammars": [
            {
                "scopeName": "al.extended",
                "path": "./syntax/alsyntax.extended.json",
                "injectTo": [ "source.al" ]
            }
        ],
person BartP    schedule 13.07.2018
comment
Вы можете немного объяснить свой ответ? У меня проблемы с получением wordPattern и сворачиванием для работы в расширении (мое первое), и я не уверен, имеет ли это какое-либо отношение к этому. Является ли source.al частью существующего языка или вашего расширения? - person aamarks; 08.06.2019
comment
Думаю, это отвечает на мой вопрос о введении code.visualstudio .com / api / language-extensions /. - person aamarks; 08.06.2019