在开发VSCode扩展时,是否可以创建仅适用于某些语言的扩展命令?
在package.json
清单中,您可以按语言激活扩展程序:
"activationEvents": [
"onLanguage:html"
]
但是,命令调板中的命令仍然存在于所有扩展中。它只是在扩展被激活之前一直无法工作。
我无法弄清楚如何制作命令,只针对特定语言显示...您可以定义如下命令:
"contributes": {
"commands": [{
"command": "extension.sayHello",
"title": "Hello World"
}]
}
但是此命令可用于命令面板中的所有语言。在我的例子中,我想要创建的特定命令对于HTML语言才有意义。该命令专门在某处查询API,然后将一些HTML插入到当前文件中。显然,将此命令用于python
或ruby
等其他语言是没有意义的。
是否可以这样做?
答案 0 :(得分: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"
}]
}