2

在开发 VSCode 扩展时,是否可以创建仅适用于某些语言的扩展命令?

在您的package.json清单中,您可以激活每种语言的扩展程序:

"activationEvents": [
    "onLanguage:html"
]

但是,所有扩展的命令面板中仍然有一个命令。在扩展程序被激活之前它不会起作用。

我不知道如何制作命令,只出现在特定语言中......您可以定义这样的命令:

"contributes": {
    "commands": [{
        "command": "extension.sayHello",
        "title": "Hello World"
    }]
}

但此命令适用于命令面板中的所有语言。在我的示例中,我想要创建的特定命令实际上只对 HTML 语言有意义。该命令专门在某处查询 API,然后将一些 HTML 插入到当前文件中。因此,显然将此命令用于其他语言(如pythonorruby等​​)是没有意义的。

是否有可能做到这一点?

4

1 回答 1

1

VSCode 1.10 中添加了对此的支持:https ://code.visualstudio.com/updates/v1_10#_context-specific-visibility-of-command-palette-menu-items

在你的package.json

"commands": [{
    "command": "extension.sayHello",
    "title": "Hello World"
}],
"menus": {
    "commandPalette": [{
        "command": "extension.sayHello",
        "when": "editorLangId == html"
    }]
}
于 2017-07-07T09:23:04.663 回答