2017-03-03 1 views
0

활성화 할 때 XHR 호출을하고 그 XHR 결과로 메뉴를 채우고 싶습니다 VSC 플러그인을 작성하고 있습니다. 상태 표시 줄에 메뉴를 동적으로 추가하거나 동적 항목을 항목 목록에 동적으로 추가하는 방법이있는 것 같지 않습니다.VSCode 확장의 동적 메뉴 빌드

답변

1

당신은 그렇게 할 수 없습니다. 모든 명령은 선언 방식이기 때문에 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; 
    } 
}); 
+0

그래 그게 내가하고 결국 궁극적으로거야. – arb