diff --git a/product.json b/product.json index ed3ced1c1be38da7c830b702ce373ea369167da8..d9aca1e37e4bf134e94caccc184c6f9a13f3d909 100644 --- a/product.json +++ b/product.json @@ -21,5 +21,12 @@ "extensionAllowedProposedApi": [ "ms-vscode.node-debug", "ms-vscode.node-debug2" - ] + ], + "extensionsGallery": { + "serviceUrl": "https://marketplace.visualstudio.com/_apis/public/gallery", + "cacheUrl": "https://vscode.blob.core.windows.net/gallery/index", + "itemUrl": "https://marketplace.visualstudio.com/items", + "controlUrl": "https://az764295.vo.msecnd.net/extensions/marketplace.json", + "recommendationsUrl": "https://az764295.vo.msecnd.net/extensions/workspaceRecommendations.json.gz" + } } diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionsViews.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionsViews.ts index 87419f14fe259369ff41558db00e879309d7b9aa..4e4446bc1433a08dc368a4b4fa297cfffd8681e2 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionsViews.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionsViews.ts @@ -109,12 +109,15 @@ export class ExtensionsListView extends ViewletPanel { } async show(query: string): Promise> { - const model = await this.query(query).catch(e => { + return await this.query(query).then(model => { + this.setModel(model); + return model; + }).catch(e => { console.warn('Error querying extensions gallery', e); - return new PagedModel([]); + const model = new PagedModel([]); + this.setModel(model, true); + return model; }); - this.setModel(model); - return model; } select(): void { @@ -528,7 +531,7 @@ export class ExtensionsListView extends ViewletPanel { }); } - private setModel(model: IPagedModel) { + private setModel(model: IPagedModel, isGalleryError?: boolean) { if (this.list) { this.list.model = new DelayedPagedModel(model); this.list.scrollTop = 0; @@ -539,7 +542,7 @@ export class ExtensionsListView extends ViewletPanel { this.badge.setCount(count); if (count === 0 && this.isVisible()) { - this.messageBox.textContent = localize('no extensions found', "No extensions found."); + this.messageBox.textContent = isGalleryError ? localize('galleryError', "We cannot connect to the Extensions Marketplace at this time, please try again later.") : localize('no extensions found', "No extensions found."); } else { this.messageBox.textContent = ''; }