Skip to content

Commit a50c647

Browse files
author
Benjamin Pasero
authored
editors - include preferred name and description in tooltip if available (fix #198204) (#198441)
1 parent d6f9e21 commit a50c647

3 files changed

Lines changed: 55 additions & 5 deletions

File tree

src/vs/workbench/common/editor/diffEditorInput.ts

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -115,9 +115,16 @@ export class DiffEditorInput extends SideBySideEditorInput implements IDiffEdito
115115
}
116116

117117
// Title
118-
const shortTitle = this.computeLabel(this.original.getTitle(Verbosity.SHORT) ?? this.original.getName(), this.modified.getTitle(Verbosity.SHORT) ?? this.modified.getName(), ' ↔ ');
119-
const mediumTitle = this.computeLabel(this.original.getTitle(Verbosity.MEDIUM) ?? this.original.getName(), this.modified.getTitle(Verbosity.MEDIUM) ?? this.modified.getName(), ' ↔ ');
120-
const longTitle = this.computeLabel(this.original.getTitle(Verbosity.LONG) ?? this.original.getName(), this.modified.getTitle(Verbosity.LONG) ?? this.modified.getName(), ' ↔ ');
118+
let shortTitle = this.computeLabel(this.original.getTitle(Verbosity.SHORT) ?? this.original.getName(), this.modified.getTitle(Verbosity.SHORT) ?? this.modified.getName(), ' ↔ ');
119+
let mediumTitle = this.computeLabel(this.original.getTitle(Verbosity.MEDIUM) ?? this.original.getName(), this.modified.getTitle(Verbosity.MEDIUM) ?? this.modified.getName(), ' ↔ ');
120+
let longTitle = this.computeLabel(this.original.getTitle(Verbosity.LONG) ?? this.original.getName(), this.modified.getTitle(Verbosity.LONG) ?? this.modified.getName(), ' ↔ ');
121+
122+
const preferredTitle = this.getPreferredTitle();
123+
if (preferredTitle) {
124+
shortTitle = `${preferredTitle} (${shortTitle})`;
125+
mediumTitle = `${preferredTitle} (${mediumTitle})`;
126+
longTitle = `${preferredTitle} (${longTitle})`;
127+
}
121128

122129
return { name, shortDescription, mediumDescription, longDescription, forceDescription, shortTitle, mediumTitle, longTitle };
123130
}

src/vs/workbench/common/editor/sideBySideEditorInput.ts

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,11 +128,31 @@ export class SideBySideEditorInput extends EditorInput implements ISideBySideEdi
128128
}
129129

130130
override getTitle(verbosity?: Verbosity): string {
131+
let title: string;
131132
if (this.hasIdenticalSides) {
132-
return this.primary.getTitle(verbosity) ?? this.getName();
133+
title = this.primary.getTitle(verbosity) ?? this.getName();
134+
} else {
135+
title = super.getTitle(verbosity);
133136
}
134137

135-
return super.getTitle(verbosity);
138+
const preferredTitle = this.getPreferredTitle();
139+
if (preferredTitle) {
140+
title = `${preferredTitle} (${title})`;
141+
}
142+
143+
return title;
144+
}
145+
146+
protected getPreferredTitle(): string | undefined {
147+
if (this.preferredName && this.preferredDescription) {
148+
return `${this.preferredName} ${this.preferredDescription}`;
149+
}
150+
151+
if (this.preferredName || this.preferredDescription) {
152+
return this.preferredName ?? this.preferredDescription;
153+
}
154+
155+
return undefined;
136156
}
137157

138158
override getLabelExtraClasses(): string[] {

src/vs/workbench/contrib/files/browser/editors/fileEditorInput.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,29 @@ export class FileEditorInput extends AbstractTextResourceEditorInput implements
217217
return this.preferredDescription;
218218
}
219219

220+
override getTitle(verbosity?: Verbosity): string {
221+
let title = super.getTitle(verbosity);
222+
223+
const preferredTitle = this.getPreferredTitle();
224+
if (preferredTitle) {
225+
title = `${preferredTitle} (${title})`;
226+
}
227+
228+
return title;
229+
}
230+
231+
protected getPreferredTitle(): string | undefined {
232+
if (this.preferredName && this.preferredDescription) {
233+
return `${this.preferredName} ${this.preferredDescription}`;
234+
}
235+
236+
if (this.preferredName || this.preferredDescription) {
237+
return this.preferredName ?? this.preferredDescription;
238+
}
239+
240+
return undefined;
241+
}
242+
220243
getEncoding(): string | undefined {
221244
if (this.model) {
222245
return this.model.getEncoding();

0 commit comments

Comments
 (0)