|
3 | 3 | * Licensed under the MIT License. See License.txt in the project root for license information. |
4 | 4 | *--------------------------------------------------------------------------------------------*/ |
5 | 5 |
|
6 | | -import { Toggle } from '../../../../../base/browser/ui/toggle/toggle.js'; |
7 | 6 | import { isMacintosh, OperatingSystem } from '../../../../../base/common/platform.js'; |
8 | 7 | import { ITextModel } from '../../../../../editor/common/model.js'; |
9 | 8 | import { IModelService } from '../../../../../editor/common/services/model.js'; |
10 | 9 | import { ITextModelContentProvider, ITextModelService } from '../../../../../editor/common/services/resolverService.js'; |
11 | 10 | import { localize } from '../../../../../nls.js'; |
12 | 11 | 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'; |
14 | 13 | import { ITerminalCommand, TerminalCapability } from '../../../../../platform/terminal/common/capabilities/capabilities.js'; |
15 | 14 | import { collapseTildePath } from '../../../../../platform/terminal/common/terminalEnvironment.js'; |
16 | | -import { asCssVariable, inputActiveOptionBackground, inputActiveOptionBorder, inputActiveOptionForeground } from '../../../../../platform/theme/common/colorRegistry.js'; |
17 | 15 | import { ThemeIcon } from '../../../../../base/common/themables.js'; |
18 | 16 | import { ITerminalInstance } from '../../../terminal/browser/terminal.js'; |
19 | 17 | import { commandHistoryFuzzySearchIcon, commandHistoryOpenFileIcon, commandHistoryOutputIcon, commandHistoryRemoveIcon } from '../../../terminal/browser/terminalIcons.js'; |
@@ -252,25 +250,25 @@ export async function showRunRecentQuickPick( |
252 | 250 | return; |
253 | 251 | } |
254 | 252 | 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 | + }; |
266 | 259 | const outputProvider = disposables.add(instantiationService.createInstance(TerminalOutputProvider)); |
267 | 260 | const quickPick = disposables.add(quickInputService.createQuickPick<Item | IQuickPickItem & { rawLabel: string }>({ useSeparators: true })); |
268 | 261 | const originalItems = items; |
269 | 262 | quickPick.items = [...originalItems]; |
270 | 263 | quickPick.sortByLabel = false; |
271 | 264 | quickPick.placeholder = placeholder; |
272 | 265 | 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 | + })); |
274 | 272 | disposables.add(quickPick.onDidTriggerItemButton(async e => { |
275 | 273 | if (e.button === removeFromCommandHistoryButton) { |
276 | 274 | if (type === 'command') { |
|
0 commit comments