Skip to content

Commit 0def0be

Browse files
authored
Directly query for extension version before declaring it missing (microsoft#250763)
* directly query for extension version before declaring it missing * always fire event * show missingFromGallery even when extension is disabled or not running * whitespace
1 parent 15805d0 commit 0def0be

File tree

2 files changed

+13
-8
lines changed

2 files changed

+13
-8
lines changed

src/vs/workbench/contrib/extensions/browser/extensionsActions.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2608,6 +2608,11 @@ export class ExtensionStatusAction extends ExtensionAction {
26082608
return;
26092609
}
26102610

2611+
if (this.extension.missingFromGallery) {
2612+
this.updateStatus({ icon: warningIcon, message: new MarkdownString(localize('missing from gallery tooltip', "This extension is no longer available on the Extension Marketplace.")) }, true);
2613+
return;
2614+
}
2615+
26112616
if (this.extensionsWorkbenchService.canSetLanguage(this.extension)) {
26122617
return;
26132618
}
@@ -2807,11 +2812,6 @@ export class ExtensionStatusAction extends ExtensionAction {
28072812
const isEnabled = this.workbenchExtensionEnablementService.isEnabled(this.extension.local);
28082813
const isRunning = this.extensionService.extensions.some(e => areSameExtensions({ id: e.identifier.value, uuid: e.uuid }, this.extension!.identifier));
28092814

2810-
if (this.extension.missingFromGallery && isEnabled && isRunning) {
2811-
this.updateStatus({ icon: warningIcon, message: new MarkdownString(localize('missing from gallery tooltip', "This extension is no longer available on the Extension Marketplace.")) }, true);
2812-
return;
2813-
}
2814-
28152815
if (!this.extension.isWorkspaceScoped && isEnabled && isRunning) {
28162816
if (this.extension.enablementState === EnablementState.EnabledWorkspace) {
28172817
this.updateStatus({ message: new MarkdownString(localize('workspace enabled', "This extension is enabled for this workspace by the user.")) }, true);

src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -689,11 +689,16 @@ class Extensions extends Disposable {
689689
if (!flagExtensionsMissingFromGallery.some(f => areSameExtensions(f, extension.identifier))) {
690690
continue;
691691
}
692-
const gallery = galleryExtensions.find(g => areSameExtensions(g.identifier, extension.identifier));
693-
if (!gallery) {
692+
if (galleryExtensions.find(g => areSameExtensions(g.identifier, extension.identifier))) {
693+
continue;
694+
}
695+
const [gallery] = await this.galleryService.getExtensions([{ ...extension.identifier, version: extension.version }], CancellationToken.None);
696+
if (gallery) {
697+
extension.gallery = gallery;
698+
} else {
694699
extension.missingFromGallery = true;
695-
this._onChange.fire({ extension });
696700
}
701+
this._onChange.fire({ extension });
697702
}
698703
}
699704
}

0 commit comments

Comments
 (0)