只有满足特定条件时才会激活Vscode扩展名。 (基于activationEvents
)。
在我的扩展程序中,我想添加一个菜单贡献。问题是,如果扩展名未激活,单击该按钮将触发错误。理想情况下,只有在扩展名处于活动状态时才会显示。
我怎样才能做到这一点? when-clause
似乎太有限了。
"activationEvents": [
"workspaceContains:server"
],
"contributes": {
"commands": [
{
"command": "extension.displayHelp",
"title": "RCE Help"
}
],
"menus": {
"editor/title": [{
"when": "resourceLangId != markdown",
"command": "extension.displayHelp",
"group": "navigation"
}]
},
}
编辑:
在onCommand
作品中添加activationEvents
。
即使Vscode声明在错误消息中找不到该命令,它确实找到了它并决定不触发它。
"activationEvents": [
"onCommand:extension.displayHelp",
"workspaceContains:server",
],
但是,如果扩展程序没有激活,我仍然会完全隐藏菜单内容。
答案 0 :(得分:0)
像这段代码一样使用
vscode.commands.executeCommand('setContext', 'yourCMD', true);
"menus": {
"editor/context": [
{
"when": "editorHasSelection&&yourCMD",
"command": "port.sendSelect",
"group": "navigation"
}
]
}