Skip to content

Commit 7cfac76

Browse files
committed
bulk - add tree keyboard navigation logic
1 parent 973dab0 commit 7cfac76

2 files changed

Lines changed: 18 additions & 3 deletions

File tree

src/vs/workbench/contrib/bulkEdit/browser/bulkEditPane.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import 'vs/css!./bulkEdit';
77
import { WorkbenchAsyncDataTree, TreeResourceNavigator2, IOpenEvent } from 'vs/platform/list/browser/listService';
88
import { WorkspaceEdit } from 'vs/editor/common/modes';
9-
import { BulkEditElement, BulkEditDelegate, TextEditElementRenderer, FileElementRenderer, BulkEditDataSource, BulkEditIdentityProvider, FileElement, TextEditElement, BulkEditAccessibilityProvider, BulkEditAriaProvider, CategoryElementRenderer } from 'vs/workbench/contrib/bulkEdit/browser/bulkEditTree';
9+
import { BulkEditElement, BulkEditDelegate, TextEditElementRenderer, FileElementRenderer, BulkEditDataSource, BulkEditIdentityProvider, FileElement, TextEditElement, BulkEditAccessibilityProvider, BulkEditAriaProvider, CategoryElementRenderer, BulkEditNaviLabelProvider } from 'vs/workbench/contrib/bulkEdit/browser/bulkEditTree';
1010
import { FuzzyScore } from 'vs/base/common/filters';
1111
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
1212
import { registerThemingParticipant, ITheme, ICssStyleCollector } from 'vs/platform/theme/common/themeService';
@@ -119,7 +119,8 @@ export class BulkEditPane extends ViewPane {
119119
ariaProvider: new BulkEditAriaProvider(),
120120
identityProvider: new BulkEditIdentityProvider(),
121121
expandOnlyOnTwistieClick: true,
122-
multipleSelectionSupport: false
122+
multipleSelectionSupport: false,
123+
keyboardNavigationLabelProvider: new BulkEditNaviLabelProvider(),
123124
}
124125
);
125126

src/vs/workbench/contrib/bulkEdit/browser/bulkEditTree.ts

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { FuzzyScore, createMatches } from 'vs/base/common/filters';
99
import { IResourceLabel, ResourceLabels } from 'vs/workbench/browser/labels';
1010
import { URI } from 'vs/base/common/uri';
1111
import { HighlightedLabel, IHighlight } from 'vs/base/browser/ui/highlightedlabel/highlightedLabel';
12-
import { IIdentityProvider, IListVirtualDelegate } from 'vs/base/browser/ui/list/list';
12+
import { IIdentityProvider, IListVirtualDelegate, IKeyboardNavigationLabelProvider } from 'vs/base/browser/ui/list/list';
1313
import { Range } from 'vs/editor/common/core/range';
1414
import * as dom from 'vs/base/browser/dom';
1515
import { ITextModel } from 'vs/editor/common/model';
@@ -22,6 +22,7 @@ import { ILabelService } from 'vs/platform/label/common/label';
2222
import type { IAccessibilityProvider } from 'vs/base/browser/ui/list/listWidget';
2323
import type { IAriaProvider } from 'vs/base/browser/ui/list/listView';
2424
import { IconLabel } from 'vs/base/browser/ui/iconLabel/iconLabel';
25+
import { basename } from 'vs/base/common/resources';
2526

2627
// --- VIEW MODEL
2728

@@ -422,3 +423,16 @@ export class BulkEditDelegate implements IListVirtualDelegate<BulkEditElement> {
422423
}
423424
}
424425
}
426+
427+
428+
export class BulkEditNaviLabelProvider implements IKeyboardNavigationLabelProvider<BulkEditElement> {
429+
430+
getKeyboardNavigationLabel(element: BulkEditElement) {
431+
if (element instanceof FileElement) {
432+
return basename(element.uri);
433+
} else if (element instanceof BulkCategory) {
434+
return element.label;
435+
}
436+
return undefined;
437+
}
438+
}

0 commit comments

Comments
 (0)