diff --git a/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.ts b/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.ts index 7dc3eb0d8a6e6e3c9db0396d985320e18f5e8041..d7aeefd8da3be79dc8f140e98b61405652e03528 100644 --- a/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.ts +++ b/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.ts @@ -841,7 +841,14 @@ export class ExtensionsWorkbenchService implements IExtensionsWorkbenchService { } const extension = result.firstPage[0]; - this.open(extension).done(null, error => this.onError(error)); + const promises = [this.open(extension)]; + + if (this.local.every(local => local.identifier !== extension.identifier)) { + promises.push(this.install(extension)); + } + + TPromise.join(promises) + .done(null, error => this.onError(error)); }); }