From cb9524cf4b3252559442979f20cb1c1300b297e8 Mon Sep 17 00:00:00 2001 From: Tyler James Leonhardt Date: Wed, 20 Mar 2024 10:09:14 -0700 Subject: [PATCH] Allow separators to have tooltips & descriptions (#208224) This allows the full-length separators to have tooltips and descriptions. (They had support for tooltips already, but my refactoring to a tree broke that) so really this just adds descriptions and fixes tooltips. Because of this, we now adopt the description in favor of the tooltip for QuickSearch --- src/vs/platform/quickinput/browser/quickInputTree.ts | 8 ++++---- src/vs/platform/quickinput/common/quickInput.ts | 1 + .../browser/quickTextSearch/textSearchQuickAccess.ts | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/vs/platform/quickinput/browser/quickInputTree.ts b/src/vs/platform/quickinput/browser/quickInputTree.ts index 0b64f90f402..c4dc18c2788 100644 --- a/src/vs/platform/quickinput/browser/quickInputTree.ts +++ b/src/vs/platform/quickinput/browser/quickInputTree.ts @@ -110,6 +110,8 @@ class BaseQuickPickItemElement implements IQuickPickElement { saneAriaLabel }; }); + this._saneDescription = mainItem.description; + this._saneTooltip = mainItem.tooltip; } // #region Lazy Getters @@ -144,7 +146,7 @@ class BaseQuickPickItemElement implements IQuickPickElement { this._hidden = value; } - protected _saneDescription?: string; + private _saneDescription?: string; get saneDescription() { return this._saneDescription; } @@ -160,7 +162,7 @@ class BaseQuickPickItemElement implements IQuickPickElement { this._saneDetail = value; } - protected _saneTooltip?: string | IMarkdownString | HTMLElement; + private _saneTooltip?: string | IMarkdownString | HTMLElement; get saneTooltip() { return this._saneTooltip; } @@ -210,9 +212,7 @@ class QuickPickItemElement extends BaseQuickPickItemElement { ? Event.map(Event.filter<{ element: IQuickPickElement; checked: boolean }>(this._onChecked.event, e => e.element === this), e => e.checked) : Event.None; - this._saneDescription = item.description; this._saneDetail = item.detail; - this._saneTooltip = this.item.tooltip; this._labelHighlights = item.highlights?.label; this._descriptionHighlights = item.highlights?.description; this._detailHighlights = item.highlights?.detail; diff --git a/src/vs/platform/quickinput/common/quickInput.ts b/src/vs/platform/quickinput/common/quickInput.ts index 79224918075..820544bcd69 100644 --- a/src/vs/platform/quickinput/common/quickInput.ts +++ b/src/vs/platform/quickinput/common/quickInput.ts @@ -57,6 +57,7 @@ export interface IQuickPickSeparator { type: 'separator'; id?: string; label?: string; + description?: string; ariaLabel?: string; buttons?: readonly IQuickInputButton[]; tooltip?: string | IMarkdownString; diff --git a/src/vs/workbench/contrib/search/browser/quickTextSearch/textSearchQuickAccess.ts b/src/vs/workbench/contrib/search/browser/quickTextSearch/textSearchQuickAccess.ts index 33320b79444..3172a47ff34 100644 --- a/src/vs/workbench/contrib/search/browser/quickTextSearch/textSearchQuickAccess.ts +++ b/src/vs/workbench/contrib/search/browser/quickTextSearch/textSearchQuickAccess.ts @@ -254,7 +254,7 @@ export class TextSearchQuickAccess extends PickerQuickAccessProvider