From 450cf5d4d255e796962a7cd6ed3bdeeff6447f53 Mon Sep 17 00:00:00 2001 From: Joao Moreno Date: Tue, 26 Jul 2016 16:16:37 +0200 Subject: [PATCH] uninstall all versions of an extension fixes #8664 --- src/vs/code/node/cliProcessMain.ts | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) 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))); }); })); }