Как вызвать расширение WebView из типа файла - PullRequest
0 голосов
/ 09 января 2019

Я создаю расширение VS Code WebView, которое я хочу вызывать / запускать при открытии файла с определенным именем расширения файла. например MyFile.abc.

В myExt я добавил onFileSystem к activationEvents в package.json:

{
    "name": "myext",
    "description": "A Webview API Sample",
    "version": "0.0.2",
    "publisher": "vscode-myext",
    "engines": {
        "vscode": "^1.25.0"
    },
    "categories": [
        "Other"
    ],
    "activationEvents": [
        "onWebviewPanel:myExt",
        "onFileSystem:abc",
        "*"     
    ],
    "main": "./out/extension.js",
    "contributes": {
        "commands": [
            {
                "command": "myExt.start",
                "title": "Start myExt ",
                "category": "My Ext"
            }
        ]
    },
    "scripts": {
        "vscode:prepublish": "tsc -p ./",
        "compile": "tsc -p ./",
        "watch": "tsc -w -p ./",
        "postinstall": "node ./node_modules/vscode/bin/install"
    },
    "dependencies": {
        "supports-color": "^6.0.0",
        "vscode": "^1.1.18"
    },
    "devDependencies": {
        "@types/node": "^10.5.2",
        "tslint": "^5.11.0",
        "typescript": "^2.9.2"
    }
}

Когда я добавляю "onFileSystem:abc" к activationEvents в myExt, я ожидал, что мое расширение веб-просмотра будет открываться каждый раз, когда я открывал файл с расширением .abc, однако ничего не произошло.

Затем я попытался установить параметр ActivEvents "*", ожидая, что мое расширение веб-просмотра откроется в начале VSCode, но это тоже не открыло мое расширение.

Я могу открыть и запустить свое расширение через Ctrl + Shift + P , как обычно.

Ответы [ 3 ]

0 голосов
/ 09 января 2019

Я думаю, что вам нужно использовать

"workspaceContains: *. Abc" в качестве активацииEvents

0 голосов
/ 06 марта 2019

Я думаю, что вы должны сделать что-то для ниже в package.json

{
"activationEvents": [
        "onCommand:"**HERE WILL BE YOUR EXTENSION NAME WHICH YOU REGISTERED**"    
    ],
  "contributes": {

    "menus": {
      "explorer/context": [
        {
          "when": "resourceLangId == **abc**",  // this is the extension of the file where you want to execute your command
          "command": "**YOUR COMMAND NAME**",
          "title": "Anything relevent title",
          "group": "navigation"
        }
      ]
    }
  }
}
0 голосов
/ 09 января 2019

Я не думаю, что есть какое-либо событие активации , которое срабатывает при открытии файла с определенным именем или расширением. Событие onFileSystem, которое вы пытались выполнить, имеет другое назначение и проверяет схему файла.

Обычно вы используете для этого onLanguage и идентификатор языка, с которым связано ваше расширение .abc. Если это не популярное расширение файла, вам может потребоваться зарегистрировать его в contributes.languages разделе .

Затем я попробовал activationEvents настройку "*", ожидая, что мое расширение веб-просмотра откроется в начале VSCode, но это тоже не открыло мое расширение.

Метод activate() вашего расширения всегда должен вызываться, если событие активации *. Я предполагаю, что под "запуском команды с палитрой команд" вы имеете в виду отладку расширения через хост разработки расширений? Если ваше расширение не находится в каталоге <User>/.vscode/extensions, оно не будет включено в обычные исполнения VSCode. Затем он также должен быть указан на панели «Расширения».

...