mirror of
https://github.com/microsoft/vscode.git
synced 2025-12-24 12:19:20 +00:00
Directly query for extension version before declaring it missing (#250763)
* directly query for extension version before declaring it missing * always fire event * show missingFromGallery even when extension is disabled or not running * whitespace
This commit is contained in:
@@ -2608,6 +2608,11 @@ export class ExtensionStatusAction extends ExtensionAction {
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.extension.missingFromGallery) {
|
||||
this.updateStatus({ icon: warningIcon, message: new MarkdownString(localize('missing from gallery tooltip', "This extension is no longer available on the Extension Marketplace.")) }, true);
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.extensionsWorkbenchService.canSetLanguage(this.extension)) {
|
||||
return;
|
||||
}
|
||||
@@ -2807,11 +2812,6 @@ export class ExtensionStatusAction extends ExtensionAction {
|
||||
const isEnabled = this.workbenchExtensionEnablementService.isEnabled(this.extension.local);
|
||||
const isRunning = this.extensionService.extensions.some(e => areSameExtensions({ id: e.identifier.value, uuid: e.uuid }, this.extension!.identifier));
|
||||
|
||||
if (this.extension.missingFromGallery && isEnabled && isRunning) {
|
||||
this.updateStatus({ icon: warningIcon, message: new MarkdownString(localize('missing from gallery tooltip', "This extension is no longer available on the Extension Marketplace.")) }, true);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!this.extension.isWorkspaceScoped && isEnabled && isRunning) {
|
||||
if (this.extension.enablementState === EnablementState.EnabledWorkspace) {
|
||||
this.updateStatus({ message: new MarkdownString(localize('workspace enabled', "This extension is enabled for this workspace by the user.")) }, true);
|
||||
|
||||
@@ -689,11 +689,16 @@ class Extensions extends Disposable {
|
||||
if (!flagExtensionsMissingFromGallery.some(f => areSameExtensions(f, extension.identifier))) {
|
||||
continue;
|
||||
}
|
||||
const gallery = galleryExtensions.find(g => areSameExtensions(g.identifier, extension.identifier));
|
||||
if (!gallery) {
|
||||
extension.missingFromGallery = true;
|
||||
this._onChange.fire({ extension });
|
||||
if (galleryExtensions.find(g => areSameExtensions(g.identifier, extension.identifier))) {
|
||||
continue;
|
||||
}
|
||||
const [gallery] = await this.galleryService.getExtensions([{ ...extension.identifier, version: extension.version }], CancellationToken.None);
|
||||
if (gallery) {
|
||||
extension.gallery = gallery;
|
||||
} else {
|
||||
extension.missingFromGallery = true;
|
||||
}
|
||||
this._onChange.fire({ extension });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user