我正在创作一个VSC插件,在激活时,我想进行XHR调用,然后使用该XHR的结果填充菜单。似乎没有办法将状态栏或动态项目动态添加到项目列表中。
答案 0 :(得分:2)
你不能这样做。由于声明性方法,所有命令必须在package.json
中预定义。
但是,您可以模仿此行为。为此,您必须使用vscode.window.showQuickPick
API,添加从XHR调用中收到的项目。这个动态方法的一个很好的例子是MDTools extension。
另外,您可以使用示例代码:
let items: vscode.QuickPickItem[] = [];
for (let index = 0; index < yourHXRResultItems.length; index++) {
let item = yourHXRResultItems[index];
items.push({
label: item.name,
description: item.moreDetailedInfo});
}
vscode.window.showQuickPick(items).then(selection => {
// the user canceled the selection
if (!selection) {
return;
}
// the user selected some item. You could use `selection.name` too
switch (selection.description) {
case "onItem":
doSomething();
break;
case "anotherItem":
doSomethingElse();
break;
//.....
default:
break;
}
});