VS代码扩展:隐藏命令面板中的命令

时间:2019-03-20 22:11:36

标签: typescript visual-studio-code vscode-extensions

背景

我目前正在开发一个简单的VS Code扩展,它将为我的构建和调试任务提供动态设置的command variables。该计划将具有一系列属性,这些属性将通过"${command:extension.myCommand}"语法在launch.json等中访问。

注册这样的命令就像将一个条目添加到package.json文件一样简单,例如:

"contributes": {
    "commands": [
        {
            "command": "extension.myCommand",
            "title": ""
        }
    ]
}

并在我的主扩展文件中实现相应的命令:

let disposable = vscode.commands.registerCommand('extension.myCommand', () => {
    return "dynvar";
});
context.subscriptions.push(disposable);

问题

不幸的是,这些命令现在也出现在命令面板中,并且由于它们没有任何交互性,这很烦人。

问题:

有什么方法可以隐藏VS Code的命令面板中通过扩展贡献的命令吗?

2 个答案:

答案 0 :(得分:1)

如果您不需要将"icon""title"与您的命令相关联,则只需从"commands"中省略它-此处未列出的命令仍可以调用,只要它们已经通过vscode.commands进行了注册。

否则,您可以使用以下技巧从命令面板中将其隐藏:

"contributes": {
    "menus": {
        "commandPalette": [
            {
                "command": "extension.myCommand",
                "when": "false"
            }
        ]
    }
}

答案 1 :(得分:0)

"contributes": {
"commands": [
    {
        "command": "extension.myHiddenCommand",
        "title": "Compile folder"
    }
],
"menus": {
    "commandPalette": [
        {
            "command": "extension.myHiddenCommand",
            "when": "false"
        }
    ]
}

}