【问题标题】:How to show a command only in explorer context menu in vscode extension?如何仅在 vscode 扩展的资源管理器上下文菜单中显示命令?
【发布时间】:2021-04-09 00:06:07
【问题描述】:

我想提供一个命令,用户在资源管理器面板中选择一些文件和目录,调出上下文菜单并选择命令。

此命令必须对一组文件进行操作,所以我不希望用户直接从命令面板执行它,因为registerCommand 回调不会接收选定的文件作为参数。

我不能将它从package.json 中的contributes.commands 中删除,因为contributes.menus["explorer/context"].command 要求它存在于contributes.commands 中。

这可以实现吗?

【问题讨论】:

    标签: vscode-extensions


    【解决方案1】:

    这可以使用commandPalette 菜单项来实现。 默认情况下,任何正在注册的命令都将在 commandPalette 中可见,我们可以通过简单的when 子句禁止它在 commandPalette 中显示。

    例子-

    "commands":[
        {
            "command":"extension.sayHello",
            "title":"Hello World"
        }
    ],
    "menus":{
        "commandPalette":[
            {
                "command":"extension.sayHello",
                "when":"false"
            }
        ],
        "explorer/context":[
            {
                "command":"extension.sayHello",
                "when":"true"
            }
        ]
    }
    

    这将只在资源管理器中显示命令,而不是在 commandPalette 中。

    【讨论】:

      猜你喜欢
      • 2011-12-24
      • 2012-04-05
      • 2016-11-11
      • 2013-04-12
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多