Skip to content

Commit 4b5e072

Browse files
authored
Merge branch 'microsoft:main' into main
2 parents 30821d6 + 36c2c4c commit 4b5e072

2 files changed

Lines changed: 17 additions & 15 deletions

File tree

src/vs/platform/quickinput/common/quickInput.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -844,6 +844,10 @@ export interface IQuickInputButton {
844844
readonly toggle?: { checked: boolean };
845845
}
846846

847+
export interface IQuickInputButtonWithToggle extends IQuickInputButton {
848+
readonly toggle: { checked: boolean };
849+
}
850+
847851
/**
848852
* Represents an event that occurs when a button associated with a quick pick item is clicked.
849853
* @template T - The type of the quick pick item.

src/vs/workbench/contrib/terminalContrib/history/browser/terminalRunRecentQuickPick.ts

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,15 @@
33
* Licensed under the MIT License. See License.txt in the project root for license information.
44
*--------------------------------------------------------------------------------------------*/
55

6-
import { Toggle } from '../../../../../base/browser/ui/toggle/toggle.js';
76
import { isMacintosh, OperatingSystem } from '../../../../../base/common/platform.js';
87
import { ITextModel } from '../../../../../editor/common/model.js';
98
import { IModelService } from '../../../../../editor/common/services/model.js';
109
import { ITextModelContentProvider, ITextModelService } from '../../../../../editor/common/services/resolverService.js';
1110
import { localize } from '../../../../../nls.js';
1211
import { IInstantiationService, ServicesAccessor } from '../../../../../platform/instantiation/common/instantiation.js';
13-
import { IQuickInputButton, IQuickInputService, IQuickPickItem, IQuickPickSeparator } from '../../../../../platform/quickinput/common/quickInput.js';
12+
import { IQuickInputButton, IQuickInputButtonWithToggle, IQuickInputService, IQuickPickItem, IQuickPickSeparator, QuickInputButtonLocation } from '../../../../../platform/quickinput/common/quickInput.js';
1413
import { ITerminalCommand, TerminalCapability } from '../../../../../platform/terminal/common/capabilities/capabilities.js';
1514
import { collapseTildePath } from '../../../../../platform/terminal/common/terminalEnvironment.js';
16-
import { asCssVariable, inputActiveOptionBackground, inputActiveOptionBorder, inputActiveOptionForeground } from '../../../../../platform/theme/common/colorRegistry.js';
1715
import { ThemeIcon } from '../../../../../base/common/themables.js';
1816
import { ITerminalInstance } from '../../../terminal/browser/terminal.js';
1917
import { commandHistoryFuzzySearchIcon, commandHistoryOpenFileIcon, commandHistoryOutputIcon, commandHistoryRemoveIcon } from '../../../terminal/browser/terminalIcons.js';
@@ -252,25 +250,25 @@ export async function showRunRecentQuickPick(
252250
return;
253251
}
254252
const disposables = new DisposableStore();
255-
const fuzzySearchToggle = disposables.add(new Toggle({
256-
title: 'Fuzzy search',
257-
icon: commandHistoryFuzzySearchIcon,
258-
isChecked: filterMode === 'fuzzy',
259-
inputActiveOptionBorder: asCssVariable(inputActiveOptionBorder),
260-
inputActiveOptionForeground: asCssVariable(inputActiveOptionForeground),
261-
inputActiveOptionBackground: asCssVariable(inputActiveOptionBackground)
262-
}));
263-
disposables.add(fuzzySearchToggle.onChange(() => {
264-
instantiationService.invokeFunction(showRunRecentQuickPick, instance, terminalInRunCommandPicker, type, fuzzySearchToggle.checked ? 'fuzzy' : 'contiguous', quickPick.value);
265-
}));
253+
const fuzzySearchButton: IQuickInputButtonWithToggle = {
254+
iconClass: ThemeIcon.asClassName(commandHistoryFuzzySearchIcon),
255+
tooltip: localize('fuzzySearch', "Fuzzy search"),
256+
toggle: { checked: filterMode === 'fuzzy' },
257+
location: QuickInputButtonLocation.Input
258+
};
266259
const outputProvider = disposables.add(instantiationService.createInstance(TerminalOutputProvider));
267260
const quickPick = disposables.add(quickInputService.createQuickPick<Item | IQuickPickItem & { rawLabel: string }>({ useSeparators: true }));
268261
const originalItems = items;
269262
quickPick.items = [...originalItems];
270263
quickPick.sortByLabel = false;
271264
quickPick.placeholder = placeholder;
272265
quickPick.matchOnLabelMode = filterMode || 'contiguous';
273-
quickPick.toggles = [fuzzySearchToggle];
266+
quickPick.buttons = [fuzzySearchButton];
267+
disposables.add(quickPick.onDidTriggerButton((button) => {
268+
if (button === fuzzySearchButton) {
269+
instantiationService.invokeFunction(showRunRecentQuickPick, instance, terminalInRunCommandPicker, type, fuzzySearchButton.toggle.checked ? 'fuzzy' : 'contiguous', quickPick.value);
270+
}
271+
}));
274272
disposables.add(quickPick.onDidTriggerItemButton(async e => {
275273
if (e.button === removeFromCommandHistoryButton) {
276274
if (type === 'command') {

0 commit comments

Comments
 (0)