如何在扩展命令中修改vs代码命令

时间:2019-05-24 20:35:01

标签: visual-studio-code vscode-extensions

我目前正在开发Visual Studio Code扩展程序,该扩展程序使Macbook Pro上的触摸栏更加有用。为了实现此扩展的某些目标,我希望能够在运行时修改命令的图标。

但是我很难弄清楚该怎么做。回到最基本的示例:

在我的extension.ts

let disposable = vscode.commands.registerCommand('extension.openX', () => {
  // Here i'd like to do something with the command that was fired, like for example modify the icon or title
  vscode.commands.getCommands().then((commands) => {
    console.log(commands);
  });
};

在我的package.json

"contributes": {
  "commands": [
    {
      "command": "extension.openX",
      "title": "Open X",
      "icon": "./assets/ci.png"
    }
  ],
  "menus": {
    "touchBar": [
      {
        "command": "extension.openX",
        "group": "ci"
      }
    ]
}

有没有办法做到这一点,或者我需要添加一堆带有特定图标的不同命令并使用"when"选项以便在正确的时间显示正确的图标吗?

我宁愿避免这种情况,因为我最好根据某些外部API使不同状态的数量动态化。

1 个答案:

答案 0 :(得分:0)

  

有没有办法做到这一点,或者我需要添加一堆带有特定图标的不同命令并使用"when"选项以便在正确的时间显示正确的图标吗?

现在,您唯一的选择确实是结合使用"when"setContext()。这里有一个相关的功能请求(尽管已关闭为“超出范围”):

Allow extensions to override command title and/or icon in menu placement (in package.json)