Как я могу создать коллекцию фрагментов на нескольких языках в VSCode Marketplace? - PullRequest
0 голосов
/ 09 июня 2018

Моя цель - создать коллекцию фрагментов, которые будут доступны на торговой площадке VSCode.Эти фрагменты будут для 3 языков (HTML, CSS и JS).Это будет полезно для всех, кто работает в конкретной среде, но особенно для моей команды.

Я знаю, что могу создавать фрагменты ( Как добавить независимые от языка фрагменты в vscode? )на несколько языков.Я также знаю, что в соответствии с документами У меня должен быть объект contrib, в котором есть массив фрагментов.В моем package.json для моего vsc-extension значение по умолчанию выглядит следующим образом:

"contributes": {
    "snippets": [
        {
            "language": "markdown",
            "path": "./snippets/markdown.json"
        }
    ]
}

Правильно ли мне обновить мой package.json до чего-то вроде:

"contributes": {
    "snippets": [
        {
            "language": "html",
            "path": "./snippets/snippets.json"
        },
        {
            "language": "javacript",
            "path": "./snippets/snippets.json"
        }
    ]
}

а затем мои фрагменты объявляют свою собственную область ("scope": "html")?

Ответы [ 2 ]

0 голосов
/ 11 июня 2019

Я решил создать файл для каждого типа фрагмента: php-snippets.json, js-snippets.json и т. Д., А затем добавить эти файлы в массив фрагментов.

"contributes": {
    "snippets": [
        {
            "language": "php",
            "path": "./snippets/php-snippets.json"
        },
        {
            "language": "javascript",
            "path": "./snippets/js-snippets.json"
        }
    ]
}
0 голосов
/ 09 июня 2018

Одна часть информации, которую я оставил в своем вопросе, заключается в том, что я использовал генератор Yo для создания своего сниппета-проекта.Это было рекомендуемое действие в документации.

Это сработало.Я добавил несколько языков в массив фрагментов, как показано ниже.

"contributes": {
    "snippets": [
        {
            "language": "html",
            "path": "./snippets/snippets.json"
        },
        {
            "language": "javacript",
            "path": "./snippets/snippets.json"
        }
        ,
        {
            "language": "scss",
            "path": "./snippets/snippets.json"
        }
    ]
}

Тогда внутри snippets/snippets.json есть один большой объект, который содержит все мои фрагменты.Вы можете увидеть пример этого ниже.Ключевыми линиями для каждого являются "scope": "html и "scope": "scss".

"Each Helper": {
    "scope": "html",
    "prefix": "each",
    "body": [
        "{{#each $1}}",
        "    $2",
        "{{/each}}"
    ],
    "description": "Creates each helper -- handlebars"
},
"Break Point Small": {
    "scope": "scss",
    "prefix": "bps",
    "body": [
        "",
        "@include breakpoint(\"small\") {// 551px and up",
        "    $1",
        "}"
    ],
    "description": "Tablet Break Point --Stencil"
},

Полагаю, я должен был просто попробовать его, так как не смог найти ответ здесь или в документации.

...