Skip to content

Commit 8d7453d

Browse files
authored
Extension Guide - Install selected extensions (#459)
Signed-off-by: Rome Li <[email protected]>
1 parent 021c7ed commit 8d7453d

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

src/ext-guide/assets/index.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,3 +86,24 @@ function syncExtensionStatus(extensions: string[]) {
8686
$(elem).prop("checked", isInstalled);
8787
});
8888
}
89+
90+
function getSelectedExtension(isAll: boolean = false) {
91+
const $selected = isAll ? $("input:visible:enabled") : $("input:checked:visible:enabled");
92+
const selectedExtensions: string[] = [];
93+
$selected.each((i, elem) => { selectedExtensions.push(<string>$(elem).val()); });
94+
return selectedExtensions;
95+
}
96+
97+
$("#btn-install-selected").click(() => installExtensions(getSelectedExtension()));
98+
$("#btn-install-all").click(() => installExtensions(getSelectedExtension(true)));
99+
100+
function installExtensions(extNames: string[]) {
101+
if (extNames.length <= 0) {
102+
return;
103+
}
104+
105+
vscode.postMessage({
106+
command: "installExtensions",
107+
extNames: extNames
108+
});
109+
}

src/ext-guide/index.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,11 @@ async function initializeJavaExtGuideView(context: vscode.ExtensionContext, webv
4242
infoType: "tabActivated",
4343
tabId: tabId
4444
});
45+
} else if (e.command === "installExtensions") {
46+
const extNames = <string[]>e.extNames;
47+
await extNames.map(extName => {
48+
return vscode.commands.executeCommand("java.helper.installExtension", extName, extName);
49+
});
4550
}
4651
}));
4752

0 commit comments

Comments
 (0)