如何从VS Code中的扩展名隐藏调色板菜单中的命令

问题描述 投票:1回答:1

我正在从this页面开始构建VS代码扩展。现在我想在运行它之后隐藏在调色板菜单中的命令extension.timerStart。我已经阅读了this页面,没有帮助。我有package.json的代码。如何让varFromMyExtension===false部分工作?

  "contributes": {
    "commands": [
      {
        "command": "extension.timerStart",
        "title": "Timer Start"
      }
    ],
    "menus": {
      "commandPalette": [
        {
          "command": "extension.timerStart",
          "when": "varFromMyExtension===false"
        }
      ]
    }
visual-studio-code vscode-extensions
1个回答
-1
投票

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

来自docs(在本章的底部):

注意:您可以使用任何用户或工作空间设置,其值为"config.",其值为布尔值。

所以当你的扩展贡献一个名为booleanconfiguration varFromMyExtension时,你应该能够在when条款中使用它。这个配置也可以是manipulated programmatically

所以你的package.json可能包含这样的东西(未测试):

"contributes": {
    "commands": [
        {
            "command": "extension.timerStart",
            "title": "Timer Start"
        }
    ],
    "menus": {
        "commandPalette": [
            {
                "command": "extension.timerStart",
                "when": "!config.myextension.varFromMyExtension"
            }
        ]
    },
    "configuration": {
        "type": "object",
        "title": "Indicates whether ...",
        "properties": {
            "myextension.varFromMyExtension": {
                "title": "My title.",
                "description": "My description",
                "type": "boolean",
                "default": false,
                "pattern": "(true|false)"
            }
        }
    }
}

但请记住,用户也可以查看和编辑此设置。

© www.soinside.com 2019 - 2024. All rights reserved.