diff --git a/src/vs/workbench/contrib/extensions/browser/extensionEditor.ts b/src/vs/workbench/contrib/extensions/browser/extensionEditor.ts index 8e2d1a5badd86..f342d99e1c698 100644 --- a/src/vs/workbench/contrib/extensions/browser/extensionEditor.ts +++ b/src/vs/workbench/contrib/extensions/browser/extensionEditor.ts @@ -342,7 +342,7 @@ export class ExtensionEditor extends EditorPane { this.instantiationService.createInstance(InstallAnotherVersionAction), ] ]), - this.instantiationService.createInstance(SwitchToPreReleaseVersionAction), + this.instantiationService.createInstance(SwitchToPreReleaseVersionAction, false), this.instantiationService.createInstance(SwitchToReleasedVersionAction), this.instantiationService.createInstance(ToggleSyncExtensionAction), new ExtensionEditorManageExtensionAction(this.scopedContextKeyService || this.contextKeyService, this.instantiationService), diff --git a/src/vs/workbench/contrib/extensions/browser/extensionsActions.ts b/src/vs/workbench/contrib/extensions/browser/extensionsActions.ts index dd69b73511d13..f979dec0d6749 100644 --- a/src/vs/workbench/contrib/extensions/browser/extensionsActions.ts +++ b/src/vs/workbench/contrib/extensions/browser/extensionsActions.ts @@ -55,7 +55,7 @@ import { ActionWithDropdownActionViewItem, IActionWithDropdownActionViewItemOpti import { IContextMenuProvider } from 'vs/base/browser/contextmenu'; import { ILogService } from 'vs/platform/log/common/log'; import * as Constants from 'vs/workbench/contrib/logs/common/logConstants'; -import { errorIcon, infoIcon, manageExtensionIcon, syncEnabledIcon, syncIgnoredIcon, trustIcon, warningIcon } from 'vs/workbench/contrib/extensions/browser/extensionsIcons'; +import { errorIcon, infoIcon, manageExtensionIcon, preReleaseIcon, syncEnabledIcon, syncIgnoredIcon, trustIcon, warningIcon } from 'vs/workbench/contrib/extensions/browser/extensionsIcons'; import { isIOS, isWeb } from 'vs/base/common/platform'; import { IExtensionManifestPropertiesService } from 'vs/workbench/services/extensions/common/extensionManifestPropertiesService'; import { IWorkspaceTrustEnablementService, IWorkspaceTrustManagementService } from 'vs/platform/workspace/common/workspaceTrust'; @@ -1059,12 +1059,12 @@ export class SwitchToPreReleaseVersionAction extends ExtensionAction { static readonly ID = 'workbench.extensions.action.switchToPreReleaseVersion'; static readonly TITLE = { value: localize('switch to pre-release version', "Switch to Pre-Release Version"), original: 'Switch to Pre-Release Version' }; - private static readonly Class = `${ExtensionAction.LABEL_ACTION_CLASS} hide-when-disabled`; - constructor( + icon: boolean, @ICommandService private readonly commandService: ICommandService, ) { - super(SwitchToPreReleaseVersionAction.ID, SwitchToPreReleaseVersionAction.TITLE.value, SwitchToPreReleaseVersionAction.Class); + super(SwitchToPreReleaseVersionAction.ID, icon ? '' : SwitchToPreReleaseVersionAction.TITLE.value, `${icon ? ExtensionAction.ICON_ACTION_CLASS + ' ' + ThemeIcon.asClassName(preReleaseIcon) : ExtensionAction.LABEL_ACTION_CLASS} hide-when-disabled`); + this.tooltip = localize('switch to pre-release version tooltip', "Switch to Pre-Release version of this extension"); this.update(); } diff --git a/src/vs/workbench/contrib/extensions/browser/extensionsList.ts b/src/vs/workbench/contrib/extensions/browser/extensionsList.ts index 5e965d15858d1..6244db103789f 100644 --- a/src/vs/workbench/contrib/extensions/browser/extensionsList.ts +++ b/src/vs/workbench/contrib/extensions/browser/extensionsList.ts @@ -13,9 +13,9 @@ import { IListVirtualDelegate } from 'vs/base/browser/ui/list/list'; import { IPagedRenderer } from 'vs/base/browser/ui/list/listPaging'; import { Event } from 'vs/base/common/event'; import { IExtension, ExtensionContainers, ExtensionState, IExtensionsWorkbenchService } from 'vs/workbench/contrib/extensions/common/extensions'; -import { UpdateAction, ManageExtensionAction, ReloadAction, ExtensionStatusLabelAction, RemoteInstallAction, ExtensionStatusAction, LocalInstallAction, ActionWithDropDownAction, InstallDropdownAction, InstallingLabelAction, ExtensionActionWithDropdownActionViewItem, ExtensionDropDownAction, WebInstallAction } from 'vs/workbench/contrib/extensions/browser/extensionsActions'; +import { UpdateAction, ManageExtensionAction, ReloadAction, ExtensionStatusLabelAction, RemoteInstallAction, ExtensionStatusAction, LocalInstallAction, ActionWithDropDownAction, InstallDropdownAction, InstallingLabelAction, ExtensionActionWithDropdownActionViewItem, ExtensionDropDownAction, WebInstallAction, SwitchToPreReleaseVersionAction } from 'vs/workbench/contrib/extensions/browser/extensionsActions'; import { areSameExtensions } from 'vs/platform/extensionManagement/common/extensionManagementUtil'; -import { RatingsWidget, InstallCountWidget, RecommendationWidget, RemoteBadgeWidget, ExtensionPackCountWidget as ExtensionPackBadgeWidget, SyncIgnoredWidget, ExtensionHoverWidget, ExtensionActivationStatusWidget, PreReleaseBookmarkWidget, RunningPreReleaseVersionIndicatorWidget, extensionVerifiedPublisherIconColor } from 'vs/workbench/contrib/extensions/browser/extensionsWidgets'; +import { RatingsWidget, InstallCountWidget, RecommendationWidget, RemoteBadgeWidget, ExtensionPackCountWidget as ExtensionPackBadgeWidget, SyncIgnoredWidget, ExtensionHoverWidget, ExtensionActivationStatusWidget, PreReleaseBookmarkWidget, extensionVerifiedPublisherIconColor } from 'vs/workbench/contrib/extensions/browser/extensionsWidgets'; import { IExtensionService, toExtension } from 'vs/workbench/services/extensions/common/extensions'; import { IExtensionManagementServerService } from 'vs/workbench/services/extensionManagement/common/extensionManagement'; import { INotificationService } from 'vs/platform/notification/common/notification'; @@ -92,7 +92,6 @@ export class Renderer implements IPagedRenderer { const ratings = append(header, $('span.ratings')); const syncIgnore = append(header, $('span.sync-ignored')); const activationStatus = append(header, $('span.activation-status')); - const preRelease = append(header, $('span.pre-release')); const headerRemoteBadgeWidget = this.instantiationService.createInstance(RemoteBadgeWidget, header, false); const description = append(details, $('.description.ellipsis')); const footer = append(details, $('.footer')); @@ -127,6 +126,7 @@ export class Renderer implements IPagedRenderer { this.instantiationService.createInstance(LocalInstallAction), this.instantiationService.createInstance(WebInstallAction), extensionStatusIconAction, + this.instantiationService.createInstance(SwitchToPreReleaseVersionAction, true), this.instantiationService.createInstance(ManageExtensionAction) ]; const extensionHoverWidget = this.instantiationService.createInstance(ExtensionHoverWidget, { target: root, position: this.options.hoverOptions.position }, extensionStatusIconAction, reloadAction); @@ -138,7 +138,6 @@ export class Renderer implements IPagedRenderer { extensionPackBadgeWidget, headerRemoteBadgeWidget, extensionHoverWidget, - this.instantiationService.createInstance(RunningPreReleaseVersionIndicatorWidget, preRelease), this.instantiationService.createInstance(SyncIgnoredWidget, syncIgnore), this.instantiationService.createInstance(ExtensionActivationStatusWidget, activationStatus, true), this.instantiationService.createInstance(InstallCountWidget, installCount, true), diff --git a/src/vs/workbench/contrib/extensions/browser/extensionsWidgets.ts b/src/vs/workbench/contrib/extensions/browser/extensionsWidgets.ts index 76d062f4c5a43..05f4a70093b0d 100644 --- a/src/vs/workbench/contrib/extensions/browser/extensionsWidgets.ts +++ b/src/vs/workbench/contrib/extensions/browser/extensionsWidgets.ts @@ -159,29 +159,6 @@ export class RatingsWidget extends ExtensionWidget { } } -export class RunningPreReleaseVersionIndicatorWidget extends ExtensionWidget { - - constructor( - private readonly container: HTMLElement, - ) { - super(); - container.classList.add('extension-pre-release'); - this.render(); - } - - render(): void { - this.container.innerText = ''; - - if (!this.extension - || this.extension.state !== ExtensionState.Installed - || !this.extension.local?.isPreReleaseVersion) { - return; - } - - append(this.container, $('span' + ThemeIcon.asCSSSelector(preReleaseIcon))); - } -} - export class RecommendationWidget extends ExtensionWidget { private element?: HTMLElement; @@ -252,7 +229,7 @@ export class PreReleaseBookmarkWidget extends ExtensionWidget { if (!this.extension.hasPreReleaseVersion) { return; } - if (this.extension.state === ExtensionState.Installed && this.extension.local?.isPreReleaseVersion) { + if (this.extension.state === ExtensionState.Installed && !this.extension.local?.isPreReleaseVersion) { return; } this.element = append(this.parent, $('div.extension-bookmark')); diff --git a/src/vs/workbench/contrib/extensions/browser/media/extension.css b/src/vs/workbench/contrib/extensions/browser/media/extension.css index f9b66889af227..76f1c03de8ae0 100644 --- a/src/vs/workbench/contrib/extensions/browser/media/extension.css +++ b/src/vs/workbench/contrib/extensions/browser/media/extension.css @@ -82,10 +82,6 @@ overflow: hidden; } -.extension-list-item > .details > .header-container > .header > .extension-pre-release .codicon { - color: var(--vscode-extensionIcon-preReleaseForeground) !important; -} - .extension-list-item > .details > .header-container > .header > .activation-status, .extension-list-item > .details > .header-container > .header > .install-count, .extension-list-item > .details > .header-container > .header > .ratings { @@ -143,10 +139,6 @@ color: currentColor; } -.extension-list-item > .details > .header-container > .header .pre-release { - display: flex; -} - .extension-list-item > .details > .header-container > .header .sync-ignored { display: flex; } diff --git a/src/vs/workbench/contrib/extensions/browser/media/extensionsWidgets.css b/src/vs/workbench/contrib/extensions/browser/media/extensionsWidgets.css index 3c58e5f40af62..e0239387830d0 100644 --- a/src/vs/workbench/contrib/extensions/browser/media/extensionsWidgets.css +++ b/src/vs/workbench/contrib/extensions/browser/media/extensionsWidgets.css @@ -58,8 +58,3 @@ color: inherit; font-size: 80%; } - -/* codicon colors */ -.codicon.codicon-extensions-pre-release { - color: var(--vscode-extensionIcon-preReleaseForeground); -}