我目前正在开发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使不同状态的数量动态化。
答案 0 :(得分:0)
有没有办法做到这一点,或者我需要添加一堆带有特定图标的不同命令并使用
"when"
选项以便在正确的时间显示正确的图标吗?
现在,您唯一的选择确实是结合使用"when"
和setContext()
。这里有一个相关的功能请求(尽管已关闭为“超出范围”):
Allow extensions to override command title and/or icon in menu placement (in package.json)