Как изменить команду vs code в команде расширения - PullRequest
1 голос
/ 24 мая 2019

В настоящее время я работаю над расширением для кода Visual Studio, которое делает Touch Bar на моем 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 голосов
/ 25 мая 2019

Есть ли способ сделать это, или мне нужно было бы поработать с добавлением нескольких различных команд с определенными значками и с помощью параметра "when", чтобы показать правильный значок в нужное время?

Прямо сейчас, ваш единственный вариант действительно использует "when" в сочетании с setContext().Здесь есть связанный (хотя и закрытый как вне области) запрос функции:

Разрешить расширениям переопределять заголовок команды и / или значок при размещении в меню (в package.json)

...