Skip to content

Commit 48996f7

Browse files
keerthivasansagjsjohnmurrayjoaomoreno
authored
Workbench actions for Tree Fuzzy Search Toggle (microsoft#175137)
* Workbench actions for Explorer Fuzzy Search Toggle * Update src/vs/workbench/browser/actions/explorerActions.ts Contiguous Spelled wrong Co-authored-by: John Murray <[email protected]> * Update src/vs/workbench/browser/actions/explorerActions.ts Co-authored-by: John Murray <[email protected]> * Update src/vs/workbench/browser/actions/explorerActions.ts Co-authored-by: John Murray <[email protected]> * Fixed Contiguous Switching in all occurrences * workbench fuzzy toggle actions moved to listCommand * cleanup --------- Co-authored-by: John Murray <[email protected]> Co-authored-by: João Moreno <[email protected]>
1 parent 7e2a93a commit 48996f7

File tree

2 files changed

+19
-2
lines changed

2 files changed

+19
-2
lines changed

src/vs/base/browser/ui/tree/asyncDataTree.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { IDragAndDropData } from 'vs/base/browser/dnd';
77
import { IIdentityProvider, IListDragAndDrop, IListDragOverReaction, IListVirtualDelegate } from 'vs/base/browser/ui/list/list';
88
import { ElementsDragAndDropData } from 'vs/base/browser/ui/list/listView';
99
import { IListStyles } from 'vs/base/browser/ui/list/listWidget';
10-
import { ComposedTreeDelegate, TreeFindMode as TreeFindMode, IAbstractTreeOptions, IAbstractTreeOptionsUpdate } from 'vs/base/browser/ui/tree/abstractTree';
10+
import { ComposedTreeDelegate, TreeFindMode as TreeFindMode, IAbstractTreeOptions, IAbstractTreeOptionsUpdate, TreeFindMatchType } from 'vs/base/browser/ui/tree/abstractTree';
1111
import { ICompressedTreeElement, ICompressedTreeNode } from 'vs/base/browser/ui/tree/compressedObjectTreeModel';
1212
import { getVisibleState, isFilterResult } from 'vs/base/browser/ui/tree/indexTreeModel';
1313
import { CompressibleObjectTree, ICompressibleKeyboardNavigationLabelProvider, ICompressibleObjectTreeOptions, ICompressibleTreeRenderer, IObjectTreeOptions, IObjectTreeSetChildrenOptions, ObjectTree } from 'vs/base/browser/ui/tree/objectTree';
@@ -367,6 +367,10 @@ export class AsyncDataTree<TInput, T, TFilterData = void> implements IDisposable
367367
set findMode(mode: TreeFindMode) { this.tree.findMode = mode; }
368368
readonly onDidChangeFindMode: Event<TreeFindMode>;
369369

370+
get findMatchType(): TreeFindMatchType { return this.tree.findMatchType; }
371+
set findMatchType(matchType: TreeFindMatchType) { this.tree.findMatchType = matchType; }
372+
readonly onDidChangeFindMatchType: Event<TreeFindMatchType>;
373+
370374
get expandOnlyOnTwistieClick(): boolean | ((e: T) => boolean) {
371375
if (typeof this.tree.expandOnlyOnTwistieClick === 'boolean') {
372376
return this.tree.expandOnlyOnTwistieClick;
@@ -393,6 +397,7 @@ export class AsyncDataTree<TInput, T, TFilterData = void> implements IDisposable
393397

394398
this.tree = this.createTree(user, container, delegate, renderers, options);
395399
this.onDidChangeFindMode = this.tree.onDidChangeFindMode;
400+
this.onDidChangeFindMatchType = this.tree.onDidChangeFindMatchType;
396401

397402
this.root = createAsyncDataTreeNode({
398403
element: undefined!,

src/vs/workbench/browser/actions/listCommands.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import { DataTree } from 'vs/base/browser/ui/tree/dataTree';
1717
import { ITreeNode } from 'vs/base/browser/ui/tree/tree';
1818
import { CommandsRegistry } from 'vs/platform/commands/common/commands';
1919
import { Table } from 'vs/base/browser/ui/table/tableWidget';
20-
import { AbstractTree, TreeFindMode } from 'vs/base/browser/ui/tree/abstractTree';
20+
import { AbstractTree, TreeFindMatchType, TreeFindMode } from 'vs/base/browser/ui/tree/abstractTree';
2121
import { isActiveElement } from 'vs/base/browser/dom';
2222

2323
function ensureDOMFocus(widget: ListWidget | undefined): void {
@@ -710,6 +710,18 @@ CommandsRegistry.registerCommand({
710710
}
711711
});
712712

713+
CommandsRegistry.registerCommand({
714+
id: 'list.toggleFindMatchType',
715+
handler: (accessor) => {
716+
const widget = accessor.get(IListService).lastFocusedList;
717+
718+
if (widget instanceof AbstractTree || widget instanceof AsyncDataTree) {
719+
const tree = widget;
720+
tree.findMatchType = tree.findMatchType === TreeFindMatchType.Contiguous ? TreeFindMatchType.Fuzzy : TreeFindMatchType.Contiguous;
721+
}
722+
}
723+
});
724+
713725
// Deprecated commands
714726
CommandsRegistry.registerCommandAlias('list.toggleKeyboardNavigation', 'list.triggerTypeNavigation');
715727
CommandsRegistry.registerCommandAlias('list.toggleFilterOnType', 'list.toggleFindMode');

0 commit comments

Comments
 (0)