【问题标题】:How do I hide a command in the palette menu from my extension in VS Code如何在 VS Code 中的扩展中隐藏调色板菜单中的命令
【发布时间】:2018-08-04 16:03:39
【问题描述】:

我正在从this 页面开始构建一个 VS Code 扩展。现在我想在我运行它之后在调色板菜单中隐藏命令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】:

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

来自docs(在章节底部):

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

所以当你的扩展贡献了一个boolean configuration 称为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)"
            }
        }
    }
}

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

【讨论】:

    猜你喜欢
    • 2019-08-11
    • 1970-01-01
    • 1970-01-01
    • 2019-03-13
    • 2022-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-23
    相关资源
    最近更新 更多