Skip to content

Commit e59aa15

Browse files
committed
Show separate error when cannot connect to marketplace than when no extensions are found microsoft#57901
1 parent d33b1c3 commit e59aa15

2 files changed

Lines changed: 17 additions & 7 deletions

File tree

product.json

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,12 @@
2121
"extensionAllowedProposedApi": [
2222
"ms-vscode.node-debug",
2323
"ms-vscode.node-debug2"
24-
]
24+
],
25+
"extensionsGallery": {
26+
"serviceUrl": "https://marketplace.visualstudio.com/_apis/public/gallery",
27+
"cacheUrl": "https://vscode.blob.core.windows.net/gallery/index",
28+
"itemUrl": "https://marketplace.visualstudio.com/items",
29+
"controlUrl": "https://az764295.vo.msecnd.net/extensions/marketplace.json",
30+
"recommendationsUrl": "https://az764295.vo.msecnd.net/extensions/workspaceRecommendations.json.gz"
31+
}
2532
}

src/vs/workbench/parts/extensions/electron-browser/extensionsViews.ts

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -109,12 +109,15 @@ export class ExtensionsListView extends ViewletPanel {
109109
}
110110

111111
async show(query: string): Promise<IPagedModel<IExtension>> {
112-
const model = await this.query(query).catch(e => {
112+
return await this.query(query).then(model => {
113+
this.setModel(model);
114+
return model;
115+
}).catch(e => {
113116
console.warn('Error querying extensions gallery', e);
114-
return new PagedModel([]);
117+
const model = new PagedModel([]);
118+
this.setModel(model, true);
119+
return model;
115120
});
116-
this.setModel(model);
117-
return model;
118121
}
119122

120123
select(): void {
@@ -528,7 +531,7 @@ export class ExtensionsListView extends ViewletPanel {
528531
});
529532
}
530533

531-
private setModel(model: IPagedModel<IExtension>) {
534+
private setModel(model: IPagedModel<IExtension>, isGalleryError?: boolean) {
532535
if (this.list) {
533536
this.list.model = new DelayedPagedModel(model);
534537
this.list.scrollTop = 0;
@@ -539,7 +542,7 @@ export class ExtensionsListView extends ViewletPanel {
539542
this.badge.setCount(count);
540543

541544
if (count === 0 && this.isVisible()) {
542-
this.messageBox.textContent = localize('no extensions found', "No extensions found.");
545+
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.");
543546
} else {
544547
this.messageBox.textContent = '';
545548
}

0 commit comments

Comments
 (0)