Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
sandy081 authored Oct 26, 2022
1 parent 55ebe5e commit e145a12
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -323,7 +323,7 @@ export class ExtensionEditor extends EditorPane {
this.instantiationService.createInstance(ReloadAction),
this.instantiationService.createInstance(ExtensionStatusLabelAction),
this.instantiationService.createInstance(ActionWithDropDownAction, 'extensions.updateActions', '',
[[this.instantiationService.createInstance(UpdateAction)], [this.instantiationService.createInstance(SkipUpdateAction)]]),
[[this.instantiationService.createInstance(UpdateAction, true)], [this.instantiationService.createInstance(SkipUpdateAction)]]),
this.instantiationService.createInstance(SetColorThemeAction),
this.instantiationService.createInstance(SetFileIconThemeAction),
this.instantiationService.createInstance(SetProductIconThemeAction),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -844,12 +844,20 @@ abstract class AbstractUpdateAction extends ExtensionAction {
export class UpdateAction extends AbstractUpdateAction {

constructor(
private readonly verbose: boolean,
@IExtensionsWorkbenchService override readonly extensionsWorkbenchService: IExtensionsWorkbenchService,
@IInstantiationService protected readonly instantiationService: IInstantiationService,
) {
super(`extensions.update`, localize('update', "Update"), extensionsWorkbenchService);
}

override update(): void {
super.update();
if (this.extension) {
this.label = this.verbose ? localize('update to', "Update to v{0}", this.extension.latestVersion) : localize('update', "Update");
}
}

override async run(): Promise<any> {
if (!this.extension) {
return;
Expand Down
7 changes: 3 additions & 4 deletions src/vs/workbench/contrib/extensions/browser/extensionsList.ts
Original file line number Diff line number Diff line change
Expand Up @@ -115,13 +115,12 @@ export class Renderer implements IPagedRenderer<IExtension, ITemplateData> {
actionbar.onDidRun(({ error }) => error && this.notificationService.error(error));

const extensionStatusIconAction = this.instantiationService.createInstance(ExtensionStatusAction);
const reloadAction = this.instantiationService.createInstance(ReloadAction);
const actions = [
this.instantiationService.createInstance(ExtensionStatusLabelAction),
this.instantiationService.createInstance(MigrateDeprecatedExtensionAction, true),
reloadAction,
this.instantiationService.createInstance(ReloadAction),
this.instantiationService.createInstance(ActionWithDropDownAction, 'extensions.updateActions', '',
[[this.instantiationService.createInstance(UpdateAction)], [this.instantiationService.createInstance(SkipUpdateAction)]]),
[[this.instantiationService.createInstance(UpdateAction, false)], [this.instantiationService.createInstance(SkipUpdateAction)]]),
this.instantiationService.createInstance(InstallDropdownAction),
this.instantiationService.createInstance(InstallingLabelAction),
this.instantiationService.createInstance(SetLanguageAction),
Expand All @@ -134,7 +133,7 @@ export class Renderer implements IPagedRenderer<IExtension, ITemplateData> {
this.instantiationService.createInstance(SwitchToPreReleaseVersionAction, true),
this.instantiationService.createInstance(ManageExtensionAction)
];
const extensionHoverWidget = this.instantiationService.createInstance(ExtensionHoverWidget, { target: root, position: this.options.hoverOptions.position }, extensionStatusIconAction, reloadAction);
const extensionHoverWidget = this.instantiationService.createInstance(ExtensionHoverWidget, { target: root, position: this.options.hoverOptions.position }, extensionStatusIconAction);

const widgets = [
recommendationWidget,
Expand Down
11 changes: 8 additions & 3 deletions src/vs/workbench/contrib/extensions/browser/extensionsWidgets.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import { localize } from 'vs/nls';
import { EnablementState, IExtensionManagementServerService } from 'vs/workbench/services/extensionManagement/common/extensionManagement';
import { IExtensionIgnoredRecommendationsService, IExtensionRecommendationsService } from 'vs/workbench/services/extensionRecommendations/common/extensionRecommendations';
import { ILabelService } from 'vs/platform/label/common/label';
import { extensionButtonProminentBackground, ExtensionStatusAction, ReloadAction } from 'vs/workbench/contrib/extensions/browser/extensionsActions';
import { extensionButtonProminentBackground, ExtensionStatusAction } from 'vs/workbench/contrib/extensions/browser/extensionsActions';
import { IThemeService, ThemeIcon, registerThemingParticipant } from 'vs/platform/theme/common/themeService';
import { EXTENSION_BADGE_REMOTE_BACKGROUND, EXTENSION_BADGE_REMOTE_FOREGROUND } from 'vs/workbench/common/theme';
import { Emitter, Event } from 'vs/base/common/event';
Expand Down Expand Up @@ -481,7 +481,6 @@ export class ExtensionHoverWidget extends ExtensionWidget {
constructor(
private readonly options: ExtensionHoverOptions,
private readonly extensionStatusAction: ExtensionStatusAction,
private readonly reloadAction: ReloadAction,
@IExtensionsWorkbenchService private readonly extensionsWorkbenchService: IExtensionsWorkbenchService,
@IHoverService private readonly hoverService: IHoverService,
@IConfigurationService private readonly configurationService: IConfigurationService,
Expand Down Expand Up @@ -567,10 +566,16 @@ export class ExtensionHoverWidget extends ExtensionWidget {
markdown.appendText(`\n`);
}

if (this.extension.outdated) {
markdown.appendMarkdown(localize('updateRequired', "Latest version:"));
markdown.appendMarkdown(`&nbsp;<span style="background-color:#8080802B;">**&nbsp;_v${this.extension.latestVersion}_**&nbsp;</span>`);
markdown.appendText(`\n`);
}

const preReleaseMessage = ExtensionHoverWidget.getPreReleaseMessage(this.extension);
const extensionRuntimeStatus = this.extensionsWorkbenchService.getExtensionStatus(this.extension);
const extensionStatus = this.extensionStatusAction.status;
const reloadRequiredMessage = this.reloadAction.enabled ? this.reloadAction.tooltip : '';
const reloadRequiredMessage = this.extension.reloadRequiredStatus;
const recommendationMessage = this.getRecommendationMessage(this.extension);

if (extensionRuntimeStatus || extensionStatus || reloadRequiredMessage || recommendationMessage || preReleaseMessage) {
Expand Down

0 comments on commit e145a12

Please sign in to comment.