Vscode分机:如果分机不活动,隐藏菜单分机
问题描述:
只有满足某些条件时才会激活Vscode分机。 (基于activationEvents
)。Vscode分机:如果分机不活动,隐藏菜单分机
在我的扩展中,我想添加一个菜单贡献。问题是,如果扩展未处于活动状态,单击该按钮将触发错误。所以理想情况下,只有在扩展处于活动状态时才可以看到。
我该如何做到这一点? when-clause
似乎太有限了。
"activationEvents": [
"workspaceContains:server"
],
"contributes": {
"commands": [
{
"command": "extension.displayHelp",
"title": "RCE Help"
}
],
"menus": {
"editor/title": [{
"when": "resourceLangId != markdown",
"command": "extension.displayHelp",
"group": "navigation"
}]
},
}
编辑:
原来添加在activationEvents
作品onCommand
。
尽管Vscode声明错误消息中未找到该命令,但确实找到了它并决定不触发它。
"activationEvents": [
"onCommand:extension.displayHelp",
"workspaceContains:server",
],
但是,如果扩展名未激活,我仍然希望完全隐藏菜单的贡献。
答
使用这样的代码
vscode.commands.executeCommand('setContext', 'yourCMD', true);
"menus": {
"editor/context": [
{
"when": "editorHasSelection&&yourCMD",
"command": "port.sendSelect",
"group": "navigation"
}
]
}
我也有同样的问题,但我不希望将按需添加到activationEvents。如果我的激活事件不匹配,则这些命令将失败(缺少配置信息)。如果不显示非活动扩展程序的贡献,或者至少有选项,这将是很好的。 –