diff --git a/src/vs/base/parts/quickinput/common/quickInput.ts b/src/vs/base/parts/quickinput/common/quickInput.ts index 34e45f3f04f..1cbbba363f0 100644 --- a/src/vs/base/parts/quickinput/common/quickInput.ts +++ b/src/vs/base/parts/quickinput/common/quickInput.ts @@ -342,6 +342,7 @@ export interface IQuickPick extends IQuickInput { hideCheckAll: boolean; + // TODO: Fix layering issue additionalToggles: Toggle[] | undefined; } diff --git a/src/vs/platform/quickinput/browser/quickPickPin.ts b/src/vs/platform/quickinput/browser/quickPickPin.ts index 2a11f8fb282..eaf1be4b785 100644 --- a/src/vs/platform/quickinput/browser/quickPickPin.ts +++ b/src/vs/platform/quickinput/browser/quickPickPin.ts @@ -19,18 +19,22 @@ const buttonClasses = [pinButtonClass, pinnedButtonClass]; * Shows the quickpick once formatted. */ export async function showWithPinnedItems(storageService: IStorageService, storageKey: string, quickPick: IQuickPick, filterDuplicates?: boolean): Promise { + const itemsWithoutPinned = quickPick.items; + let itemsWithPinned = _formatPinnedItems(storageKey, quickPick, storageService, undefined, filterDuplicates); quickPick.onDidTriggerItemButton(async buttonEvent => { const expectedButton = buttonEvent.button.iconClass && buttonClasses.includes(buttonEvent.button.iconClass); if (expectedButton) { - quickPick.items = await _formatPinnedItems(storageKey, quickPick, storageService, buttonEvent.item, filterDuplicates); + quickPick.items = itemsWithoutPinned; + itemsWithPinned = _formatPinnedItems(storageKey, quickPick, storageService, buttonEvent.item, filterDuplicates); + quickPick.items = quickPick.value ? itemsWithoutPinned : itemsWithPinned; } }); quickPick.onDidChangeValue(async value => { - // don't show pinned items in the search results - quickPick.items = value ? quickPick.items.filter(i => i.type !== 'separator' && !i.buttons?.find(b => b.iconClass === pinnedButtonClass)) : quickPick.items; + // Return pinned items if there is no search value + quickPick.items = value ? itemsWithoutPinned : itemsWithPinned; }); - quickPick.items = await _formatPinnedItems(storageKey, quickPick, storageService, undefined, filterDuplicates); - await quickPick.show(); + quickPick.items = quickPick.value ? itemsWithoutPinned : itemsWithPinned; + quickPick.show(); } function _formatPinnedItems(storageKey: string, quickPick: IQuickPick, storageService: IStorageService, changedItem?: IQuickPickItem, filterDuplicates?: boolean): QuickPickItem[] { diff --git a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts index f5281372c82..06900b4f626 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts @@ -1011,7 +1011,6 @@ export class TerminalInstance extends Disposable implements ITerminalInstance { if (items.length === 0) { return; } - // TODO: Toggling fuzzy shows pinned again const fuzzySearchToggle = new Toggle({ title: 'Fuzzy search', icon: Codicon.searchFuzzy,