Vscode扩展:如果扩展未激活,则隐藏菜单贡献

时间:2017-03-10 03:50:46

标签: visual-studio-code vscode-extensions

只有满足特定条件时才会激活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"
        }]
    },
}

enter image description here

编辑:

onCommand作品中添加activationEvents

即使Vscode声明在错误消息中找不到该命令,它确实找到了它并决定不触发它。

"activationEvents": [
    "onCommand:extension.displayHelp",
    "workspaceContains:server",
],

但是,如果扩展程序没有激活,我仍然会完全隐藏菜单内容。

1 个答案:

答案 0 :(得分:0)

像这段代码一样使用

vscode.commands.executeCommand('setContext', 'yourCMD', true);

"menus": {
   "editor/context": [
      {
        "when": "editorHasSelection&&yourCMD",
         "command": "port.sendSelect",
          "group": "navigation"
       }
   ]
}

我的代码https://github.com/hanfengcan/lemon