Skip to content

Commit e145a12

Browse files
authored
1 parent 55ebe5e commit e145a12

File tree

4 files changed

+20
-8
lines changed

4 files changed

+20
-8
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -323,7 +323,7 @@ export class ExtensionEditor extends EditorPane {
323323
this.instantiationService.createInstance(ReloadAction),
324324
this.instantiationService.createInstance(ExtensionStatusLabelAction),
325325
this.instantiationService.createInstance(ActionWithDropDownAction, 'extensions.updateActions', '',
326-
[[this.instantiationService.createInstance(UpdateAction)], [this.instantiationService.createInstance(SkipUpdateAction)]]),
326+
[[this.instantiationService.createInstance(UpdateAction, true)], [this.instantiationService.createInstance(SkipUpdateAction)]]),
327327
this.instantiationService.createInstance(SetColorThemeAction),
328328
this.instantiationService.createInstance(SetFileIconThemeAction),
329329
this.instantiationService.createInstance(SetProductIconThemeAction),

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -844,12 +844,20 @@ abstract class AbstractUpdateAction extends ExtensionAction {
844844
export class UpdateAction extends AbstractUpdateAction {
845845

846846
constructor(
847+
private readonly verbose: boolean,
847848
@IExtensionsWorkbenchService override readonly extensionsWorkbenchService: IExtensionsWorkbenchService,
848849
@IInstantiationService protected readonly instantiationService: IInstantiationService,
849850
) {
850851
super(`extensions.update`, localize('update', "Update"), extensionsWorkbenchService);
851852
}
852853

854+
override update(): void {
855+
super.update();
856+
if (this.extension) {
857+
this.label = this.verbose ? localize('update to', "Update to v{0}", this.extension.latestVersion) : localize('update', "Update");
858+
}
859+
}
860+
853861
override async run(): Promise<any> {
854862
if (!this.extension) {
855863
return;

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

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -115,13 +115,12 @@ export class Renderer implements IPagedRenderer<IExtension, ITemplateData> {
115115
actionbar.onDidRun(({ error }) => error && this.notificationService.error(error));
116116

117117
const extensionStatusIconAction = this.instantiationService.createInstance(ExtensionStatusAction);
118-
const reloadAction = this.instantiationService.createInstance(ReloadAction);
119118
const actions = [
120119
this.instantiationService.createInstance(ExtensionStatusLabelAction),
121120
this.instantiationService.createInstance(MigrateDeprecatedExtensionAction, true),
122-
reloadAction,
121+
this.instantiationService.createInstance(ReloadAction),
123122
this.instantiationService.createInstance(ActionWithDropDownAction, 'extensions.updateActions', '',
124-
[[this.instantiationService.createInstance(UpdateAction)], [this.instantiationService.createInstance(SkipUpdateAction)]]),
123+
[[this.instantiationService.createInstance(UpdateAction, false)], [this.instantiationService.createInstance(SkipUpdateAction)]]),
125124
this.instantiationService.createInstance(InstallDropdownAction),
126125
this.instantiationService.createInstance(InstallingLabelAction),
127126
this.instantiationService.createInstance(SetLanguageAction),
@@ -134,7 +133,7 @@ export class Renderer implements IPagedRenderer<IExtension, ITemplateData> {
134133
this.instantiationService.createInstance(SwitchToPreReleaseVersionAction, true),
135134
this.instantiationService.createInstance(ManageExtensionAction)
136135
];
137-
const extensionHoverWidget = this.instantiationService.createInstance(ExtensionHoverWidget, { target: root, position: this.options.hoverOptions.position }, extensionStatusIconAction, reloadAction);
136+
const extensionHoverWidget = this.instantiationService.createInstance(ExtensionHoverWidget, { target: root, position: this.options.hoverOptions.position }, extensionStatusIconAction);
138137

139138
const widgets = [
140139
recommendationWidget,

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

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import { localize } from 'vs/nls';
1313
import { EnablementState, IExtensionManagementServerService } from 'vs/workbench/services/extensionManagement/common/extensionManagement';
1414
import { IExtensionIgnoredRecommendationsService, IExtensionRecommendationsService } from 'vs/workbench/services/extensionRecommendations/common/extensionRecommendations';
1515
import { ILabelService } from 'vs/platform/label/common/label';
16-
import { extensionButtonProminentBackground, ExtensionStatusAction, ReloadAction } from 'vs/workbench/contrib/extensions/browser/extensionsActions';
16+
import { extensionButtonProminentBackground, ExtensionStatusAction } from 'vs/workbench/contrib/extensions/browser/extensionsActions';
1717
import { IThemeService, ThemeIcon, registerThemingParticipant } from 'vs/platform/theme/common/themeService';
1818
import { EXTENSION_BADGE_REMOTE_BACKGROUND, EXTENSION_BADGE_REMOTE_FOREGROUND } from 'vs/workbench/common/theme';
1919
import { Emitter, Event } from 'vs/base/common/event';
@@ -481,7 +481,6 @@ export class ExtensionHoverWidget extends ExtensionWidget {
481481
constructor(
482482
private readonly options: ExtensionHoverOptions,
483483
private readonly extensionStatusAction: ExtensionStatusAction,
484-
private readonly reloadAction: ReloadAction,
485484
@IExtensionsWorkbenchService private readonly extensionsWorkbenchService: IExtensionsWorkbenchService,
486485
@IHoverService private readonly hoverService: IHoverService,
487486
@IConfigurationService private readonly configurationService: IConfigurationService,
@@ -567,10 +566,16 @@ export class ExtensionHoverWidget extends ExtensionWidget {
567566
markdown.appendText(`\n`);
568567
}
569568

569+
if (this.extension.outdated) {
570+
markdown.appendMarkdown(localize('updateRequired', "Latest version:"));
571+
markdown.appendMarkdown(`&nbsp;<span style="background-color:#8080802B;">**&nbsp;_v${this.extension.latestVersion}_**&nbsp;</span>`);
572+
markdown.appendText(`\n`);
573+
}
574+
570575
const preReleaseMessage = ExtensionHoverWidget.getPreReleaseMessage(this.extension);
571576
const extensionRuntimeStatus = this.extensionsWorkbenchService.getExtensionStatus(this.extension);
572577
const extensionStatus = this.extensionStatusAction.status;
573-
const reloadRequiredMessage = this.reloadAction.enabled ? this.reloadAction.tooltip : '';
578+
const reloadRequiredMessage = this.extension.reloadRequiredStatus;
574579
const recommendationMessage = this.getRecommendationMessage(this.extension);
575580

576581
if (extensionRuntimeStatus || extensionStatus || reloadRequiredMessage || recommendationMessage || preReleaseMessage) {

0 commit comments

Comments
 (0)