Visual studio code 如何从VS代码中的扩展插件中隐藏调色板菜单中的命令

Visual studio code 如何从VS代码中的扩展插件中隐藏调色板菜单中的命令,visual-studio-code,vscode-extensions,Visual Studio Code,Vscode Extensions,我正在从第页开始构建VS代码扩展。现在,我想在运行命令extension.timerStart后,在调色板菜单中隐藏该命令。我读了第页,没帮上忙。下面是package.json的代码。如何使varFromMyExtension===false部分工作 "contributes": { "commands": [ { "command": "extension.timerStart", "title": "Timer Start"

我正在从第页开始构建VS代码扩展。现在,我想在运行命令
extension.timerStart
后,在调色板菜单中隐藏该命令。我读了第页,没帮上忙。下面是package.json的代码。如何使
varFromMyExtension===false
部分工作

  "contributes": {
    "commands": [
      {
        "command": "extension.timerStart",
        "title": "Timer Start"
      }
    ],
    "menus": {
      "commandPalette": [
        {
          "command": "extension.timerStart",
          "when": "varFromMyExtension===false"
        }
      ]
    }

我认为在
when
子句中直接从扩展访问变量是不可能的。但是,您可以访问
settings.json
的任何配置

从(本章底部)开始:

注意:您可以使用任何用户或工作区设置,该设置在此处计算为布尔值,前缀为
“config.”

因此,当您的扩展提供一个名为
varFromMyExtension
boolean
时,您应该能够在
when
子句中使用它。这个配置也可以是

因此,您的
package.json
可能包含以下内容(未经测试):

“贡献”:{
“命令”:[
{
“命令”:“extension.timerStart”,
“标题”:“计时器启动”
}
],
“菜单”:{
“命令调色板”:[
{
“命令”:“extension.timerStart”,
“当”:“!config.myextension.varFromMyExtension”
}
]
},
“配置”:{
“类型”:“对象”,
“标题”:“表示是否……”,
“财产”:{
“myextension.varFromMyExtension”:{
“头衔”:“我的头衔”,
“描述”:“我的描述”,
“类型”:“布尔值”,
“默认”:false,
“模式”:(真|假)
}
}
}
}
但请记住,用户也可以查看和编辑此设置。

此设置可能重复