diff --git a/src/vs/code/node/cliProcessMain.ts b/src/vs/code/node/cliProcessMain.ts index 7324eab0da7..406c77dcc2c 100644 --- a/src/vs/code/node/cliProcessMain.ts +++ b/src/vs/code/node/cliProcessMain.ts @@ -125,18 +125,20 @@ class Main { private uninstallExtension(ids: string[]): TPromise { return sequence(ids.map(id => () => { - return this.extensionManagementService.getInstalled().then(installed => { - const [extension] = installed.filter(e => getId(e.manifest) === id); + return this.extensionManagementService.getInstalled(true).then(installed => { + const extensions = installed.filter(e => getId(e.manifest) === id); - if (!extension) { + if (extensions.length === 0) { return TPromise.wrapError(`${ notInstalled(id) }\n${ useId }`); } console.log(localize('uninstalling', "Uninstalling {0}...", id)); - return this.extensionManagementService.uninstall(extension).then(() => { - console.log(localize('successUninstall', "Extension '{0}' was successfully uninstalled!", id)); - }); + const promises = extensions + .map(extension => this.extensionManagementService.uninstall(extension)); + + return TPromise.join(promises) + .then(() => console.log(localize('successUninstall', "Extension '{0}' was successfully uninstalled!", id))); }); })); }