monaco-editor-core 0.55.0-dev-20251106 → 0.55.0-rc
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/nls.keys.json +1 -1
- package/esm/nls.messages.cs.js +2 -2
- package/esm/nls.messages.de.js +2 -2
- package/esm/nls.messages.es.js +2 -2
- package/esm/nls.messages.fr.js +2 -2
- package/esm/nls.messages.it.js +2 -2
- package/esm/nls.messages.ja.js +2 -2
- package/esm/nls.messages.js +1 -1
- package/esm/nls.messages.json +1 -1
- package/esm/nls.messages.ko.js +2 -2
- package/esm/nls.messages.pl.js +2 -2
- package/esm/nls.messages.pt-br.js +2 -2
- package/esm/nls.messages.ru.js +2 -2
- package/esm/nls.messages.tr.js +2 -2
- package/esm/nls.messages.zh-cn.js +2 -2
- package/esm/nls.messages.zh-tw.js +2 -2
- package/esm/nls.metadata.json +0 -6
- package/esm/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
- package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/copySelection.js +24 -83
- package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/copySelection.js.map +1 -1
- package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/diffEditorViewZones.js +1 -1
- package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/diffEditorViewZones.js.map +1 -1
- package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/inlineDiffDeletedCodeMargin.js +13 -17
- package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/inlineDiffDeletedCodeMargin.js.map +1 -1
- package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/renderLines.js +81 -9
- package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/renderLines.js.map +1 -1
- package/esm/vs/editor/browser/widget/diffEditor/diffEditor.contribution.js +5 -5
- package/esm/vs/editor/browser/widget/diffEditor/features/hideUnchangedRegionsFeature.js +7 -7
- package/esm/vs/editor/browser/widget/diffEditor/features/movedBlocksLinesFeature.js +2 -2
- package/esm/vs/editor/browser/widget/diffEditor/features/revertButtonsFeature.js +2 -2
- package/esm/vs/editor/browser/widget/diffEditor/registrations.contribution.js +5 -5
- package/esm/vs/editor/browser/widget/multiDiffEditor/colors.js +3 -3
- package/esm/vs/editor/browser/widget/multiDiffEditor/diffEditorItemTemplate.js +1 -1
- package/esm/vs/editor/browser/widget/multiDiffEditor/diffEditorItemTemplate.js.map +1 -1
- package/esm/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidgetImpl.js +2 -2
- package/esm/vs/editor/common/config/editorConfigurationSchema.js +54 -54
- package/esm/vs/editor/common/config/editorOptions.js +407 -407
- package/esm/vs/editor/common/config/editorOptions.js.map +1 -1
- package/esm/vs/editor/common/core/editorColorRegistry.js +68 -68
- package/esm/vs/editor/common/editorContextKeys.js +47 -47
- package/esm/vs/editor/common/languages/modesRegistry.js +1 -1
- package/esm/vs/editor/common/languages.js +56 -56
- package/esm/vs/editor/common/model/editStack.js +1 -1
- package/esm/vs/editor/common/standaloneStrings.js +10 -10
- package/esm/vs/editor/common/textModelEditSource.js +2 -2
- package/esm/vs/editor/common/textModelEditSource.js.map +1 -1
- package/esm/vs/editor/common/viewLayout/viewLineRenderer.js +2 -2
- package/esm/vs/editor/contrib/anchorSelect/browser/anchorSelect.js +6 -6
- package/esm/vs/editor/contrib/bracketMatching/browser/bracketMatching.js +6 -6
- package/esm/vs/editor/contrib/caretOperations/browser/caretOperations.js +2 -2
- package/esm/vs/editor/contrib/caretOperations/browser/transpose.js +1 -1
- package/esm/vs/editor/contrib/clipboard/browser/clipboard.js +17 -17
- package/esm/vs/editor/contrib/codeAction/browser/codeAction.js +1 -1
- package/esm/vs/editor/contrib/codeAction/browser/codeActionCommands.js +29 -29
- package/esm/vs/editor/contrib/codeAction/browser/codeActionContributions.js +3 -3
- package/esm/vs/editor/contrib/codeAction/browser/codeActionController.js +3 -3
- package/esm/vs/editor/contrib/codeAction/browser/codeActionMenu.js +8 -8
- package/esm/vs/editor/contrib/codeAction/browser/lightBulbWidget.js +9 -9
- package/esm/vs/editor/contrib/codelens/browser/codelensController.js +2 -2
- package/esm/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerCloseButton.js +1 -1
- package/esm/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerHeader.js +1 -1
- package/esm/vs/editor/contrib/colorPicker/browser/hoverColorPicker/hoverColorPickerParticipant.js +1 -1
- package/esm/vs/editor/contrib/colorPicker/browser/standaloneColorPicker/standaloneColorPickerActions.js +7 -7
- package/esm/vs/editor/contrib/comment/browser/comment.js +6 -6
- package/esm/vs/editor/contrib/contextmenu/browser/contextmenu.js +10 -10
- package/esm/vs/editor/contrib/cursorUndo/browser/cursorUndo.js +2 -2
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js +4 -4
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js +9 -9
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/defaultProviders.js +8 -8
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController.js +3 -3
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/postEditWidget.js +2 -2
- package/esm/vs/editor/contrib/editorState/browser/keybindingCancellation.js +1 -1
- package/esm/vs/editor/contrib/find/browser/findController.js +16 -16
- package/esm/vs/editor/contrib/find/browser/findWidget.js +26 -26
- package/esm/vs/editor/contrib/folding/browser/folding.js +20 -20
- package/esm/vs/editor/contrib/folding/browser/folding.js.map +1 -1
- package/esm/vs/editor/contrib/folding/browser/foldingDecorations.js +9 -9
- package/esm/vs/editor/contrib/fontZoom/browser/fontZoom.js +3 -3
- package/esm/vs/editor/contrib/format/browser/format.js +3 -7
- package/esm/vs/editor/contrib/format/browser/format.js.map +1 -1
- package/esm/vs/editor/contrib/format/browser/formatActions.js +2 -2
- package/esm/vs/editor/contrib/gotoError/browser/gotoError.js +8 -8
- package/esm/vs/editor/contrib/gotoError/browser/gotoErrorWidget.js +14 -14
- package/esm/vs/editor/contrib/gotoSymbol/browser/goToCommands.js +39 -39
- package/esm/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js +1 -1
- package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesController.js +3 -3
- package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesTree.js +3 -3
- package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget.js +3 -3
- package/esm/vs/editor/contrib/gotoSymbol/browser/referencesModel.js +8 -8
- package/esm/vs/editor/contrib/gotoSymbol/browser/symbolNavigation.js +3 -3
- package/esm/vs/editor/contrib/gpu/browser/gpuActions.js +4 -4
- package/esm/vs/editor/contrib/hover/browser/hoverActionIds.js +2 -2
- package/esm/vs/editor/contrib/hover/browser/hoverActions.js +24 -24
- package/esm/vs/editor/contrib/hover/browser/hoverCopyButton.js +2 -2
- package/esm/vs/editor/contrib/hover/browser/markdownHoverParticipant.js +9 -9
- package/esm/vs/editor/contrib/hover/browser/markerHoverParticipant.js +5 -5
- package/esm/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace.js +2 -2
- package/esm/vs/editor/contrib/indentation/browser/indentation.js +20 -20
- package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsHover.js +8 -8
- package/esm/vs/editor/contrib/inlineCompletions/browser/controller/commands.js +20 -20
- package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionContextKeys.js +12 -12
- package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/hoverParticipant.js +2 -2
- package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/inlineCompletionsHintsWidget.js +5 -5
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorMenu.js +6 -6
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsModel.js +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/theme.js +20 -20
- package/esm/vs/editor/contrib/insertFinalNewLine/browser/insertFinalNewLine.js +1 -1
- package/esm/vs/editor/contrib/lineSelection/browser/lineSelection.js +1 -1
- package/esm/vs/editor/contrib/linesOperations/browser/linesOperations.js +31 -31
- package/esm/vs/editor/contrib/linkedEditing/browser/linkedEditing.js +2 -2
- package/esm/vs/editor/contrib/links/browser/links.js +10 -10
- package/esm/vs/editor/contrib/message/browser/messageController.js +1 -1
- package/esm/vs/editor/contrib/multicursor/browser/multicursor.js +22 -22
- package/esm/vs/editor/contrib/parameterHints/browser/parameterHints.js +1 -1
- package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +4 -4
- package/esm/vs/editor/contrib/peekView/browser/peekView.js +18 -18
- package/esm/vs/editor/contrib/placeholderText/browser/placeholderText.contribution.js +1 -1
- package/esm/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js +10 -10
- package/esm/vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess.js +32 -32
- package/esm/vs/editor/contrib/readOnlyMessage/browser/contribution.js +2 -2
- package/esm/vs/editor/contrib/rename/browser/rename.js +11 -11
- package/esm/vs/editor/contrib/rename/browser/renameWidget.js +7 -7
- package/esm/vs/editor/contrib/smartSelect/browser/smartSelect.js +4 -4
- package/esm/vs/editor/contrib/snippet/browser/snippetController2.js +4 -4
- package/esm/vs/editor/contrib/snippet/browser/snippetVariables.js +4 -4
- package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollActions.js +11 -11
- package/esm/vs/editor/contrib/suggest/browser/suggest.js +8 -8
- package/esm/vs/editor/contrib/suggest/browser/suggestController.js +10 -10
- package/esm/vs/editor/contrib/suggest/browser/suggestWidget.js +17 -17
- package/esm/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js +2 -2
- package/esm/vs/editor/contrib/suggest/browser/suggestWidgetRenderer.js +2 -2
- package/esm/vs/editor/contrib/suggest/browser/wordContextKey.js +1 -1
- package/esm/vs/editor/contrib/symbolIcons/browser/symbolIcons.js +33 -33
- package/esm/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js +4 -4
- package/esm/vs/editor/contrib/tokenization/browser/tokenization.js +1 -1
- package/esm/vs/editor/contrib/unicodeHighlighter/browser/bannerController.js +1 -1
- package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +24 -24
- package/esm/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js +5 -5
- package/esm/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.js +9 -9
- package/esm/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js +3 -3
- package/esm/vs/editor/contrib/wordOperations/browser/wordOperations.js +1 -1
- package/esm/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js +62 -62
- package/esm/vs/platform/action/common/actionCommonCategories.js +6 -6
- package/esm/vs/platform/actionWidget/browser/actionList.js +4 -4
- package/esm/vs/platform/actionWidget/browser/actionWidget.js +7 -7
- package/esm/vs/platform/actions/browser/menuEntryActionViewItem.js +5 -5
- package/esm/vs/platform/actions/browser/toolbar.js +2 -2
- package/esm/vs/platform/actions/common/menuService.js +2 -2
- package/esm/vs/platform/configuration/common/configurationRegistry.js +10 -10
- package/esm/vs/platform/contextkey/browser/contextKeyService.js +1 -1
- package/esm/vs/platform/contextkey/common/contextkey.js +9 -9
- package/esm/vs/platform/contextkey/common/contextkeys.js +9 -9
- package/esm/vs/platform/contextkey/common/scanner.js +5 -5
- package/esm/vs/platform/history/browser/contextScopedHistoryWidget.js +1 -1
- package/esm/vs/platform/hover/browser/hoverWidget.js +1 -1
- package/esm/vs/platform/hover/browser/updatableHoverWidget.js +1 -1
- package/esm/vs/platform/keybinding/common/abstractKeybindingService.js +4 -4
- package/esm/vs/platform/list/browser/listService.js +29 -29
- package/esm/vs/platform/list/browser/listService.js.map +1 -1
- package/esm/vs/platform/markers/common/markerService.js +2 -2
- package/esm/vs/platform/markers/common/markers.js +6 -6
- package/esm/vs/platform/quickinput/browser/commandsQuickAccess.js +7 -7
- package/esm/vs/platform/quickinput/browser/helpQuickAccess.js +1 -1
- package/esm/vs/platform/quickinput/browser/quickInput.js +10 -10
- package/esm/vs/platform/quickinput/browser/quickInputActions.js +5 -5
- package/esm/vs/platform/quickinput/browser/quickInputController.js +6 -6
- package/esm/vs/platform/quickinput/browser/quickInputList.js +1 -1
- package/esm/vs/platform/quickinput/browser/quickInputUtils.js +1 -1
- package/esm/vs/platform/quickinput/browser/tree/quickInputTreeAccessibilityProvider.js +1 -1
- package/esm/vs/platform/theme/common/colorUtils.js +2 -2
- package/esm/vs/platform/theme/common/colors/baseColors.js +17 -17
- package/esm/vs/platform/theme/common/colors/chartsColors.js +8 -8
- package/esm/vs/platform/theme/common/colors/editorColors.js +95 -95
- package/esm/vs/platform/theme/common/colors/inputColors.js +47 -47
- package/esm/vs/platform/theme/common/colors/listColors.js +36 -36
- package/esm/vs/platform/theme/common/colors/menuColors.js +7 -7
- package/esm/vs/platform/theme/common/colors/minimapColors.js +11 -11
- package/esm/vs/platform/theme/common/colors/miscColors.js +16 -16
- package/esm/vs/platform/theme/common/colors/quickpickColors.js +9 -9
- package/esm/vs/platform/theme/common/colors/searchColors.js +3 -3
- package/esm/vs/platform/theme/common/iconRegistry.js +6 -6
- package/esm/vs/platform/undoRedo/common/undoRedoService.js +20 -20
- package/esm/vs/platform/workspace/common/workspace.js +1 -1
- package/package.json +2 -2
- package/version.txt +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["vs/platform/list/browser/listService.ts"],"names":[],"mappings":"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","file":"listService.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { isActiveElement, isKeyboardEvent } from '../../../base/browser/dom.js';\nimport { IContextViewProvider } from '../../../base/browser/ui/contextview/contextview.js';\nimport { IListMouseEvent, IListRenderer, IListTouchEvent, IListVirtualDelegate } from '../../../base/browser/ui/list/list.js';\nimport { IPagedListOptions, IPagedRenderer, PagedList } from '../../../base/browser/ui/list/listPaging.js';\nimport { IKeyboardNavigationEventFilter, IListAccessibilityProvider, IListOptions, IListOptionsUpdate, IListStyles, IMultipleSelectionController, isSelectionRangeChangeEvent, isSelectionSingleChangeEvent, List, TypeNavigationMode } from '../../../base/browser/ui/list/listWidget.js';\nimport { ITableColumn, ITableRenderer, ITableVirtualDelegate } from '../../../base/browser/ui/table/table.js';\nimport { ITableOptions, ITableOptionsUpdate, ITableStyles, Table } from '../../../base/browser/ui/table/tableWidget.js';\nimport { IAbstractTreeOptions, IAbstractTreeOptionsUpdate, RenderIndentGuides, TreeFindMatchType, TreeFindMode } from '../../../base/browser/ui/tree/abstractTree.js';\nimport { AsyncDataTree, CompressibleAsyncDataTree, IAsyncDataTreeOptions, IAsyncDataTreeOptionsUpdate, ICompressibleAsyncDataTreeOptions, ICompressibleAsyncDataTreeOptionsUpdate, ITreeCompressionDelegate } from '../../../base/browser/ui/tree/asyncDataTree.js';\nimport { DataTree, IDataTreeOptions } from '../../../base/browser/ui/tree/dataTree.js';\nimport { CompressibleObjectTree, ICompressibleObjectTreeOptions, ICompressibleObjectTreeOptionsUpdate, ICompressibleTreeRenderer, IObjectTreeOptions, ObjectTree } from '../../../base/browser/ui/tree/objectTree.js';\nimport { IAsyncDataSource, IDataSource, ITreeEvent, ITreeRenderer } from '../../../base/browser/ui/tree/tree.js';\nimport { Emitter, Event } from '../../../base/common/event.js';\nimport { combinedDisposable, Disposable, DisposableStore, dispose, IDisposable, toDisposable } from '../../../base/common/lifecycle.js';\nimport { localize } from '../../../nls.js';\nimport { IConfigurationService } from '../../configuration/common/configuration.js';\nimport { Extensions as ConfigurationExtensions, IConfigurationRegistry } from '../../configuration/common/configurationRegistry.js';\nimport { ContextKeyExpr, IContextKey, IContextKeyService, IScopedContextKeyService, RawContextKey } from '../../contextkey/common/contextkey.js';\nimport { InputFocusedContextKey } from '../../contextkey/common/contextkeys.js';\nimport { IContextViewService } from '../../contextview/browser/contextView.js';\nimport { IEditorOptions } from '../../editor/common/editor.js';\nimport { createDecorator, IInstantiationService, ServicesAccessor } from '../../instantiation/common/instantiation.js';\nimport { IKeybindingService } from '../../keybinding/common/keybinding.js';\nimport { ResultKind } from '../../keybinding/common/keybindingResolver.js';\nimport { Registry } from '../../registry/common/platform.js';\nimport { defaultFindWidgetStyles, defaultListStyles, getListStyles, IStyleOverride } from '../../theme/browser/defaultStyles.js';\n\nexport type ListWidget = List<any> | PagedList<any> | ObjectTree<any, any> | DataTree<any, any, any> | AsyncDataTree<any, any, any> | Table<any>;\nexport type WorkbenchListWidget = WorkbenchList<any> | WorkbenchPagedList<any> | WorkbenchObjectTree<any, any> | WorkbenchCompressibleObjectTree<any, any> | WorkbenchDataTree<any, any, any> | WorkbenchAsyncDataTree<any, any, any> | WorkbenchCompressibleAsyncDataTree<any, any, any> | WorkbenchTable<any>;\n\nexport const IListService = createDecorator<IListService>('listService');\n\nexport interface IListService {\n\n\treadonly _serviceBrand: undefined;\n\n\t/**\n\t * Returns the currently focused list widget if any.\n\t */\n\treadonly lastFocusedList: WorkbenchListWidget | undefined;\n}\n\ninterface IRegisteredList {\n\twidget: WorkbenchListWidget;\n\textraContextKeys?: (IContextKey<boolean>)[];\n}\n\nexport class ListService implements IListService {\n\n\tdeclare readonly _serviceBrand: undefined;\n\n\tprivate readonly disposables = new DisposableStore();\n\tprivate lists: IRegisteredList[] = [];\n\tprivate _lastFocusedWidget: WorkbenchListWidget | undefined = undefined;\n\n\tget lastFocusedList(): WorkbenchListWidget | undefined {\n\t\treturn this._lastFocusedWidget;\n\t}\n\n\tconstructor() { }\n\n\tprivate setLastFocusedList(widget: WorkbenchListWidget | undefined): void {\n\t\tif (widget === this._lastFocusedWidget) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._lastFocusedWidget?.getHTMLElement().classList.remove('last-focused');\n\t\tthis._lastFocusedWidget = widget;\n\t\tthis._lastFocusedWidget?.getHTMLElement().classList.add('last-focused');\n\t}\n\n\tregister(widget: WorkbenchListWidget, extraContextKeys?: (IContextKey<boolean>)[]): IDisposable {\n\t\tif (this.lists.some(l => l.widget === widget)) {\n\t\t\tthrow new Error('Cannot register the same widget multiple times');\n\t\t}\n\n\t\t// Keep in our lists list\n\t\tconst registeredList: IRegisteredList = { widget, extraContextKeys };\n\t\tthis.lists.push(registeredList);\n\n\t\t// Check for currently being focused\n\t\tif (isActiveElement(widget.getHTMLElement())) {\n\t\t\tthis.setLastFocusedList(widget);\n\t\t}\n\n\t\treturn combinedDisposable(\n\t\t\twidget.onDidFocus(() => this.setLastFocusedList(widget)),\n\t\t\ttoDisposable(() => this.lists.splice(this.lists.indexOf(registeredList), 1)),\n\t\t\twidget.onDidDispose(() => {\n\t\t\t\tthis.lists = this.lists.filter(l => l !== registeredList);\n\t\t\t\tif (this._lastFocusedWidget === widget) {\n\t\t\t\t\tthis.setLastFocusedList(undefined);\n\t\t\t\t}\n\t\t\t})\n\t\t);\n\t}\n\n\tdispose(): void {\n\t\tthis.disposables.dispose();\n\t}\n}\n\nexport const RawWorkbenchListScrollAtBoundaryContextKey = new RawContextKey<'none' | 'top' | 'bottom' | 'both'>('listScrollAtBoundary', 'none');\nexport const WorkbenchListScrollAtTopContextKey = ContextKeyExpr.or(\n\tRawWorkbenchListScrollAtBoundaryContextKey.isEqualTo('top'),\n\tRawWorkbenchListScrollAtBoundaryContextKey.isEqualTo('both'));\nexport const WorkbenchListScrollAtBottomContextKey = ContextKeyExpr.or(\n\tRawWorkbenchListScrollAtBoundaryContextKey.isEqualTo('bottom'),\n\tRawWorkbenchListScrollAtBoundaryContextKey.isEqualTo('both'));\n\nexport const RawWorkbenchListFocusContextKey = new RawContextKey<boolean>('listFocus', true);\nexport const WorkbenchTreeStickyScrollFocused = new RawContextKey<boolean>('treestickyScrollFocused', false);\nexport const WorkbenchListSupportsMultiSelectContextKey = new RawContextKey<boolean>('listSupportsMultiselect', true);\nexport const WorkbenchListFocusContextKey = ContextKeyExpr.and(RawWorkbenchListFocusContextKey, ContextKeyExpr.not(InputFocusedContextKey), WorkbenchTreeStickyScrollFocused.negate());\nexport const WorkbenchListHasSelectionOrFocus = new RawContextKey<boolean>('listHasSelectionOrFocus', false);\nexport const WorkbenchListDoubleSelection = new RawContextKey<boolean>('listDoubleSelection', false);\nexport const WorkbenchListMultiSelection = new RawContextKey<boolean>('listMultiSelection', false);\nexport const WorkbenchListSelectionNavigation = new RawContextKey<boolean>('listSelectionNavigation', false);\nexport const WorkbenchListSupportsFind = new RawContextKey<boolean>('listSupportsFind', true);\nexport const WorkbenchTreeElementCanCollapse = new RawContextKey<boolean>('treeElementCanCollapse', false);\nexport const WorkbenchTreeElementHasParent = new RawContextKey<boolean>('treeElementHasParent', false);\nexport const WorkbenchTreeElementCanExpand = new RawContextKey<boolean>('treeElementCanExpand', false);\nexport const WorkbenchTreeElementHasChild = new RawContextKey<boolean>('treeElementHasChild', false);\nexport const WorkbenchTreeFindOpen = new RawContextKey<boolean>('treeFindOpen', false);\nconst WorkbenchListTypeNavigationModeKey = 'listTypeNavigationMode';\n\n/**\n * @deprecated in favor of WorkbenchListTypeNavigationModeKey\n */\nconst WorkbenchListAutomaticKeyboardNavigationLegacyKey = 'listAutomaticKeyboardNavigation';\n\nfunction createScopedContextKeyService(contextKeyService: IContextKeyService, widget: ListWidget): IScopedContextKeyService {\n\tconst result = contextKeyService.createScoped(widget.getHTMLElement());\n\tRawWorkbenchListFocusContextKey.bindTo(result);\n\treturn result;\n}\n\n// Note: We must declare IScrollObservarable as the arithmetic of concrete classes,\n// instead of object type like { onDidScroll: Event<any>; ... }. The latter will not mark\n// those properties as referenced during tree-shaking, causing them to be shaked away.\ntype IScrollObservarable = Exclude<WorkbenchListWidget, WorkbenchPagedList<any>> | List<any>;\n\nfunction createScrollObserver(contextKeyService: IContextKeyService, widget: IScrollObservarable): IDisposable {\n\tconst listScrollAt = RawWorkbenchListScrollAtBoundaryContextKey.bindTo(contextKeyService);\n\tconst update = () => {\n\t\tconst atTop = widget.scrollTop === 0;\n\n\t\t// We need a threshold `1` since scrollHeight is rounded.\n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight#determine_if_an_element_has_been_totally_scrolled\n\t\tconst atBottom = widget.scrollHeight - widget.renderHeight - widget.scrollTop < 1;\n\t\tif (atTop && atBottom) {\n\t\t\tlistScrollAt.set('both');\n\t\t} else if (atTop) {\n\t\t\tlistScrollAt.set('top');\n\t\t} else if (atBottom) {\n\t\t\tlistScrollAt.set('bottom');\n\t\t} else {\n\t\t\tlistScrollAt.set('none');\n\t\t}\n\t};\n\tupdate();\n\treturn widget.onDidScroll(update);\n}\n\nconst multiSelectModifierSettingKey = 'workbench.list.multiSelectModifier';\nconst openModeSettingKey = 'workbench.list.openMode';\nconst horizontalScrollingKey = 'workbench.list.horizontalScrolling';\nconst defaultFindModeSettingKey = 'workbench.list.defaultFindMode';\nconst typeNavigationModeSettingKey = 'workbench.list.typeNavigationMode';\n/** @deprecated in favor of `workbench.list.defaultFindMode` and `workbench.list.typeNavigationMode` */\nconst keyboardNavigationSettingKey = 'workbench.list.keyboardNavigation';\nconst scrollByPageKey = 'workbench.list.scrollByPage';\nconst defaultFindMatchTypeSettingKey = 'workbench.list.defaultFindMatchType';\nconst treeIndentKey = 'workbench.tree.indent';\nconst treeRenderIndentGuidesKey = 'workbench.tree.renderIndentGuides';\nconst listSmoothScrolling = 'workbench.list.smoothScrolling';\nconst mouseWheelScrollSensitivityKey = 'workbench.list.mouseWheelScrollSensitivity';\nconst fastScrollSensitivityKey = 'workbench.list.fastScrollSensitivity';\nconst treeExpandMode = 'workbench.tree.expandMode';\nconst treeStickyScroll = 'workbench.tree.enableStickyScroll';\nconst treeStickyScrollMaxElements = 'workbench.tree.stickyScrollMaxItemCount';\n\nfunction useAltAsMultipleSelectionModifier(configurationService: IConfigurationService): boolean {\n\treturn configurationService.getValue(multiSelectModifierSettingKey) === 'alt';\n}\n\nclass MultipleSelectionController<T> extends Disposable implements IMultipleSelectionController<T> {\n\tprivate useAltAsMultipleSelectionModifier: boolean;\n\n\tconstructor(private configurationService: IConfigurationService) {\n\t\tsuper();\n\n\t\tthis.useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n\n\t\tthis.registerListeners();\n\t}\n\n\tprivate registerListeners(): void {\n\t\tthis._register(this.configurationService.onDidChangeConfiguration(e => {\n\t\t\tif (e.affectsConfiguration(multiSelectModifierSettingKey)) {\n\t\t\t\tthis.useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(this.configurationService);\n\t\t\t}\n\t\t}));\n\t}\n\n\tisSelectionSingleChangeEvent(event: IListMouseEvent<T> | IListTouchEvent<T>): boolean {\n\t\tif (this.useAltAsMultipleSelectionModifier) {\n\t\t\treturn event.browserEvent.altKey;\n\t\t}\n\n\t\treturn isSelectionSingleChangeEvent(event);\n\t}\n\n\tisSelectionRangeChangeEvent(event: IListMouseEvent<T> | IListTouchEvent<T>): boolean {\n\t\treturn isSelectionRangeChangeEvent(event);\n\t}\n}\n\nfunction toWorkbenchListOptions<T>(\n\taccessor: ServicesAccessor,\n\toptions: IListOptions<T>,\n): [IListOptions<T>, IDisposable] {\n\tconst configurationService = accessor.get(IConfigurationService);\n\tconst keybindingService = accessor.get(IKeybindingService);\n\n\tconst disposables = new DisposableStore();\n\tconst result: IListOptions<T> = {\n\t\t...options,\n\t\tkeyboardNavigationDelegate: { mightProducePrintableCharacter(e) { return keybindingService.mightProducePrintableCharacter(e); } },\n\t\tsmoothScrolling: Boolean(configurationService.getValue(listSmoothScrolling)),\n\t\tmouseWheelScrollSensitivity: configurationService.getValue<number>(mouseWheelScrollSensitivityKey),\n\t\tfastScrollSensitivity: configurationService.getValue<number>(fastScrollSensitivityKey),\n\t\tmultipleSelectionController: options.multipleSelectionController ?? disposables.add(new MultipleSelectionController(configurationService)),\n\t\tkeyboardNavigationEventFilter: createKeyboardNavigationEventFilter(keybindingService),\n\t\tscrollByPage: Boolean(configurationService.getValue(scrollByPageKey))\n\t};\n\n\treturn [result, disposables];\n}\n\nexport interface IWorkbenchListOptionsUpdate extends IListOptionsUpdate {\n\treadonly overrideStyles?: IStyleOverride<IListStyles>;\n}\n\nexport interface IWorkbenchListOptions<T> extends IWorkbenchListOptionsUpdate, IResourceNavigatorOptions, IListOptions<T> {\n\treadonly selectionNavigation?: boolean;\n}\n\nexport class WorkbenchList<T> extends List<T> {\n\n\treadonly contextKeyService: IScopedContextKeyService;\n\tprivate listSupportsMultiSelect: IContextKey<boolean>;\n\tprivate listHasSelectionOrFocus: IContextKey<boolean>;\n\tprivate listDoubleSelection: IContextKey<boolean>;\n\tprivate listMultiSelection: IContextKey<boolean>;\n\tprivate horizontalScrolling: boolean | undefined;\n\tprivate _useAltAsMultipleSelectionModifier: boolean;\n\tprivate navigator: ListResourceNavigator<T>;\n\n\tconstructor(\n\t\tuser: string,\n\t\tcontainer: HTMLElement,\n\t\tdelegate: IListVirtualDelegate<T>,\n\t\trenderers: IListRenderer<T, any>[],\n\t\toptions: IWorkbenchListOptions<T>,\n\t\t@IContextKeyService contextKeyService: IContextKeyService,\n\t\t@IListService listService: IListService,\n\t\t@IConfigurationService configurationService: IConfigurationService,\n\t\t@IInstantiationService instantiationService: IInstantiationService\n\t) {\n\t\tconst horizontalScrolling = typeof options.horizontalScrolling !== 'undefined' ? options.horizontalScrolling : Boolean(configurationService.getValue(horizontalScrollingKey));\n\t\tconst [workbenchListOptions, workbenchListOptionsDisposable] = instantiationService.invokeFunction(toWorkbenchListOptions, options);\n\n\t\tsuper(user, container, delegate, renderers,\n\t\t\t{\n\t\t\t\tkeyboardSupport: false,\n\t\t\t\t...workbenchListOptions,\n\t\t\t\thorizontalScrolling,\n\t\t\t}\n\t\t);\n\n\t\tthis.disposables.add(workbenchListOptionsDisposable);\n\n\t\tthis.contextKeyService = createScopedContextKeyService(contextKeyService, this);\n\n\t\tthis.disposables.add(createScrollObserver(this.contextKeyService, this));\n\n\t\tthis.listSupportsMultiSelect = WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService);\n\t\tthis.listSupportsMultiSelect.set(options.multipleSelectionSupport !== false);\n\n\t\tconst listSelectionNavigation = WorkbenchListSelectionNavigation.bindTo(this.contextKeyService);\n\t\tlistSelectionNavigation.set(Boolean(options.selectionNavigation));\n\n\t\tthis.listHasSelectionOrFocus = WorkbenchListHasSelectionOrFocus.bindTo(this.contextKeyService);\n\t\tthis.listDoubleSelection = WorkbenchListDoubleSelection.bindTo(this.contextKeyService);\n\t\tthis.listMultiSelection = WorkbenchListMultiSelection.bindTo(this.contextKeyService);\n\t\tthis.horizontalScrolling = options.horizontalScrolling;\n\n\t\tthis._useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n\n\t\tthis.disposables.add(this.contextKeyService);\n\t\tthis.disposables.add((listService as ListService).register(this));\n\n\t\tthis.updateStyles(options.overrideStyles);\n\n\t\tthis.disposables.add(this.onDidChangeSelection(() => {\n\t\t\tconst selection = this.getSelection();\n\t\t\tconst focus = this.getFocus();\n\n\t\t\tthis.contextKeyService.bufferChangeEvents(() => {\n\t\t\t\tthis.listHasSelectionOrFocus.set(selection.length > 0 || focus.length > 0);\n\t\t\t\tthis.listMultiSelection.set(selection.length > 1);\n\t\t\t\tthis.listDoubleSelection.set(selection.length === 2);\n\t\t\t});\n\t\t}));\n\t\tthis.disposables.add(this.onDidChangeFocus(() => {\n\t\t\tconst selection = this.getSelection();\n\t\t\tconst focus = this.getFocus();\n\n\t\t\tthis.listHasSelectionOrFocus.set(selection.length > 0 || focus.length > 0);\n\t\t}));\n\t\tthis.disposables.add(configurationService.onDidChangeConfiguration(e => {\n\t\t\tif (e.affectsConfiguration(multiSelectModifierSettingKey)) {\n\t\t\t\tthis._useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n\t\t\t}\n\n\t\t\tlet options: IListOptionsUpdate = {};\n\n\t\t\tif (e.affectsConfiguration(horizontalScrollingKey) && this.horizontalScrolling === undefined) {\n\t\t\t\tconst horizontalScrolling = Boolean(configurationService.getValue(horizontalScrollingKey));\n\t\t\t\toptions = { ...options, horizontalScrolling };\n\t\t\t}\n\t\t\tif (e.affectsConfiguration(scrollByPageKey)) {\n\t\t\t\tconst scrollByPage = Boolean(configurationService.getValue(scrollByPageKey));\n\t\t\t\toptions = { ...options, scrollByPage };\n\t\t\t}\n\t\t\tif (e.affectsConfiguration(listSmoothScrolling)) {\n\t\t\t\tconst smoothScrolling = Boolean(configurationService.getValue(listSmoothScrolling));\n\t\t\t\toptions = { ...options, smoothScrolling };\n\t\t\t}\n\t\t\tif (e.affectsConfiguration(mouseWheelScrollSensitivityKey)) {\n\t\t\t\tconst mouseWheelScrollSensitivity = configurationService.getValue<number>(mouseWheelScrollSensitivityKey);\n\t\t\t\toptions = { ...options, mouseWheelScrollSensitivity };\n\t\t\t}\n\t\t\tif (e.affectsConfiguration(fastScrollSensitivityKey)) {\n\t\t\t\tconst fastScrollSensitivity = configurationService.getValue<number>(fastScrollSensitivityKey);\n\t\t\t\toptions = { ...options, fastScrollSensitivity };\n\t\t\t}\n\t\t\tif (Object.keys(options).length > 0) {\n\t\t\t\tthis.updateOptions(options);\n\t\t\t}\n\t\t}));\n\n\t\tthis.navigator = new ListResourceNavigator(this, { configurationService, ...options });\n\t\tthis.disposables.add(this.navigator);\n\t}\n\n\toverride updateOptions(options: IWorkbenchListOptionsUpdate): void {\n\t\tsuper.updateOptions(options);\n\n\t\tif (options.overrideStyles !== undefined) {\n\t\t\tthis.updateStyles(options.overrideStyles);\n\t\t}\n\n\t\tif (options.multipleSelectionSupport !== undefined) {\n\t\t\tthis.listSupportsMultiSelect.set(!!options.multipleSelectionSupport);\n\t\t}\n\t}\n\n\tprivate updateStyles(styles: IStyleOverride<IListStyles> | undefined): void {\n\t\tthis.style(styles ? getListStyles(styles) : defaultListStyles);\n\t}\n}\n\nexport interface IWorkbenchPagedListOptions<T> extends IWorkbenchListOptionsUpdate, IResourceNavigatorOptions, IPagedListOptions<T> {\n\treadonly selectionNavigation?: boolean;\n}\n\nexport class WorkbenchPagedList<T> extends PagedList<T> {\n\n\treadonly contextKeyService: IScopedContextKeyService;\n\tprivate readonly disposables: DisposableStore;\n\tprivate listSupportsMultiSelect: IContextKey<boolean>;\n\tprivate _useAltAsMultipleSelectionModifier: boolean;\n\tprivate horizontalScrolling: boolean | undefined;\n\tprivate navigator: ListResourceNavigator<T>;\n\n\tconstructor(\n\t\tuser: string,\n\t\tcontainer: HTMLElement,\n\t\tdelegate: IListVirtualDelegate<number>,\n\t\trenderers: IPagedRenderer<T, any>[],\n\t\toptions: IWorkbenchPagedListOptions<T>,\n\t\t@IContextKeyService contextKeyService: IContextKeyService,\n\t\t@IListService listService: IListService,\n\t\t@IConfigurationService configurationService: IConfigurationService,\n\t\t@IInstantiationService instantiationService: IInstantiationService\n\t) {\n\t\tconst horizontalScrolling = typeof options.horizontalScrolling !== 'undefined' ? options.horizontalScrolling : Boolean(configurationService.getValue(horizontalScrollingKey));\n\t\tconst [workbenchListOptions, workbenchListOptionsDisposable] = instantiationService.invokeFunction(toWorkbenchListOptions, options);\n\t\tsuper(user, container, delegate, renderers,\n\t\t\t{\n\t\t\t\tkeyboardSupport: false,\n\t\t\t\t...workbenchListOptions,\n\t\t\t\thorizontalScrolling,\n\t\t\t}\n\t\t);\n\n\t\tthis.disposables = new DisposableStore();\n\t\tthis.disposables.add(workbenchListOptionsDisposable);\n\n\t\tthis.contextKeyService = createScopedContextKeyService(contextKeyService, this);\n\n\t\tthis.disposables.add(createScrollObserver(this.contextKeyService, this.widget));\n\n\t\tthis.horizontalScrolling = options.horizontalScrolling;\n\n\t\tthis.listSupportsMultiSelect = WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService);\n\t\tthis.listSupportsMultiSelect.set(options.multipleSelectionSupport !== false);\n\n\t\tconst listSelectionNavigation = WorkbenchListSelectionNavigation.bindTo(this.contextKeyService);\n\t\tlistSelectionNavigation.set(Boolean(options.selectionNavigation));\n\n\t\tthis._useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n\n\t\tthis.disposables.add(this.contextKeyService);\n\t\tthis.disposables.add((listService as ListService).register(this));\n\n\t\tthis.updateStyles(options.overrideStyles);\n\n\t\tthis.disposables.add(configurationService.onDidChangeConfiguration(e => {\n\t\t\tif (e.affectsConfiguration(multiSelectModifierSettingKey)) {\n\t\t\t\tthis._useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n\t\t\t}\n\n\t\t\tlet options: IListOptionsUpdate = {};\n\n\t\t\tif (e.affectsConfiguration(horizontalScrollingKey) && this.horizontalScrolling === undefined) {\n\t\t\t\tconst horizontalScrolling = Boolean(configurationService.getValue(horizontalScrollingKey));\n\t\t\t\toptions = { ...options, horizontalScrolling };\n\t\t\t}\n\t\t\tif (e.affectsConfiguration(scrollByPageKey)) {\n\t\t\t\tconst scrollByPage = Boolean(configurationService.getValue(scrollByPageKey));\n\t\t\t\toptions = { ...options, scrollByPage };\n\t\t\t}\n\t\t\tif (e.affectsConfiguration(listSmoothScrolling)) {\n\t\t\t\tconst smoothScrolling = Boolean(configurationService.getValue(listSmoothScrolling));\n\t\t\t\toptions = { ...options, smoothScrolling };\n\t\t\t}\n\t\t\tif (e.affectsConfiguration(mouseWheelScrollSensitivityKey)) {\n\t\t\t\tconst mouseWheelScrollSensitivity = configurationService.getValue<number>(mouseWheelScrollSensitivityKey);\n\t\t\t\toptions = { ...options, mouseWheelScrollSensitivity };\n\t\t\t}\n\t\t\tif (e.affectsConfiguration(fastScrollSensitivityKey)) {\n\t\t\t\tconst fastScrollSensitivity = configurationService.getValue<number>(fastScrollSensitivityKey);\n\t\t\t\toptions = { ...options, fastScrollSensitivity };\n\t\t\t}\n\t\t\tif (Object.keys(options).length > 0) {\n\t\t\t\tthis.updateOptions(options);\n\t\t\t}\n\t\t}));\n\n\t\tthis.navigator = new ListResourceNavigator(this, { configurationService, ...options });\n\t\tthis.disposables.add(this.navigator);\n\t}\n\n\toverride updateOptions(options: IWorkbenchListOptionsUpdate): void {\n\t\tsuper.updateOptions(options);\n\n\t\tif (options.overrideStyles !== undefined) {\n\t\t\tthis.updateStyles(options.overrideStyles);\n\t\t}\n\n\t\tif (options.multipleSelectionSupport !== undefined) {\n\t\t\tthis.listSupportsMultiSelect.set(!!options.multipleSelectionSupport);\n\t\t}\n\t}\n\n\tprivate updateStyles(styles: IStyleOverride<IListStyles> | undefined): void {\n\t\tthis.style(styles ? getListStyles(styles) : defaultListStyles);\n\t}\n\n\toverride dispose(): void {\n\t\tthis.disposables.dispose();\n\t\tsuper.dispose();\n\t}\n}\n\nexport interface IWorkbenchTableOptionsUpdate extends ITableOptionsUpdate {\n\treadonly overrideStyles?: IStyleOverride<IListStyles>;\n}\n\nexport interface IWorkbenchTableOptions<T> extends IWorkbenchTableOptionsUpdate, IResourceNavigatorOptions, ITableOptions<T> {\n\treadonly selectionNavigation?: boolean;\n}\n\nexport class WorkbenchTable<TRow> extends Table<TRow> {\n\n\treadonly contextKeyService: IScopedContextKeyService;\n\tprivate listSupportsMultiSelect: IContextKey<boolean>;\n\tprivate listHasSelectionOrFocus: IContextKey<boolean>;\n\tprivate listDoubleSelection: IContextKey<boolean>;\n\tprivate listMultiSelection: IContextKey<boolean>;\n\tprivate horizontalScrolling: boolean | undefined;\n\tprivate _useAltAsMultipleSelectionModifier: boolean;\n\tprivate navigator: TableResourceNavigator<TRow>;\n\n\tconstructor(\n\t\tuser: string,\n\t\tcontainer: HTMLElement,\n\t\tdelegate: ITableVirtualDelegate<TRow>,\n\t\tcolumns: ITableColumn<TRow, any>[],\n\t\trenderers: ITableRenderer<TRow, any>[],\n\t\toptions: IWorkbenchTableOptions<TRow>,\n\t\t@IContextKeyService contextKeyService: IContextKeyService,\n\t\t@IListService listService: IListService,\n\t\t@IConfigurationService configurationService: IConfigurationService,\n\t\t@IInstantiationService instantiationService: IInstantiationService\n\t) {\n\t\tconst horizontalScrolling = typeof options.horizontalScrolling !== 'undefined' ? options.horizontalScrolling : Boolean(configurationService.getValue(horizontalScrollingKey));\n\t\tconst [workbenchListOptions, workbenchListOptionsDisposable] = instantiationService.invokeFunction(toWorkbenchListOptions, options);\n\n\t\tsuper(user, container, delegate, columns, renderers,\n\t\t\t{\n\t\t\t\tkeyboardSupport: false,\n\t\t\t\t...workbenchListOptions,\n\t\t\t\thorizontalScrolling,\n\t\t\t}\n\t\t);\n\n\t\tthis.disposables.add(workbenchListOptionsDisposable);\n\n\t\tthis.contextKeyService = createScopedContextKeyService(contextKeyService, this);\n\n\t\tthis.disposables.add(createScrollObserver(this.contextKeyService, this));\n\n\t\tthis.listSupportsMultiSelect = WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService);\n\t\tthis.listSupportsMultiSelect.set(options.multipleSelectionSupport !== false);\n\n\t\tconst listSelectionNavigation = WorkbenchListSelectionNavigation.bindTo(this.contextKeyService);\n\t\tlistSelectionNavigation.set(Boolean(options.selectionNavigation));\n\n\t\tthis.listHasSelectionOrFocus = WorkbenchListHasSelectionOrFocus.bindTo(this.contextKeyService);\n\t\tthis.listDoubleSelection = WorkbenchListDoubleSelection.bindTo(this.contextKeyService);\n\t\tthis.listMultiSelection = WorkbenchListMultiSelection.bindTo(this.contextKeyService);\n\t\tthis.horizontalScrolling = options.horizontalScrolling;\n\n\t\tthis._useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n\n\t\tthis.disposables.add(this.contextKeyService);\n\t\tthis.disposables.add((listService as ListService).register(this));\n\n\t\tthis.updateStyles(options.overrideStyles);\n\n\t\tthis.disposables.add(this.onDidChangeSelection(() => {\n\t\t\tconst selection = this.getSelection();\n\t\t\tconst focus = this.getFocus();\n\n\t\t\tthis.contextKeyService.bufferChangeEvents(() => {\n\t\t\t\tthis.listHasSelectionOrFocus.set(selection.length > 0 || focus.length > 0);\n\t\t\t\tthis.listMultiSelection.set(selection.length > 1);\n\t\t\t\tthis.listDoubleSelection.set(selection.length === 2);\n\t\t\t});\n\t\t}));\n\t\tthis.disposables.add(this.onDidChangeFocus(() => {\n\t\t\tconst selection = this.getSelection();\n\t\t\tconst focus = this.getFocus();\n\n\t\t\tthis.listHasSelectionOrFocus.set(selection.length > 0 || focus.length > 0);\n\t\t}));\n\t\tthis.disposables.add(configurationService.onDidChangeConfiguration(e => {\n\t\t\tif (e.affectsConfiguration(multiSelectModifierSettingKey)) {\n\t\t\t\tthis._useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n\t\t\t}\n\n\t\t\tlet options: IListOptionsUpdate = {};\n\n\t\t\tif (e.affectsConfiguration(horizontalScrollingKey) && this.horizontalScrolling === undefined) {\n\t\t\t\tconst horizontalScrolling = Boolean(configurationService.getValue(horizontalScrollingKey));\n\t\t\t\toptions = { ...options, horizontalScrolling };\n\t\t\t}\n\t\t\tif (e.affectsConfiguration(scrollByPageKey)) {\n\t\t\t\tconst scrollByPage = Boolean(configurationService.getValue(scrollByPageKey));\n\t\t\t\toptions = { ...options, scrollByPage };\n\t\t\t}\n\t\t\tif (e.affectsConfiguration(listSmoothScrolling)) {\n\t\t\t\tconst smoothScrolling = Boolean(configurationService.getValue(listSmoothScrolling));\n\t\t\t\toptions = { ...options, smoothScrolling };\n\t\t\t}\n\t\t\tif (e.affectsConfiguration(mouseWheelScrollSensitivityKey)) {\n\t\t\t\tconst mouseWheelScrollSensitivity = configurationService.getValue<number>(mouseWheelScrollSensitivityKey);\n\t\t\t\toptions = { ...options, mouseWheelScrollSensitivity };\n\t\t\t}\n\t\t\tif (e.affectsConfiguration(fastScrollSensitivityKey)) {\n\t\t\t\tconst fastScrollSensitivity = configurationService.getValue<number>(fastScrollSensitivityKey);\n\t\t\t\toptions = { ...options, fastScrollSensitivity };\n\t\t\t}\n\t\t\tif (Object.keys(options).length > 0) {\n\t\t\t\tthis.updateOptions(options);\n\t\t\t}\n\t\t}));\n\n\t\tthis.navigator = new TableResourceNavigator(this, { configurationService, ...options });\n\t\tthis.disposables.add(this.navigator);\n\t}\n\n\toverride updateOptions(options: IWorkbenchTableOptionsUpdate): void {\n\t\tsuper.updateOptions(options);\n\n\t\tif (options.overrideStyles !== undefined) {\n\t\t\tthis.updateStyles(options.overrideStyles);\n\t\t}\n\n\t\tif (options.multipleSelectionSupport !== undefined) {\n\t\t\tthis.listSupportsMultiSelect.set(!!options.multipleSelectionSupport);\n\t\t}\n\t}\n\n\tprivate updateStyles(styles: IStyleOverride<ITableStyles> | undefined): void {\n\t\tthis.style(styles ? getListStyles(styles) : defaultListStyles);\n\t}\n\n\toverride dispose(): void {\n\t\tthis.disposables.dispose();\n\t\tsuper.dispose();\n\t}\n}\n\nexport interface IOpenEvent<T> {\n\teditorOptions: IEditorOptions;\n\tsideBySide: boolean;\n\telement: T;\n\tbrowserEvent?: UIEvent;\n}\n\nexport interface IResourceNavigatorOptions {\n\treadonly configurationService?: IConfigurationService;\n\treadonly openOnSingleClick?: boolean;\n}\n\nexport interface SelectionKeyboardEvent extends KeyboardEvent {\n\tpreserveFocus?: boolean;\n\tpinned?: boolean;\n\t__forceEvent?: boolean;\n}\n\nabstract class ResourceNavigator<T> extends Disposable {\n\n\tprivate openOnSingleClick: boolean;\n\n\tprivate readonly _onDidOpen = this._register(new Emitter<IOpenEvent<T | undefined>>());\n\treadonly onDidOpen: Event<IOpenEvent<T | undefined>> = this._onDidOpen.event;\n\n\tconstructor(\n\t\tprotected readonly widget: ListWidget,\n\t\toptions?: IResourceNavigatorOptions\n\t) {\n\t\tsuper();\n\n\t\tthis._register(Event.filter(this.widget.onDidChangeSelection, e => isKeyboardEvent(e.browserEvent))(e => this.onSelectionFromKeyboard(e)));\n\t\tthis._register(this.widget.onPointer((e: { browserEvent: MouseEvent; element: T | undefined }) => this.onPointer(e.element, e.browserEvent)));\n\t\tthis._register(this.widget.onMouseDblClick((e: { browserEvent: MouseEvent; element: T | undefined }) => this.onMouseDblClick(e.element, e.browserEvent)));\n\n\t\tif (typeof options?.openOnSingleClick !== 'boolean' && options?.configurationService) {\n\t\t\tthis.openOnSingleClick = options?.configurationService.getValue(openModeSettingKey) !== 'doubleClick';\n\t\t\tthis._register(options?.configurationService.onDidChangeConfiguration(e => {\n\t\t\t\tif (e.affectsConfiguration(openModeSettingKey)) {\n\t\t\t\t\tthis.openOnSingleClick = options?.configurationService!.getValue(openModeSettingKey) !== 'doubleClick';\n\t\t\t\t}\n\t\t\t}));\n\t\t} else {\n\t\t\tthis.openOnSingleClick = options?.openOnSingleClick ?? true;\n\t\t}\n\t}\n\n\tprivate onSelectionFromKeyboard(event: ITreeEvent<any>): void {\n\t\tif (event.elements.length !== 1) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst selectionKeyboardEvent = event.browserEvent as SelectionKeyboardEvent;\n\t\tconst preserveFocus = typeof selectionKeyboardEvent.preserveFocus === 'boolean' ? selectionKeyboardEvent.preserveFocus : true;\n\t\tconst pinned = typeof selectionKeyboardEvent.pinned === 'boolean' ? selectionKeyboardEvent.pinned : !preserveFocus;\n\t\tconst sideBySide = false;\n\n\t\tthis._open(this.getSelectedElement(), preserveFocus, pinned, sideBySide, event.browserEvent);\n\t}\n\n\tprivate onPointer(element: T | undefined, browserEvent: MouseEvent): void {\n\t\tif (!this.openOnSingleClick) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isDoubleClick = browserEvent.detail === 2;\n\n\t\tif (isDoubleClick) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isMiddleClick = browserEvent.button === 1;\n\t\tconst preserveFocus = true;\n\t\tconst pinned = isMiddleClick;\n\t\tconst sideBySide = browserEvent.ctrlKey || browserEvent.metaKey || browserEvent.altKey;\n\n\t\tthis._open(element, preserveFocus, pinned, sideBySide, browserEvent);\n\t}\n\n\tprivate onMouseDblClick(element: T | undefined, browserEvent?: MouseEvent): void {\n\t\tif (!browserEvent) {\n\t\t\treturn;\n\t\t}\n\n\t\t// copied from AbstractTree\n\t\tconst target = browserEvent.target as HTMLElement;\n\t\tconst onTwistie = target.classList.contains('monaco-tl-twistie')\n\t\t\t|| (target.classList.contains('monaco-icon-label') && target.classList.contains('folder-icon') && browserEvent.offsetX < 16);\n\n\t\tif (onTwistie) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst preserveFocus = false;\n\t\tconst pinned = true;\n\t\tconst sideBySide = (browserEvent.ctrlKey || browserEvent.metaKey || browserEvent.altKey);\n\n\t\tthis._open(element, preserveFocus, pinned, sideBySide, browserEvent);\n\t}\n\n\tprivate _open(element: T | undefined, preserveFocus: boolean, pinned: boolean, sideBySide: boolean, browserEvent?: UIEvent): void {\n\t\tif (!element) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._onDidOpen.fire({\n\t\t\teditorOptions: {\n\t\t\t\tpreserveFocus,\n\t\t\t\tpinned,\n\t\t\t\trevealIfVisible: true\n\t\t\t},\n\t\t\tsideBySide,\n\t\t\telement,\n\t\t\tbrowserEvent\n\t\t});\n\t}\n\n\tabstract getSelectedElement(): T | undefined;\n}\n\nclass ListResourceNavigator<T> extends ResourceNavigator<T> {\n\n\tprotected override readonly widget: List<T> | PagedList<T>;\n\n\tconstructor(\n\t\twidget: List<T> | PagedList<T>,\n\t\toptions: IResourceNavigatorOptions\n\t) {\n\t\tsuper(widget, options);\n\t\tthis.widget = widget;\n\t}\n\n\tgetSelectedElement(): T | undefined {\n\t\treturn this.widget.getSelectedElements()[0];\n\t}\n}\n\nclass TableResourceNavigator<TRow> extends ResourceNavigator<TRow> {\n\n\tprotected declare readonly widget: Table<TRow>;\n\n\tconstructor(\n\t\twidget: Table<TRow>,\n\t\toptions: IResourceNavigatorOptions\n\t) {\n\t\tsuper(widget, options);\n\t}\n\n\tgetSelectedElement(): TRow | undefined {\n\t\treturn this.widget.getSelectedElements()[0];\n\t}\n}\n\nclass TreeResourceNavigator<T, TFilterData> extends ResourceNavigator<T> {\n\n\tprotected declare readonly widget: ObjectTree<T, TFilterData> | CompressibleObjectTree<T, TFilterData> | DataTree<any, T, TFilterData> | AsyncDataTree<any, T, TFilterData> | CompressibleAsyncDataTree<any, T, TFilterData>;\n\n\tconstructor(\n\t\twidget: ObjectTree<T, TFilterData> | CompressibleObjectTree<T, TFilterData> | DataTree<any, T, TFilterData> | AsyncDataTree<any, T, TFilterData> | CompressibleAsyncDataTree<any, T, TFilterData>,\n\t\toptions: IResourceNavigatorOptions\n\t) {\n\t\tsuper(widget, options);\n\t}\n\n\tgetSelectedElement(): T | undefined {\n\t\treturn this.widget.getSelection()[0] ?? undefined;\n\t}\n}\n\nfunction createKeyboardNavigationEventFilter(keybindingService: IKeybindingService): IKeyboardNavigationEventFilter {\n\tlet inMultiChord = false;\n\n\treturn event => {\n\t\tif (event.toKeyCodeChord().isModifierKey()) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (inMultiChord) {\n\t\t\tinMultiChord = false;\n\t\t\treturn false;\n\t\t}\n\n\t\tconst result = keybindingService.softDispatch(event, event.target);\n\n\t\tif (result.kind === ResultKind.MoreChordsNeeded) {\n\t\t\tinMultiChord = true;\n\t\t\treturn false;\n\t\t}\n\n\t\tinMultiChord = false;\n\t\treturn result.kind === ResultKind.NoMatchingKb;\n\t};\n}\n\nexport interface IWorkbenchObjectTreeOptions<T, TFilterData> extends IObjectTreeOptions<T, TFilterData>, IResourceNavigatorOptions {\n\treadonly accessibilityProvider: IListAccessibilityProvider<T>;\n\treadonly overrideStyles?: IStyleOverride<IListStyles>;\n\treadonly selectionNavigation?: boolean;\n}\n\nexport class WorkbenchObjectTree<T extends NonNullable<any>, TFilterData = void> extends ObjectTree<T, TFilterData> {\n\n\tprivate internals: WorkbenchTreeInternals<any, T, TFilterData>;\n\tget onDidOpen(): Event<IOpenEvent<T | undefined>> { return this.internals.onDidOpen; }\n\n\tconstructor(\n\t\tuser: string,\n\t\tcontainer: HTMLElement,\n\t\tdelegate: IListVirtualDelegate<T>,\n\t\trenderers: ITreeRenderer<T, TFilterData, any>[],\n\t\toptions: IWorkbenchObjectTreeOptions<T, TFilterData>,\n\t\t@IInstantiationService instantiationService: IInstantiationService,\n\t\t@IContextKeyService contextKeyService: IContextKeyService,\n\t\t@IListService listService: IListService,\n\t\t@IConfigurationService configurationService: IConfigurationService\n\t) {\n\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\tconst { options: treeOptions, getTypeNavigationMode, disposable } = instantiationService.invokeFunction(workbenchTreeDataPreamble, options as any);\n\t\tsuper(user, container, delegate, renderers, treeOptions);\n\t\tthis.disposables.add(disposable);\n\t\tthis.internals = new WorkbenchTreeInternals(this, options, getTypeNavigationMode, options.overrideStyles, contextKeyService, listService, configurationService);\n\t\tthis.disposables.add(this.internals);\n\t}\n\n\toverride updateOptions(options: IAbstractTreeOptionsUpdate): void {\n\t\tsuper.updateOptions(options);\n\t\tthis.internals.updateOptions(options);\n\t}\n}\n\nexport interface IWorkbenchCompressibleObjectTreeOptionsUpdate extends ICompressibleObjectTreeOptionsUpdate {\n\treadonly overrideStyles?: IStyleOverride<IListStyles>;\n}\n\nexport interface IWorkbenchCompressibleObjectTreeOptions<T, TFilterData> extends IWorkbenchCompressibleObjectTreeOptionsUpdate, ICompressibleObjectTreeOptions<T, TFilterData>, IResourceNavigatorOptions {\n\treadonly selectionNavigation?: boolean;\n}\n\nexport class WorkbenchCompressibleObjectTree<T extends NonNullable<any>, TFilterData = void> extends CompressibleObjectTree<T, TFilterData> {\n\n\tprivate internals: WorkbenchTreeInternals<any, T, TFilterData>;\n\n\tconstructor(\n\t\tuser: string,\n\t\tcontainer: HTMLElement,\n\t\tdelegate: IListVirtualDelegate<T>,\n\t\trenderers: ICompressibleTreeRenderer<T, TFilterData, any>[],\n\t\toptions: IWorkbenchCompressibleObjectTreeOptions<T, TFilterData>,\n\t\t@IInstantiationService instantiationService: IInstantiationService,\n\t\t@IContextKeyService contextKeyService: IContextKeyService,\n\t\t@IListService listService: IListService,\n\t\t@IConfigurationService configurationService: IConfigurationService\n\t) {\n\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\tconst { options: treeOptions, getTypeNavigationMode, disposable } = instantiationService.invokeFunction(workbenchTreeDataPreamble, options as any);\n\t\tsuper(user, container, delegate, renderers, treeOptions);\n\t\tthis.disposables.add(disposable);\n\t\tthis.internals = new WorkbenchTreeInternals(this, options, getTypeNavigationMode, options.overrideStyles, contextKeyService, listService, configurationService);\n\t\tthis.disposables.add(this.internals);\n\t}\n\n\toverride updateOptions(options: IWorkbenchCompressibleObjectTreeOptionsUpdate = {}): void {\n\t\tsuper.updateOptions(options);\n\n\t\tif (options.overrideStyles) {\n\t\t\tthis.internals.updateStyleOverrides(options.overrideStyles);\n\t\t}\n\n\t\tthis.internals.updateOptions(options);\n\t}\n}\n\nexport interface IWorkbenchDataTreeOptionsUpdate extends IAbstractTreeOptionsUpdate {\n\treadonly overrideStyles?: IStyleOverride<IListStyles>;\n}\n\nexport interface IWorkbenchDataTreeOptions<T, TFilterData> extends IWorkbenchDataTreeOptionsUpdate, IDataTreeOptions<T, TFilterData>, IResourceNavigatorOptions {\n\treadonly selectionNavigation?: boolean;\n}\n\nexport class WorkbenchDataTree<TInput, T, TFilterData = void> extends DataTree<TInput, T, TFilterData> {\n\n\tprivate internals: WorkbenchTreeInternals<TInput, T, TFilterData>;\n\n\tconstructor(\n\t\tuser: string,\n\t\tcontainer: HTMLElement,\n\t\tdelegate: IListVirtualDelegate<T>,\n\t\trenderers: ITreeRenderer<T, TFilterData, any>[],\n\t\tdataSource: IDataSource<TInput, T>,\n\t\toptions: IWorkbenchDataTreeOptions<T, TFilterData>,\n\t\t@IInstantiationService instantiationService: IInstantiationService,\n\t\t@IContextKeyService contextKeyService: IContextKeyService,\n\t\t@IListService listService: IListService,\n\t\t@IConfigurationService configurationService: IConfigurationService\n\t) {\n\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\tconst { options: treeOptions, getTypeNavigationMode, disposable } = instantiationService.invokeFunction(workbenchTreeDataPreamble, options as any);\n\t\tsuper(user, container, delegate, renderers, dataSource, treeOptions);\n\t\tthis.disposables.add(disposable);\n\t\tthis.internals = new WorkbenchTreeInternals(this, options, getTypeNavigationMode, options.overrideStyles, contextKeyService, listService, configurationService);\n\t\tthis.disposables.add(this.internals);\n\t}\n\n\toverride updateOptions(options: IWorkbenchDataTreeOptionsUpdate = {}): void {\n\t\tsuper.updateOptions(options);\n\n\t\tif (options.overrideStyles !== undefined) {\n\t\t\tthis.internals.updateStyleOverrides(options.overrideStyles);\n\t\t}\n\n\t\tthis.internals.updateOptions(options);\n\t}\n}\n\nexport interface IWorkbenchAsyncDataTreeOptionsUpdate extends IAsyncDataTreeOptionsUpdate {\n\treadonly overrideStyles?: IStyleOverride<IListStyles>;\n}\n\nexport interface IWorkbenchAsyncDataTreeOptions<T, TFilterData> extends IWorkbenchAsyncDataTreeOptionsUpdate, IAsyncDataTreeOptions<T, TFilterData>, IResourceNavigatorOptions {\n\treadonly accessibilityProvider: IListAccessibilityProvider<T>;\n\treadonly selectionNavigation?: boolean;\n}\n\nexport class WorkbenchAsyncDataTree<TInput, T, TFilterData = void> extends AsyncDataTree<TInput, T, TFilterData> {\n\n\tprivate internals: WorkbenchTreeInternals<TInput, T, TFilterData>;\n\tget onDidOpen(): Event<IOpenEvent<T | undefined>> { return this.internals.onDidOpen; }\n\n\tconstructor(\n\t\tuser: string,\n\t\tcontainer: HTMLElement,\n\t\tdelegate: IListVirtualDelegate<T>,\n\t\trenderers: ITreeRenderer<T, TFilterData, any>[],\n\t\tdataSource: IAsyncDataSource<TInput, T>,\n\t\toptions: IWorkbenchAsyncDataTreeOptions<T, TFilterData>,\n\t\t@IInstantiationService instantiationService: IInstantiationService,\n\t\t@IContextKeyService contextKeyService: IContextKeyService,\n\t\t@IListService listService: IListService,\n\t\t@IConfigurationService configurationService: IConfigurationService\n\t) {\n\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\tconst { options: treeOptions, getTypeNavigationMode, disposable } = instantiationService.invokeFunction(workbenchTreeDataPreamble, options as any);\n\t\tsuper(user, container, delegate, renderers, dataSource, treeOptions);\n\t\tthis.disposables.add(disposable);\n\t\tthis.internals = new WorkbenchTreeInternals(this, options, getTypeNavigationMode, options.overrideStyles, contextKeyService, listService, configurationService);\n\t\tthis.disposables.add(this.internals);\n\t}\n\n\toverride updateOptions(options: IWorkbenchAsyncDataTreeOptionsUpdate = {}): void {\n\t\tsuper.updateOptions(options);\n\n\t\tif (options.overrideStyles) {\n\t\t\tthis.internals.updateStyleOverrides(options.overrideStyles);\n\t\t}\n\n\t\tthis.internals.updateOptions(options);\n\t}\n}\n\nexport interface IWorkbenchCompressibleAsyncDataTreeOptions<T, TFilterData> extends ICompressibleAsyncDataTreeOptions<T, TFilterData>, IResourceNavigatorOptions {\n\treadonly overrideStyles?: IStyleOverride<IListStyles>;\n\treadonly selectionNavigation?: boolean;\n}\n\nexport class WorkbenchCompressibleAsyncDataTree<TInput, T, TFilterData = void> extends CompressibleAsyncDataTree<TInput, T, TFilterData> {\n\n\tprivate internals: WorkbenchTreeInternals<TInput, T, TFilterData>;\n\n\tconstructor(\n\t\tuser: string,\n\t\tcontainer: HTMLElement,\n\t\tvirtualDelegate: IListVirtualDelegate<T>,\n\t\tcompressionDelegate: ITreeCompressionDelegate<T>,\n\t\trenderers: ICompressibleTreeRenderer<T, TFilterData, any>[],\n\t\tdataSource: IAsyncDataSource<TInput, T>,\n\t\toptions: IWorkbenchCompressibleAsyncDataTreeOptions<T, TFilterData>,\n\t\t@IInstantiationService instantiationService: IInstantiationService,\n\t\t@IContextKeyService contextKeyService: IContextKeyService,\n\t\t@IListService listService: IListService,\n\t\t@IConfigurationService configurationService: IConfigurationService\n\t) {\n\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\tconst { options: treeOptions, getTypeNavigationMode, disposable } = instantiationService.invokeFunction(workbenchTreeDataPreamble, options as any);\n\t\tsuper(user, container, virtualDelegate, compressionDelegate, renderers, dataSource, treeOptions);\n\t\tthis.disposables.add(disposable);\n\t\tthis.internals = new WorkbenchTreeInternals(this, options, getTypeNavigationMode, options.overrideStyles, contextKeyService, listService, configurationService);\n\t\tthis.disposables.add(this.internals);\n\t}\n\n\toverride updateOptions(options: ICompressibleAsyncDataTreeOptionsUpdate): void {\n\t\tsuper.updateOptions(options);\n\t\tthis.internals.updateOptions(options);\n\t}\n}\n\nfunction getDefaultTreeFindMode(configurationService: IConfigurationService) {\n\tconst value = configurationService.getValue<'highlight' | 'filter'>(defaultFindModeSettingKey);\n\n\tif (value === 'highlight') {\n\t\treturn TreeFindMode.Highlight;\n\t} else if (value === 'filter') {\n\t\treturn TreeFindMode.Filter;\n\t}\n\n\tconst deprecatedValue = configurationService.getValue<'simple' | 'highlight' | 'filter'>(keyboardNavigationSettingKey);\n\n\tif (deprecatedValue === 'simple' || deprecatedValue === 'highlight') {\n\t\treturn TreeFindMode.Highlight;\n\t} else if (deprecatedValue === 'filter') {\n\t\treturn TreeFindMode.Filter;\n\t}\n\n\treturn undefined;\n}\n\nfunction getDefaultTreeFindMatchType(configurationService: IConfigurationService) {\n\tconst value = configurationService.getValue<'fuzzy' | 'contiguous'>(defaultFindMatchTypeSettingKey);\n\n\tif (value === 'fuzzy') {\n\t\treturn TreeFindMatchType.Fuzzy;\n\t} else if (value === 'contiguous') {\n\t\treturn TreeFindMatchType.Contiguous;\n\t}\n\treturn undefined;\n}\n\nfunction workbenchTreeDataPreamble<T, TFilterData, TOptions extends IAbstractTreeOptions<T, TFilterData> | IAsyncDataTreeOptions<T, TFilterData>>(\n\taccessor: ServicesAccessor,\n\toptions: TOptions,\n): { options: TOptions; getTypeNavigationMode: () => TypeNavigationMode | undefined; disposable: IDisposable } {\n\tconst configurationService = accessor.get(IConfigurationService);\n\tconst contextViewService = accessor.get(IContextViewService);\n\tconst contextKeyService = accessor.get(IContextKeyService);\n\tconst instantiationService = accessor.get(IInstantiationService);\n\n\tconst getTypeNavigationMode = () => {\n\t\t// give priority to the context key value to specify a value\n\t\tconst modeString = contextKeyService.getContextKeyValue<'automatic' | 'trigger'>(WorkbenchListTypeNavigationModeKey);\n\n\t\tif (modeString === 'automatic') {\n\t\t\treturn TypeNavigationMode.Automatic;\n\t\t} else if (modeString === 'trigger') {\n\t\t\treturn TypeNavigationMode.Trigger;\n\t\t}\n\n\t\t// also check the deprecated context key to set the mode to 'trigger'\n\t\tconst modeBoolean = contextKeyService.getContextKeyValue<boolean>(WorkbenchListAutomaticKeyboardNavigationLegacyKey);\n\n\t\tif (modeBoolean === false) {\n\t\t\treturn TypeNavigationMode.Trigger;\n\t\t}\n\n\t\t// finally, check the setting\n\t\tconst configString = configurationService.getValue<'automatic' | 'trigger'>(typeNavigationModeSettingKey);\n\n\t\tif (configString === 'automatic') {\n\t\t\treturn TypeNavigationMode.Automatic;\n\t\t} else if (configString === 'trigger') {\n\t\t\treturn TypeNavigationMode.Trigger;\n\t\t}\n\n\t\treturn undefined;\n\t};\n\n\tconst horizontalScrolling = options.horizontalScrolling !== undefined ? options.horizontalScrolling : Boolean(configurationService.getValue(horizontalScrollingKey));\n\tconst [workbenchListOptions, disposable] = instantiationService.invokeFunction(toWorkbenchListOptions, options);\n\tconst paddingBottom = options.paddingBottom;\n\tconst renderIndentGuides = options.renderIndentGuides !== undefined ? options.renderIndentGuides : configurationService.getValue<RenderIndentGuides>(treeRenderIndentGuidesKey);\n\n\treturn {\n\t\tgetTypeNavigationMode,\n\t\tdisposable,\n\t\t// eslint-disable-next-line local/code-no-dangerous-type-assertions\n\t\toptions: {\n\t\t\t// ...options, // TODO@Joao why is this not splatted here?\n\t\t\tkeyboardSupport: false,\n\t\t\t...workbenchListOptions,\n\t\t\tindent: typeof configurationService.getValue(treeIndentKey) === 'number' ? configurationService.getValue(treeIndentKey) : undefined,\n\t\t\trenderIndentGuides,\n\t\t\tsmoothScrolling: Boolean(configurationService.getValue(listSmoothScrolling)),\n\t\t\tdefaultFindMode: getDefaultTreeFindMode(configurationService),\n\t\t\tdefaultFindMatchType: getDefaultTreeFindMatchType(configurationService),\n\t\t\thorizontalScrolling,\n\t\t\tscrollByPage: Boolean(configurationService.getValue(scrollByPageKey)),\n\t\t\tpaddingBottom: paddingBottom,\n\t\t\thideTwistiesOfChildlessElements: options.hideTwistiesOfChildlessElements,\n\t\t\texpandOnlyOnTwistieClick: options.expandOnlyOnTwistieClick ?? (configurationService.getValue<'singleClick' | 'doubleClick'>(treeExpandMode) === 'doubleClick'),\n\t\t\tcontextViewProvider: contextViewService as IContextViewProvider,\n\t\t\tfindWidgetStyles: defaultFindWidgetStyles,\n\t\t\tenableStickyScroll: Boolean(configurationService.getValue(treeStickyScroll)),\n\t\t\tstickyScrollMaxItemCount: Number(configurationService.getValue(treeStickyScrollMaxElements)),\n\t\t} as TOptions\n\t};\n}\n\ninterface IWorkbenchTreeInternalsOptionsUpdate {\n\treadonly multipleSelectionSupport?: boolean;\n}\n\nclass WorkbenchTreeInternals<TInput, T, TFilterData> {\n\n\treadonly contextKeyService: IScopedContextKeyService;\n\tprivate listSupportsMultiSelect: IContextKey<boolean>;\n\tprivate listSupportFindWidget: IContextKey<boolean>;\n\tprivate hasSelectionOrFocus: IContextKey<boolean>;\n\tprivate hasDoubleSelection: IContextKey<boolean>;\n\tprivate hasMultiSelection: IContextKey<boolean>;\n\tprivate treeElementCanCollapse: IContextKey<boolean>;\n\tprivate treeElementHasParent: IContextKey<boolean>;\n\tprivate treeElementCanExpand: IContextKey<boolean>;\n\tprivate treeElementHasChild: IContextKey<boolean>;\n\tprivate treeFindOpen: IContextKey<boolean>;\n\tprivate treeStickyScrollFocused: IContextKey<boolean>;\n\tprivate _useAltAsMultipleSelectionModifier: boolean;\n\tprivate disposables: IDisposable[] = [];\n\n\tprivate navigator: TreeResourceNavigator<T, TFilterData>;\n\n\tget onDidOpen(): Event<IOpenEvent<T | undefined>> { return this.navigator.onDidOpen; }\n\n\tconstructor(\n\t\tprivate tree: WorkbenchObjectTree<T, TFilterData> | WorkbenchCompressibleObjectTree<T, TFilterData> | WorkbenchDataTree<TInput, T, TFilterData> | WorkbenchAsyncDataTree<TInput, T, TFilterData> | WorkbenchCompressibleAsyncDataTree<TInput, T, TFilterData>,\n\t\toptions: IWorkbenchObjectTreeOptions<T, TFilterData> | IWorkbenchCompressibleObjectTreeOptions<T, TFilterData> | IWorkbenchDataTreeOptions<T, TFilterData> | IWorkbenchAsyncDataTreeOptions<T, TFilterData> | IWorkbenchCompressibleAsyncDataTreeOptions<T, TFilterData>,\n\t\tgetTypeNavigationMode: () => TypeNavigationMode | undefined,\n\t\toverrideStyles: IStyleOverride<IListStyles> | undefined,\n\t\t@IContextKeyService contextKeyService: IContextKeyService,\n\t\t@IListService listService: IListService,\n\t\t@IConfigurationService configurationService: IConfigurationService\n\t) {\n\t\tthis.contextKeyService = createScopedContextKeyService(contextKeyService, tree);\n\n\t\tthis.disposables.push(createScrollObserver(this.contextKeyService, tree));\n\n\t\tthis.listSupportsMultiSelect = WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService);\n\t\tthis.listSupportsMultiSelect.set(options.multipleSelectionSupport !== false);\n\n\t\tconst listSelectionNavigation = WorkbenchListSelectionNavigation.bindTo(this.contextKeyService);\n\t\tlistSelectionNavigation.set(Boolean(options.selectionNavigation));\n\n\t\tthis.listSupportFindWidget = WorkbenchListSupportsFind.bindTo(this.contextKeyService);\n\t\tthis.listSupportFindWidget.set(options.findWidgetEnabled ?? true);\n\n\t\tthis.hasSelectionOrFocus = WorkbenchListHasSelectionOrFocus.bindTo(this.contextKeyService);\n\t\tthis.hasDoubleSelection = WorkbenchListDoubleSelection.bindTo(this.contextKeyService);\n\t\tthis.hasMultiSelection = WorkbenchListMultiSelection.bindTo(this.contextKeyService);\n\n\t\tthis.treeElementCanCollapse = WorkbenchTreeElementCanCollapse.bindTo(this.contextKeyService);\n\t\tthis.treeElementHasParent = WorkbenchTreeElementHasParent.bindTo(this.contextKeyService);\n\t\tthis.treeElementCanExpand = WorkbenchTreeElementCanExpand.bindTo(this.contextKeyService);\n\t\tthis.treeElementHasChild = WorkbenchTreeElementHasChild.bindTo(this.contextKeyService);\n\n\t\tthis.treeFindOpen = WorkbenchTreeFindOpen.bindTo(this.contextKeyService);\n\t\tthis.treeStickyScrollFocused = WorkbenchTreeStickyScrollFocused.bindTo(this.contextKeyService);\n\n\t\tthis._useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n\n\t\tthis.updateStyleOverrides(overrideStyles);\n\n\t\tconst updateCollapseContextKeys = () => {\n\t\t\tconst focus = tree.getFocus()[0];\n\n\t\t\tif (!focus) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst node = tree.getNode(focus);\n\t\t\tthis.treeElementCanCollapse.set(node.collapsible && !node.collapsed);\n\t\t\tthis.treeElementHasParent.set(!!tree.getParentElement(focus));\n\t\t\tthis.treeElementCanExpand.set(node.collapsible && node.collapsed);\n\t\t\tthis.treeElementHasChild.set(!!tree.getFirstElementChild(focus));\n\t\t};\n\n\t\tconst interestingContextKeys = new Set();\n\t\tinterestingContextKeys.add(WorkbenchListTypeNavigationModeKey);\n\t\tinterestingContextKeys.add(WorkbenchListAutomaticKeyboardNavigationLegacyKey);\n\n\t\tthis.disposables.push(\n\t\t\tthis.contextKeyService,\n\t\t\t(listService as ListService).register(tree),\n\t\t\ttree.onDidChangeSelection(() => {\n\t\t\t\tconst selection = tree.getSelection();\n\t\t\t\tconst focus = tree.getFocus();\n\n\t\t\t\tthis.contextKeyService.bufferChangeEvents(() => {\n\t\t\t\t\tthis.hasSelectionOrFocus.set(selection.length > 0 || focus.length > 0);\n\t\t\t\t\tthis.hasMultiSelection.set(selection.length > 1);\n\t\t\t\t\tthis.hasDoubleSelection.set(selection.length === 2);\n\t\t\t\t});\n\t\t\t}),\n\t\t\ttree.onDidChangeFocus(() => {\n\t\t\t\tconst selection = tree.getSelection();\n\t\t\t\tconst focus = tree.getFocus();\n\n\t\t\t\tthis.hasSelectionOrFocus.set(selection.length > 0 || focus.length > 0);\n\t\t\t\tupdateCollapseContextKeys();\n\t\t\t}),\n\t\t\ttree.onDidChangeCollapseState(updateCollapseContextKeys),\n\t\t\ttree.onDidChangeModel(updateCollapseContextKeys),\n\t\t\ttree.onDidChangeFindOpenState(enabled => this.treeFindOpen.set(enabled)),\n\t\t\ttree.onDidChangeStickyScrollFocused(focused => this.treeStickyScrollFocused.set(focused)),\n\t\t\tconfigurationService.onDidChangeConfiguration(e => {\n\t\t\t\tlet newOptions: IAbstractTreeOptionsUpdate = {};\n\t\t\t\tif (e.affectsConfiguration(multiSelectModifierSettingKey)) {\n\t\t\t\t\tthis._useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n\t\t\t\t}\n\t\t\t\tif (e.affectsConfiguration(treeIndentKey)) {\n\t\t\t\t\tconst indent = configurationService.getValue<number>(treeIndentKey);\n\t\t\t\t\tnewOptions = { ...newOptions, indent };\n\t\t\t\t}\n\t\t\t\tif (e.affectsConfiguration(treeRenderIndentGuidesKey) && options.renderIndentGuides === undefined) {\n\t\t\t\t\tconst renderIndentGuides = configurationService.getValue<RenderIndentGuides>(treeRenderIndentGuidesKey);\n\t\t\t\t\tnewOptions = { ...newOptions, renderIndentGuides };\n\t\t\t\t}\n\t\t\t\tif (e.affectsConfiguration(listSmoothScrolling)) {\n\t\t\t\t\tconst smoothScrolling = Boolean(configurationService.getValue(listSmoothScrolling));\n\t\t\t\t\tnewOptions = { ...newOptions, smoothScrolling };\n\t\t\t\t}\n\t\t\t\tif (e.affectsConfiguration(defaultFindModeSettingKey) || e.affectsConfiguration(keyboardNavigationSettingKey)) {\n\t\t\t\t\tconst defaultFindMode = getDefaultTreeFindMode(configurationService);\n\t\t\t\t\tnewOptions = { ...newOptions, defaultFindMode };\n\t\t\t\t}\n\t\t\t\tif (e.affectsConfiguration(typeNavigationModeSettingKey) || e.affectsConfiguration(keyboardNavigationSettingKey)) {\n\t\t\t\t\tconst typeNavigationMode = getTypeNavigationMode();\n\t\t\t\t\tnewOptions = { ...newOptions, typeNavigationMode };\n\t\t\t\t}\n\t\t\t\tif (e.affectsConfiguration(defaultFindMatchTypeSettingKey)) {\n\t\t\t\t\tconst defaultFindMatchType = getDefaultTreeFindMatchType(configurationService);\n\t\t\t\t\tnewOptions = { ...newOptions, defaultFindMatchType };\n\t\t\t\t}\n\t\t\t\tif (e.affectsConfiguration(horizontalScrollingKey) && options.horizontalScrolling === undefined) {\n\t\t\t\t\tconst horizontalScrolling = Boolean(configurationService.getValue(horizontalScrollingKey));\n\t\t\t\t\tnewOptions = { ...newOptions, horizontalScrolling };\n\t\t\t\t}\n\t\t\t\tif (e.affectsConfiguration(scrollByPageKey)) {\n\t\t\t\t\tconst scrollByPage = Boolean(configurationService.getValue(scrollByPageKey));\n\t\t\t\t\tnewOptions = { ...newOptions, scrollByPage };\n\t\t\t\t}\n\t\t\t\tif (e.affectsConfiguration(treeExpandMode) && options.expandOnlyOnTwistieClick === undefined) {\n\t\t\t\t\tnewOptions = { ...newOptions, expandOnlyOnTwistieClick: configurationService.getValue<'singleClick' | 'doubleClick'>(treeExpandMode) === 'doubleClick' };\n\t\t\t\t}\n\t\t\t\tif (e.affectsConfiguration(treeStickyScroll)) {\n\t\t\t\t\tconst enableStickyScroll = configurationService.getValue<boolean>(treeStickyScroll);\n\t\t\t\t\tnewOptions = { ...newOptions, enableStickyScroll };\n\t\t\t\t}\n\t\t\t\tif (e.affectsConfiguration(treeStickyScrollMaxElements)) {\n\t\t\t\t\tconst stickyScrollMaxItemCount = Math.max(1, configurationService.getValue<number>(treeStickyScrollMaxElements));\n\t\t\t\t\tnewOptions = { ...newOptions, stickyScrollMaxItemCount };\n\t\t\t\t}\n\t\t\t\tif (e.affectsConfiguration(mouseWheelScrollSensitivityKey)) {\n\t\t\t\t\tconst mouseWheelScrollSensitivity = configurationService.getValue<number>(mouseWheelScrollSensitivityKey);\n\t\t\t\t\tnewOptions = { ...newOptions, mouseWheelScrollSensitivity };\n\t\t\t\t}\n\t\t\t\tif (e.affectsConfiguration(fastScrollSensitivityKey)) {\n\t\t\t\t\tconst fastScrollSensitivity = configurationService.getValue<number>(fastScrollSensitivityKey);\n\t\t\t\t\tnewOptions = { ...newOptions, fastScrollSensitivity };\n\t\t\t\t}\n\t\t\t\tif (Object.keys(newOptions).length > 0) {\n\t\t\t\t\ttree.updateOptions(newOptions);\n\t\t\t\t}\n\t\t\t}),\n\t\t\tthis.contextKeyService.onDidChangeContext(e => {\n\t\t\t\tif (e.affectsSome(interestingContextKeys)) {\n\t\t\t\t\ttree.updateOptions({ typeNavigationMode: getTypeNavigationMode() });\n\t\t\t\t}\n\t\t\t})\n\t\t);\n\n\t\tthis.navigator = new TreeResourceNavigator(tree, { configurationService, ...options });\n\t\tthis.disposables.push(this.navigator);\n\t}\n\n\tupdateOptions(options: IWorkbenchTreeInternalsOptionsUpdate): void {\n\t\tif (options.multipleSelectionSupport !== undefined) {\n\t\t\tthis.listSupportsMultiSelect.set(!!options.multipleSelectionSupport);\n\t\t}\n\t}\n\n\tupdateStyleOverrides(overrideStyles?: IStyleOverride<IListStyles>): void {\n\t\tthis.tree.style(overrideStyles ? getListStyles(overrideStyles) : defaultListStyles);\n\t}\n\n\tdispose(): void {\n\t\tthis.disposables = dispose(this.disposables);\n\t}\n}\n\nconst configurationRegistry = Registry.as<IConfigurationRegistry>(ConfigurationExtensions.Configuration);\n\nconfigurationRegistry.registerConfiguration({\n\tid: 'workbench',\n\torder: 7,\n\ttitle: localize('workbenchConfigurationTitle', \"Workbench\"),\n\ttype: 'object',\n\tproperties: {\n\t\t[multiSelectModifierSettingKey]: {\n\t\t\ttype: 'string',\n\t\t\tenum: ['ctrlCmd', 'alt'],\n\t\t\tmarkdownEnumDescriptions: [\n\t\t\t\tlocalize('multiSelectModifier.ctrlCmd', \"Maps to `Control` on Windows and Linux and to `Command` on macOS.\"),\n\t\t\t\tlocalize('multiSelectModifier.alt', \"Maps to `Alt` on Windows and Linux and to `Option` on macOS.\")\n\t\t\t],\n\t\t\tdefault: 'ctrlCmd',\n\t\t\tdescription: localize({\n\t\t\t\tkey: 'multiSelectModifier',\n\t\t\t\tcomment: [\n\t\t\t\t\t'- `ctrlCmd` refers to a value the setting can take and should not be localized.',\n\t\t\t\t\t'- `Control` and `Command` refer to the modifier keys Ctrl or Cmd on the keyboard and can be localized.'\n\t\t\t\t]\n\t\t\t}, \"The modifier to be used to add an item in trees and lists to a multi-selection with the mouse (for example in the explorer, open editors and scm view). The 'Open to Side' mouse gestures - if supported - will adapt such that they do not conflict with the multiselect modifier.\")\n\t\t},\n\t\t[openModeSettingKey]: {\n\t\t\ttype: 'string',\n\t\t\tenum: ['singleClick', 'doubleClick'],\n\t\t\tdefault: 'singleClick',\n\t\t\tdescription: localize({\n\t\t\t\tkey: 'openModeModifier',\n\t\t\t\tcomment: ['`singleClick` and `doubleClick` refers to a value the setting can take and should not be localized.']\n\t\t\t}, \"Controls how to open items in trees and lists using the mouse (if supported). Note that some trees and lists might choose to ignore this setting if it is not applicable.\")\n\t\t},\n\t\t[horizontalScrollingKey]: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t\tdescription: localize('horizontalScrolling setting', \"Controls whether lists and trees support horizontal scrolling in the workbench. Warning: turning on this setting has a performance implication.\")\n\t\t},\n\t\t[scrollByPageKey]: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t\tdescription: localize('list.scrollByPage', \"Controls whether clicks in the scrollbar scroll page by page.\")\n\t\t},\n\t\t[treeIndentKey]: {\n\t\t\ttype: 'number',\n\t\t\tdefault: 8,\n\t\t\tminimum: 4,\n\t\t\tmaximum: 40,\n\t\t\tdescription: localize('tree indent setting', \"Controls tree indentation in pixels.\")\n\t\t},\n\t\t[treeRenderIndentGuidesKey]: {\n\t\t\ttype: 'string',\n\t\t\tenum: ['none', 'onHover', 'always'],\n\t\t\tdefault: 'onHover',\n\t\t\tdescription: localize('render tree indent guides', \"Controls whether the tree should render indent guides.\")\n\t\t},\n\t\t[listSmoothScrolling]: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t\tdescription: localize('list smoothScrolling setting', \"Controls whether lists and trees have smooth scrolling.\"),\n\t\t},\n\t\t[mouseWheelScrollSensitivityKey]: {\n\t\t\ttype: 'number',\n\t\t\tdefault: 1,\n\t\t\tmarkdownDescription: localize('Mouse Wheel Scroll Sensitivity', \"A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.\")\n\t\t},\n\t\t[fastScrollSensitivityKey]: {\n\t\t\ttype: 'number',\n\t\t\tdefault: 5,\n\t\t\tmarkdownDescription: localize('Fast Scroll Sensitivity', \"Scrolling speed multiplier when pressing `Alt`.\")\n\t\t},\n\t\t[defaultFindModeSettingKey]: {\n\t\t\ttype: 'string',\n\t\t\tenum: ['highlight', 'filter'],\n\t\t\tenumDescriptions: [\n\t\t\t\tlocalize('defaultFindModeSettingKey.highlight', \"Highlight elements when searching. Further up and down navigation will traverse only the highlighted elements.\"),\n\t\t\t\tlocalize('defaultFindModeSettingKey.filter', \"Filter elements when searching.\")\n\t\t\t],\n\t\t\tdefault: 'highlight',\n\t\t\tdescription: localize('defaultFindModeSettingKey', \"Controls the default find mode for lists and trees in the workbench.\")\n\t\t},\n\t\t[keyboardNavigationSettingKey]: {\n\t\t\ttype: 'string',\n\t\t\tenum: ['simple', 'highlight', 'filter'],\n\t\t\tenumDescriptions: [\n\t\t\t\tlocalize('keyboardNavigationSettingKey.simple', \"Simple keyboard navigation focuses elements which match the keyboard input. Matching is done only on prefixes.\"),\n\t\t\t\tlocalize('keyboardNavigationSettingKey.highlight', \"Highlight keyboard navigation highlights elements which match the keyboard input. Further up and down navigation will traverse only the highlighted elements.\"),\n\t\t\t\tlocalize('keyboardNavigationSettingKey.filter', \"Filter keyboard navigation will filter out and hide all the elements which do not match the keyboard input.\")\n\t\t\t],\n\t\t\tdefault: 'highlight',\n\t\t\tdescription: localize('keyboardNavigationSettingKey', \"Controls the keyboard navigation style for lists and trees in the workbench. Can be simple, highlight and filter.\"),\n\t\t\tdeprecated: true,\n\t\t\tdeprecationMessage: localize('keyboardNavigationSettingKeyDeprecated', \"Please use 'workbench.list.defaultFindMode' and\t'workbench.list.typeNavigationMode' instead.\")\n\t\t},\n\t\t[defaultFindMatchTypeSettingKey]: {\n\t\t\ttype: 'string',\n\t\t\tenum: ['fuzzy', 'contiguous'],\n\t\t\tenumDescriptions: [\n\t\t\t\tlocalize('defaultFindMatchTypeSettingKey.fuzzy', \"Use fuzzy matching when searching.\"),\n\t\t\t\tlocalize('defaultFindMatchTypeSettingKey.contiguous', \"Use contiguous matching when searching.\")\n\t\t\t],\n\t\t\tdefault: 'fuzzy',\n\t\t\tdescription: localize('defaultFindMatchTypeSettingKey', \"Controls the type of matching used when searching lists and trees in the workbench.\")\n\t\t},\n\t\t[treeExpandMode]: {\n\t\t\ttype: 'string',\n\t\t\tenum: ['singleClick', 'doubleClick'],\n\t\t\tdefault: 'singleClick',\n\t\t\tdescription: localize('expand mode', \"Controls how tree folders are expanded when clicking the folder names. Note that some trees and lists might choose to ignore this setting if it is not applicable.\"),\n\t\t},\n\t\t[treeStickyScroll]: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: true,\n\t\t\tdescription: localize('sticky scroll', \"Controls whether sticky scrolling is enabled in trees.\"),\n\t\t},\n\t\t[treeStickyScrollMaxElements]: {\n\t\t\ttype: 'number',\n\t\t\tminimum: 1,\n\t\t\tdefault: 7,\n\t\t\tmarkdownDescription: localize('sticky scroll maximum items', \"Controls the number of sticky elements displayed in the tree when {0} is enabled.\", '`#workbench.tree.enableStickyScroll#`'),\n\t\t},\n\t\t[typeNavigationModeSettingKey]: {\n\t\t\ttype: 'string',\n\t\t\tenum: ['automatic', 'trigger'],\n\t\t\tdefault: 'automatic',\n\t\t\tmarkdownDescription: localize('typeNavigationMode2', \"Controls how type navigation works in lists and trees in the workbench. When set to `trigger`, type navigation begins once the `list.triggerTypeNavigation` command is run.\"),\n\t\t}\n\t}\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["vs/platform/list/browser/listService.ts"],"names":[],"mappings":"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","file":"listService.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { isActiveElement, isKeyboardEvent } from '../../../base/browser/dom.js';\nimport { IContextViewProvider } from '../../../base/browser/ui/contextview/contextview.js';\nimport { IListMouseEvent, IListRenderer, IListTouchEvent, IListVirtualDelegate } from '../../../base/browser/ui/list/list.js';\nimport { IPagedListOptions, IPagedRenderer, PagedList } from '../../../base/browser/ui/list/listPaging.js';\nimport { IKeyboardNavigationEventFilter, IListAccessibilityProvider, IListOptions, IListOptionsUpdate, IListStyles, IMultipleSelectionController, isSelectionRangeChangeEvent, isSelectionSingleChangeEvent, List, TypeNavigationMode } from '../../../base/browser/ui/list/listWidget.js';\nimport { ITableColumn, ITableRenderer, ITableVirtualDelegate } from '../../../base/browser/ui/table/table.js';\nimport { ITableOptions, ITableOptionsUpdate, ITableStyles, Table } from '../../../base/browser/ui/table/tableWidget.js';\nimport { IAbstractTreeOptions, IAbstractTreeOptionsUpdate, RenderIndentGuides, TreeFindMatchType, TreeFindMode } from '../../../base/browser/ui/tree/abstractTree.js';\nimport { AsyncDataTree, CompressibleAsyncDataTree, IAsyncDataTreeOptions, IAsyncDataTreeOptionsUpdate, ICompressibleAsyncDataTreeOptions, ICompressibleAsyncDataTreeOptionsUpdate, ITreeCompressionDelegate } from '../../../base/browser/ui/tree/asyncDataTree.js';\nimport { DataTree, IDataTreeOptions } from '../../../base/browser/ui/tree/dataTree.js';\nimport { CompressibleObjectTree, ICompressibleObjectTreeOptions, ICompressibleObjectTreeOptionsUpdate, ICompressibleTreeRenderer, IObjectTreeOptions, ObjectTree } from '../../../base/browser/ui/tree/objectTree.js';\nimport { IAsyncDataSource, IDataSource, ITreeEvent, ITreeRenderer } from '../../../base/browser/ui/tree/tree.js';\nimport { Emitter, Event } from '../../../base/common/event.js';\nimport { combinedDisposable, Disposable, DisposableStore, dispose, IDisposable, toDisposable } from '../../../base/common/lifecycle.js';\nimport { localize } from '../../../nls.js';\nimport { IConfigurationService } from '../../configuration/common/configuration.js';\nimport { Extensions as ConfigurationExtensions, IConfigurationRegistry } from '../../configuration/common/configurationRegistry.js';\nimport { ContextKeyExpr, IContextKey, IContextKeyService, IScopedContextKeyService, RawContextKey } from '../../contextkey/common/contextkey.js';\nimport { InputFocusedContextKey } from '../../contextkey/common/contextkeys.js';\nimport { IContextViewService } from '../../contextview/browser/contextView.js';\nimport { IEditorOptions } from '../../editor/common/editor.js';\nimport { createDecorator, IInstantiationService, ServicesAccessor } from '../../instantiation/common/instantiation.js';\nimport { IKeybindingService } from '../../keybinding/common/keybinding.js';\nimport { ResultKind } from '../../keybinding/common/keybindingResolver.js';\nimport { Registry } from '../../registry/common/platform.js';\nimport { defaultFindWidgetStyles, defaultListStyles, getListStyles, IStyleOverride } from '../../theme/browser/defaultStyles.js';\n\nexport type ListWidget = List<any> | PagedList<any> | ObjectTree<any, any> | DataTree<any, any, any> | AsyncDataTree<any, any, any> | Table<any>;\nexport type WorkbenchListWidget = WorkbenchList<any> | WorkbenchPagedList<any> | WorkbenchObjectTree<any, any> | WorkbenchCompressibleObjectTree<any, any> | WorkbenchDataTree<any, any, any> | WorkbenchAsyncDataTree<any, any, any> | WorkbenchCompressibleAsyncDataTree<any, any, any> | WorkbenchTable<any>;\n\nexport const IListService = createDecorator<IListService>('listService');\n\nexport interface IListService {\n\n\treadonly _serviceBrand: undefined;\n\n\t/**\n\t * Returns the currently focused list widget if any.\n\t */\n\treadonly lastFocusedList: WorkbenchListWidget | undefined;\n}\n\ninterface IRegisteredList {\n\twidget: WorkbenchListWidget;\n\textraContextKeys?: (IContextKey<boolean>)[];\n}\n\nexport class ListService implements IListService {\n\n\tdeclare readonly _serviceBrand: undefined;\n\n\tprivate readonly disposables = new DisposableStore();\n\tprivate lists: IRegisteredList[] = [];\n\tprivate _lastFocusedWidget: WorkbenchListWidget | undefined = undefined;\n\n\tget lastFocusedList(): WorkbenchListWidget | undefined {\n\t\treturn this._lastFocusedWidget;\n\t}\n\n\tconstructor() { }\n\n\tprivate setLastFocusedList(widget: WorkbenchListWidget | undefined): void {\n\t\tif (widget === this._lastFocusedWidget) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._lastFocusedWidget?.getHTMLElement().classList.remove('last-focused');\n\t\tthis._lastFocusedWidget = widget;\n\t\tthis._lastFocusedWidget?.getHTMLElement().classList.add('last-focused');\n\t}\n\n\tregister(widget: WorkbenchListWidget, extraContextKeys?: (IContextKey<boolean>)[]): IDisposable {\n\t\tif (this.lists.some(l => l.widget === widget)) {\n\t\t\tthrow new Error('Cannot register the same widget multiple times');\n\t\t}\n\n\t\t// Keep in our lists list\n\t\tconst registeredList: IRegisteredList = { widget, extraContextKeys };\n\t\tthis.lists.push(registeredList);\n\n\t\t// Check for currently being focused\n\t\tif (isActiveElement(widget.getHTMLElement())) {\n\t\t\tthis.setLastFocusedList(widget);\n\t\t}\n\n\t\treturn combinedDisposable(\n\t\t\twidget.onDidFocus(() => this.setLastFocusedList(widget)),\n\t\t\ttoDisposable(() => this.lists.splice(this.lists.indexOf(registeredList), 1)),\n\t\t\twidget.onDidDispose(() => {\n\t\t\t\tthis.lists = this.lists.filter(l => l !== registeredList);\n\t\t\t\tif (this._lastFocusedWidget === widget) {\n\t\t\t\t\tthis.setLastFocusedList(undefined);\n\t\t\t\t}\n\t\t\t})\n\t\t);\n\t}\n\n\tdispose(): void {\n\t\tthis.disposables.dispose();\n\t}\n}\n\nexport const RawWorkbenchListScrollAtBoundaryContextKey = new RawContextKey<'none' | 'top' | 'bottom' | 'both'>('listScrollAtBoundary', 'none');\nexport const WorkbenchListScrollAtTopContextKey = ContextKeyExpr.or(\n\tRawWorkbenchListScrollAtBoundaryContextKey.isEqualTo('top'),\n\tRawWorkbenchListScrollAtBoundaryContextKey.isEqualTo('both'));\nexport const WorkbenchListScrollAtBottomContextKey = ContextKeyExpr.or(\n\tRawWorkbenchListScrollAtBoundaryContextKey.isEqualTo('bottom'),\n\tRawWorkbenchListScrollAtBoundaryContextKey.isEqualTo('both'));\n\nexport const RawWorkbenchListFocusContextKey = new RawContextKey<boolean>('listFocus', true);\nexport const WorkbenchTreeStickyScrollFocused = new RawContextKey<boolean>('treestickyScrollFocused', false);\nexport const WorkbenchListSupportsMultiSelectContextKey = new RawContextKey<boolean>('listSupportsMultiselect', true);\nexport const WorkbenchListFocusContextKey = ContextKeyExpr.and(RawWorkbenchListFocusContextKey, ContextKeyExpr.not(InputFocusedContextKey), WorkbenchTreeStickyScrollFocused.negate());\nexport const WorkbenchListHasSelectionOrFocus = new RawContextKey<boolean>('listHasSelectionOrFocus', false);\nexport const WorkbenchListDoubleSelection = new RawContextKey<boolean>('listDoubleSelection', false);\nexport const WorkbenchListMultiSelection = new RawContextKey<boolean>('listMultiSelection', false);\nexport const WorkbenchListSelectionNavigation = new RawContextKey<boolean>('listSelectionNavigation', false);\nexport const WorkbenchListSupportsFind = new RawContextKey<boolean>('listSupportsFind', true);\nexport const WorkbenchTreeElementCanCollapse = new RawContextKey<boolean>('treeElementCanCollapse', false);\nexport const WorkbenchTreeElementHasParent = new RawContextKey<boolean>('treeElementHasParent', false);\nexport const WorkbenchTreeElementCanExpand = new RawContextKey<boolean>('treeElementCanExpand', false);\nexport const WorkbenchTreeElementHasChild = new RawContextKey<boolean>('treeElementHasChild', false);\nexport const WorkbenchTreeFindOpen = new RawContextKey<boolean>('treeFindOpen', false);\nconst WorkbenchListTypeNavigationModeKey = 'listTypeNavigationMode';\n\n/**\n * @deprecated in favor of WorkbenchListTypeNavigationModeKey\n */\nconst WorkbenchListAutomaticKeyboardNavigationLegacyKey = 'listAutomaticKeyboardNavigation';\n\nfunction createScopedContextKeyService(contextKeyService: IContextKeyService, widget: ListWidget): IScopedContextKeyService {\n\tconst result = contextKeyService.createScoped(widget.getHTMLElement());\n\tRawWorkbenchListFocusContextKey.bindTo(result);\n\treturn result;\n}\n\n// Note: We must declare IScrollObservarable as the arithmetic of concrete classes,\n// instead of object type like { onDidScroll: Event<any>; ... }. The latter will not mark\n// those properties as referenced during tree-shaking, causing them to be shaked away.\ntype IScrollObservarable = Exclude<WorkbenchListWidget, WorkbenchPagedList<any>> | List<any>;\n\nfunction createScrollObserver(contextKeyService: IContextKeyService, widget: IScrollObservarable): IDisposable {\n\tconst listScrollAt = RawWorkbenchListScrollAtBoundaryContextKey.bindTo(contextKeyService);\n\tconst update = () => {\n\t\tconst atTop = widget.scrollTop === 0;\n\n\t\t// We need a threshold `1` since scrollHeight is rounded.\n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight#determine_if_an_element_has_been_totally_scrolled\n\t\tconst atBottom = widget.scrollHeight - widget.renderHeight - widget.scrollTop < 1;\n\t\tif (atTop && atBottom) {\n\t\t\tlistScrollAt.set('both');\n\t\t} else if (atTop) {\n\t\t\tlistScrollAt.set('top');\n\t\t} else if (atBottom) {\n\t\t\tlistScrollAt.set('bottom');\n\t\t} else {\n\t\t\tlistScrollAt.set('none');\n\t\t}\n\t};\n\tupdate();\n\treturn widget.onDidScroll(update);\n}\n\nconst multiSelectModifierSettingKey = 'workbench.list.multiSelectModifier';\nconst openModeSettingKey = 'workbench.list.openMode';\nconst horizontalScrollingKey = 'workbench.list.horizontalScrolling';\nconst defaultFindModeSettingKey = 'workbench.list.defaultFindMode';\nconst typeNavigationModeSettingKey = 'workbench.list.typeNavigationMode';\n/** @deprecated in favor of `workbench.list.defaultFindMode` and `workbench.list.typeNavigationMode` */\nconst keyboardNavigationSettingKey = 'workbench.list.keyboardNavigation';\nconst scrollByPageKey = 'workbench.list.scrollByPage';\nconst defaultFindMatchTypeSettingKey = 'workbench.list.defaultFindMatchType';\nconst treeIndentKey = 'workbench.tree.indent';\nconst treeRenderIndentGuidesKey = 'workbench.tree.renderIndentGuides';\nconst listSmoothScrolling = 'workbench.list.smoothScrolling';\nconst mouseWheelScrollSensitivityKey = 'workbench.list.mouseWheelScrollSensitivity';\nconst fastScrollSensitivityKey = 'workbench.list.fastScrollSensitivity';\nconst treeExpandMode = 'workbench.tree.expandMode';\nconst treeStickyScroll = 'workbench.tree.enableStickyScroll';\nconst treeStickyScrollMaxElements = 'workbench.tree.stickyScrollMaxItemCount';\n\nfunction useAltAsMultipleSelectionModifier(configurationService: IConfigurationService): boolean {\n\treturn configurationService.getValue(multiSelectModifierSettingKey) === 'alt';\n}\n\nclass MultipleSelectionController<T> extends Disposable implements IMultipleSelectionController<T> {\n\tprivate useAltAsMultipleSelectionModifier: boolean;\n\n\tconstructor(private configurationService: IConfigurationService) {\n\t\tsuper();\n\n\t\tthis.useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n\n\t\tthis.registerListeners();\n\t}\n\n\tprivate registerListeners(): void {\n\t\tthis._register(this.configurationService.onDidChangeConfiguration(e => {\n\t\t\tif (e.affectsConfiguration(multiSelectModifierSettingKey)) {\n\t\t\t\tthis.useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(this.configurationService);\n\t\t\t}\n\t\t}));\n\t}\n\n\tisSelectionSingleChangeEvent(event: IListMouseEvent<T> | IListTouchEvent<T>): boolean {\n\t\tif (this.useAltAsMultipleSelectionModifier) {\n\t\t\treturn event.browserEvent.altKey;\n\t\t}\n\n\t\treturn isSelectionSingleChangeEvent(event);\n\t}\n\n\tisSelectionRangeChangeEvent(event: IListMouseEvent<T> | IListTouchEvent<T>): boolean {\n\t\treturn isSelectionRangeChangeEvent(event);\n\t}\n}\n\nfunction toWorkbenchListOptions<T>(\n\taccessor: ServicesAccessor,\n\toptions: IListOptions<T>,\n): [IListOptions<T>, IDisposable] {\n\tconst configurationService = accessor.get(IConfigurationService);\n\tconst keybindingService = accessor.get(IKeybindingService);\n\n\tconst disposables = new DisposableStore();\n\tconst result: IListOptions<T> = {\n\t\t...options,\n\t\tkeyboardNavigationDelegate: { mightProducePrintableCharacter(e) { return keybindingService.mightProducePrintableCharacter(e); } },\n\t\tsmoothScrolling: Boolean(configurationService.getValue(listSmoothScrolling)),\n\t\tmouseWheelScrollSensitivity: configurationService.getValue<number>(mouseWheelScrollSensitivityKey),\n\t\tfastScrollSensitivity: configurationService.getValue<number>(fastScrollSensitivityKey),\n\t\tmultipleSelectionController: options.multipleSelectionController ?? disposables.add(new MultipleSelectionController(configurationService)),\n\t\tkeyboardNavigationEventFilter: createKeyboardNavigationEventFilter(keybindingService),\n\t\tscrollByPage: Boolean(configurationService.getValue(scrollByPageKey))\n\t};\n\n\treturn [result, disposables];\n}\n\nexport interface IWorkbenchListOptionsUpdate extends IListOptionsUpdate {\n\treadonly overrideStyles?: IStyleOverride<IListStyles>;\n}\n\nexport interface IWorkbenchListOptions<T> extends IWorkbenchListOptionsUpdate, IResourceNavigatorOptions, IListOptions<T> {\n\treadonly selectionNavigation?: boolean;\n}\n\nexport class WorkbenchList<T> extends List<T> {\n\n\treadonly contextKeyService: IScopedContextKeyService;\n\tprivate listSupportsMultiSelect: IContextKey<boolean>;\n\tprivate listHasSelectionOrFocus: IContextKey<boolean>;\n\tprivate listDoubleSelection: IContextKey<boolean>;\n\tprivate listMultiSelection: IContextKey<boolean>;\n\tprivate horizontalScrolling: boolean | undefined;\n\tprivate _useAltAsMultipleSelectionModifier: boolean;\n\tprivate navigator: ListResourceNavigator<T>;\n\n\tconstructor(\n\t\tuser: string,\n\t\tcontainer: HTMLElement,\n\t\tdelegate: IListVirtualDelegate<T>,\n\t\trenderers: IListRenderer<T, any>[],\n\t\toptions: IWorkbenchListOptions<T>,\n\t\t@IContextKeyService contextKeyService: IContextKeyService,\n\t\t@IListService listService: IListService,\n\t\t@IConfigurationService configurationService: IConfigurationService,\n\t\t@IInstantiationService instantiationService: IInstantiationService\n\t) {\n\t\tconst horizontalScrolling = typeof options.horizontalScrolling !== 'undefined' ? options.horizontalScrolling : Boolean(configurationService.getValue(horizontalScrollingKey));\n\t\tconst [workbenchListOptions, workbenchListOptionsDisposable] = instantiationService.invokeFunction(toWorkbenchListOptions, options);\n\n\t\tsuper(user, container, delegate, renderers,\n\t\t\t{\n\t\t\t\tkeyboardSupport: false,\n\t\t\t\t...workbenchListOptions,\n\t\t\t\thorizontalScrolling,\n\t\t\t}\n\t\t);\n\n\t\tthis.disposables.add(workbenchListOptionsDisposable);\n\n\t\tthis.contextKeyService = createScopedContextKeyService(contextKeyService, this);\n\n\t\tthis.disposables.add(createScrollObserver(this.contextKeyService, this));\n\n\t\tthis.listSupportsMultiSelect = WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService);\n\t\tthis.listSupportsMultiSelect.set(options.multipleSelectionSupport !== false);\n\n\t\tconst listSelectionNavigation = WorkbenchListSelectionNavigation.bindTo(this.contextKeyService);\n\t\tlistSelectionNavigation.set(Boolean(options.selectionNavigation));\n\n\t\tthis.listHasSelectionOrFocus = WorkbenchListHasSelectionOrFocus.bindTo(this.contextKeyService);\n\t\tthis.listDoubleSelection = WorkbenchListDoubleSelection.bindTo(this.contextKeyService);\n\t\tthis.listMultiSelection = WorkbenchListMultiSelection.bindTo(this.contextKeyService);\n\t\tthis.horizontalScrolling = options.horizontalScrolling;\n\n\t\tthis._useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n\n\t\tthis.disposables.add(this.contextKeyService);\n\t\tthis.disposables.add((listService as ListService).register(this));\n\n\t\tthis.updateStyles(options.overrideStyles);\n\n\t\tthis.disposables.add(this.onDidChangeSelection(() => {\n\t\t\tconst selection = this.getSelection();\n\t\t\tconst focus = this.getFocus();\n\n\t\t\tthis.contextKeyService.bufferChangeEvents(() => {\n\t\t\t\tthis.listHasSelectionOrFocus.set(selection.length > 0 || focus.length > 0);\n\t\t\t\tthis.listMultiSelection.set(selection.length > 1);\n\t\t\t\tthis.listDoubleSelection.set(selection.length === 2);\n\t\t\t});\n\t\t}));\n\t\tthis.disposables.add(this.onDidChangeFocus(() => {\n\t\t\tconst selection = this.getSelection();\n\t\t\tconst focus = this.getFocus();\n\n\t\t\tthis.listHasSelectionOrFocus.set(selection.length > 0 || focus.length > 0);\n\t\t}));\n\t\tthis.disposables.add(configurationService.onDidChangeConfiguration(e => {\n\t\t\tif (e.affectsConfiguration(multiSelectModifierSettingKey)) {\n\t\t\t\tthis._useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n\t\t\t}\n\n\t\t\tlet options: IListOptionsUpdate = {};\n\n\t\t\tif (e.affectsConfiguration(horizontalScrollingKey) && this.horizontalScrolling === undefined) {\n\t\t\t\tconst horizontalScrolling = Boolean(configurationService.getValue(horizontalScrollingKey));\n\t\t\t\toptions = { ...options, horizontalScrolling };\n\t\t\t}\n\t\t\tif (e.affectsConfiguration(scrollByPageKey)) {\n\t\t\t\tconst scrollByPage = Boolean(configurationService.getValue(scrollByPageKey));\n\t\t\t\toptions = { ...options, scrollByPage };\n\t\t\t}\n\t\t\tif (e.affectsConfiguration(listSmoothScrolling)) {\n\t\t\t\tconst smoothScrolling = Boolean(configurationService.getValue(listSmoothScrolling));\n\t\t\t\toptions = { ...options, smoothScrolling };\n\t\t\t}\n\t\t\tif (e.affectsConfiguration(mouseWheelScrollSensitivityKey)) {\n\t\t\t\tconst mouseWheelScrollSensitivity = configurationService.getValue<number>(mouseWheelScrollSensitivityKey);\n\t\t\t\toptions = { ...options, mouseWheelScrollSensitivity };\n\t\t\t}\n\t\t\tif (e.affectsConfiguration(fastScrollSensitivityKey)) {\n\t\t\t\tconst fastScrollSensitivity = configurationService.getValue<number>(fastScrollSensitivityKey);\n\t\t\t\toptions = { ...options, fastScrollSensitivity };\n\t\t\t}\n\t\t\tif (Object.keys(options).length > 0) {\n\t\t\t\tthis.updateOptions(options);\n\t\t\t}\n\t\t}));\n\n\t\tthis.navigator = new ListResourceNavigator(this, { configurationService, ...options });\n\t\tthis.disposables.add(this.navigator);\n\t}\n\n\toverride updateOptions(options: IWorkbenchListOptionsUpdate): void {\n\t\tsuper.updateOptions(options);\n\n\t\tif (options.overrideStyles !== undefined) {\n\t\t\tthis.updateStyles(options.overrideStyles);\n\t\t}\n\n\t\tif (options.multipleSelectionSupport !== undefined) {\n\t\t\tthis.listSupportsMultiSelect.set(!!options.multipleSelectionSupport);\n\t\t}\n\t}\n\n\tprivate updateStyles(styles: IStyleOverride<IListStyles> | undefined): void {\n\t\tthis.style(styles ? getListStyles(styles) : defaultListStyles);\n\t}\n}\n\nexport interface IWorkbenchPagedListOptions<T> extends IWorkbenchListOptionsUpdate, IResourceNavigatorOptions, IPagedListOptions<T> {\n\treadonly selectionNavigation?: boolean;\n}\n\nexport class WorkbenchPagedList<T> extends PagedList<T> {\n\n\treadonly contextKeyService: IScopedContextKeyService;\n\tprivate readonly disposables: DisposableStore;\n\tprivate listSupportsMultiSelect: IContextKey<boolean>;\n\tprivate _useAltAsMultipleSelectionModifier: boolean;\n\tprivate horizontalScrolling: boolean | undefined;\n\tprivate navigator: ListResourceNavigator<T>;\n\n\tconstructor(\n\t\tuser: string,\n\t\tcontainer: HTMLElement,\n\t\tdelegate: IListVirtualDelegate<number>,\n\t\trenderers: IPagedRenderer<T, any>[],\n\t\toptions: IWorkbenchPagedListOptions<T>,\n\t\t@IContextKeyService contextKeyService: IContextKeyService,\n\t\t@IListService listService: IListService,\n\t\t@IConfigurationService configurationService: IConfigurationService,\n\t\t@IInstantiationService instantiationService: IInstantiationService\n\t) {\n\t\tconst horizontalScrolling = typeof options.horizontalScrolling !== 'undefined' ? options.horizontalScrolling : Boolean(configurationService.getValue(horizontalScrollingKey));\n\t\tconst [workbenchListOptions, workbenchListOptionsDisposable] = instantiationService.invokeFunction(toWorkbenchListOptions, options);\n\t\tsuper(user, container, delegate, renderers,\n\t\t\t{\n\t\t\t\tkeyboardSupport: false,\n\t\t\t\t...workbenchListOptions,\n\t\t\t\thorizontalScrolling,\n\t\t\t}\n\t\t);\n\n\t\tthis.disposables = new DisposableStore();\n\t\tthis.disposables.add(workbenchListOptionsDisposable);\n\n\t\tthis.contextKeyService = createScopedContextKeyService(contextKeyService, this);\n\n\t\tthis.disposables.add(createScrollObserver(this.contextKeyService, this.widget));\n\n\t\tthis.horizontalScrolling = options.horizontalScrolling;\n\n\t\tthis.listSupportsMultiSelect = WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService);\n\t\tthis.listSupportsMultiSelect.set(options.multipleSelectionSupport !== false);\n\n\t\tconst listSelectionNavigation = WorkbenchListSelectionNavigation.bindTo(this.contextKeyService);\n\t\tlistSelectionNavigation.set(Boolean(options.selectionNavigation));\n\n\t\tthis._useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n\n\t\tthis.disposables.add(this.contextKeyService);\n\t\tthis.disposables.add((listService as ListService).register(this));\n\n\t\tthis.updateStyles(options.overrideStyles);\n\n\t\tthis.disposables.add(configurationService.onDidChangeConfiguration(e => {\n\t\t\tif (e.affectsConfiguration(multiSelectModifierSettingKey)) {\n\t\t\t\tthis._useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n\t\t\t}\n\n\t\t\tlet options: IListOptionsUpdate = {};\n\n\t\t\tif (e.affectsConfiguration(horizontalScrollingKey) && this.horizontalScrolling === undefined) {\n\t\t\t\tconst horizontalScrolling = Boolean(configurationService.getValue(horizontalScrollingKey));\n\t\t\t\toptions = { ...options, horizontalScrolling };\n\t\t\t}\n\t\t\tif (e.affectsConfiguration(scrollByPageKey)) {\n\t\t\t\tconst scrollByPage = Boolean(configurationService.getValue(scrollByPageKey));\n\t\t\t\toptions = { ...options, scrollByPage };\n\t\t\t}\n\t\t\tif (e.affectsConfiguration(listSmoothScrolling)) {\n\t\t\t\tconst smoothScrolling = Boolean(configurationService.getValue(listSmoothScrolling));\n\t\t\t\toptions = { ...options, smoothScrolling };\n\t\t\t}\n\t\t\tif (e.affectsConfiguration(mouseWheelScrollSensitivityKey)) {\n\t\t\t\tconst mouseWheelScrollSensitivity = configurationService.getValue<number>(mouseWheelScrollSensitivityKey);\n\t\t\t\toptions = { ...options, mouseWheelScrollSensitivity };\n\t\t\t}\n\t\t\tif (e.affectsConfiguration(fastScrollSensitivityKey)) {\n\t\t\t\tconst fastScrollSensitivity = configurationService.getValue<number>(fastScrollSensitivityKey);\n\t\t\t\toptions = { ...options, fastScrollSensitivity };\n\t\t\t}\n\t\t\tif (Object.keys(options).length > 0) {\n\t\t\t\tthis.updateOptions(options);\n\t\t\t}\n\t\t}));\n\n\t\tthis.navigator = new ListResourceNavigator(this, { configurationService, ...options });\n\t\tthis.disposables.add(this.navigator);\n\t}\n\n\toverride updateOptions(options: IWorkbenchListOptionsUpdate): void {\n\t\tsuper.updateOptions(options);\n\n\t\tif (options.overrideStyles !== undefined) {\n\t\t\tthis.updateStyles(options.overrideStyles);\n\t\t}\n\n\t\tif (options.multipleSelectionSupport !== undefined) {\n\t\t\tthis.listSupportsMultiSelect.set(!!options.multipleSelectionSupport);\n\t\t}\n\t}\n\n\tprivate updateStyles(styles: IStyleOverride<IListStyles> | undefined): void {\n\t\tthis.style(styles ? getListStyles(styles) : defaultListStyles);\n\t}\n\n\toverride dispose(): void {\n\t\tthis.disposables.dispose();\n\t\tsuper.dispose();\n\t}\n}\n\nexport interface IWorkbenchTableOptionsUpdate extends ITableOptionsUpdate {\n\treadonly overrideStyles?: IStyleOverride<IListStyles>;\n}\n\nexport interface IWorkbenchTableOptions<T> extends IWorkbenchTableOptionsUpdate, IResourceNavigatorOptions, ITableOptions<T> {\n\treadonly selectionNavigation?: boolean;\n}\n\nexport class WorkbenchTable<TRow> extends Table<TRow> {\n\n\treadonly contextKeyService: IScopedContextKeyService;\n\tprivate listSupportsMultiSelect: IContextKey<boolean>;\n\tprivate listHasSelectionOrFocus: IContextKey<boolean>;\n\tprivate listDoubleSelection: IContextKey<boolean>;\n\tprivate listMultiSelection: IContextKey<boolean>;\n\tprivate horizontalScrolling: boolean | undefined;\n\tprivate _useAltAsMultipleSelectionModifier: boolean;\n\tprivate navigator: TableResourceNavigator<TRow>;\n\n\tconstructor(\n\t\tuser: string,\n\t\tcontainer: HTMLElement,\n\t\tdelegate: ITableVirtualDelegate<TRow>,\n\t\tcolumns: ITableColumn<TRow, any>[],\n\t\trenderers: ITableRenderer<TRow, any>[],\n\t\toptions: IWorkbenchTableOptions<TRow>,\n\t\t@IContextKeyService contextKeyService: IContextKeyService,\n\t\t@IListService listService: IListService,\n\t\t@IConfigurationService configurationService: IConfigurationService,\n\t\t@IInstantiationService instantiationService: IInstantiationService\n\t) {\n\t\tconst horizontalScrolling = typeof options.horizontalScrolling !== 'undefined' ? options.horizontalScrolling : Boolean(configurationService.getValue(horizontalScrollingKey));\n\t\tconst [workbenchListOptions, workbenchListOptionsDisposable] = instantiationService.invokeFunction(toWorkbenchListOptions, options);\n\n\t\tsuper(user, container, delegate, columns, renderers,\n\t\t\t{\n\t\t\t\tkeyboardSupport: false,\n\t\t\t\t...workbenchListOptions,\n\t\t\t\thorizontalScrolling,\n\t\t\t}\n\t\t);\n\n\t\tthis.disposables.add(workbenchListOptionsDisposable);\n\n\t\tthis.contextKeyService = createScopedContextKeyService(contextKeyService, this);\n\n\t\tthis.disposables.add(createScrollObserver(this.contextKeyService, this));\n\n\t\tthis.listSupportsMultiSelect = WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService);\n\t\tthis.listSupportsMultiSelect.set(options.multipleSelectionSupport !== false);\n\n\t\tconst listSelectionNavigation = WorkbenchListSelectionNavigation.bindTo(this.contextKeyService);\n\t\tlistSelectionNavigation.set(Boolean(options.selectionNavigation));\n\n\t\tthis.listHasSelectionOrFocus = WorkbenchListHasSelectionOrFocus.bindTo(this.contextKeyService);\n\t\tthis.listDoubleSelection = WorkbenchListDoubleSelection.bindTo(this.contextKeyService);\n\t\tthis.listMultiSelection = WorkbenchListMultiSelection.bindTo(this.contextKeyService);\n\t\tthis.horizontalScrolling = options.horizontalScrolling;\n\n\t\tthis._useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n\n\t\tthis.disposables.add(this.contextKeyService);\n\t\tthis.disposables.add((listService as ListService).register(this));\n\n\t\tthis.updateStyles(options.overrideStyles);\n\n\t\tthis.disposables.add(this.onDidChangeSelection(() => {\n\t\t\tconst selection = this.getSelection();\n\t\t\tconst focus = this.getFocus();\n\n\t\t\tthis.contextKeyService.bufferChangeEvents(() => {\n\t\t\t\tthis.listHasSelectionOrFocus.set(selection.length > 0 || focus.length > 0);\n\t\t\t\tthis.listMultiSelection.set(selection.length > 1);\n\t\t\t\tthis.listDoubleSelection.set(selection.length === 2);\n\t\t\t});\n\t\t}));\n\t\tthis.disposables.add(this.onDidChangeFocus(() => {\n\t\t\tconst selection = this.getSelection();\n\t\t\tconst focus = this.getFocus();\n\n\t\t\tthis.listHasSelectionOrFocus.set(selection.length > 0 || focus.length > 0);\n\t\t}));\n\t\tthis.disposables.add(configurationService.onDidChangeConfiguration(e => {\n\t\t\tif (e.affectsConfiguration(multiSelectModifierSettingKey)) {\n\t\t\t\tthis._useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n\t\t\t}\n\n\t\t\tlet options: IListOptionsUpdate = {};\n\n\t\t\tif (e.affectsConfiguration(horizontalScrollingKey) && this.horizontalScrolling === undefined) {\n\t\t\t\tconst horizontalScrolling = Boolean(configurationService.getValue(horizontalScrollingKey));\n\t\t\t\toptions = { ...options, horizontalScrolling };\n\t\t\t}\n\t\t\tif (e.affectsConfiguration(scrollByPageKey)) {\n\t\t\t\tconst scrollByPage = Boolean(configurationService.getValue(scrollByPageKey));\n\t\t\t\toptions = { ...options, scrollByPage };\n\t\t\t}\n\t\t\tif (e.affectsConfiguration(listSmoothScrolling)) {\n\t\t\t\tconst smoothScrolling = Boolean(configurationService.getValue(listSmoothScrolling));\n\t\t\t\toptions = { ...options, smoothScrolling };\n\t\t\t}\n\t\t\tif (e.affectsConfiguration(mouseWheelScrollSensitivityKey)) {\n\t\t\t\tconst mouseWheelScrollSensitivity = configurationService.getValue<number>(mouseWheelScrollSensitivityKey);\n\t\t\t\toptions = { ...options, mouseWheelScrollSensitivity };\n\t\t\t}\n\t\t\tif (e.affectsConfiguration(fastScrollSensitivityKey)) {\n\t\t\t\tconst fastScrollSensitivity = configurationService.getValue<number>(fastScrollSensitivityKey);\n\t\t\t\toptions = { ...options, fastScrollSensitivity };\n\t\t\t}\n\t\t\tif (Object.keys(options).length > 0) {\n\t\t\t\tthis.updateOptions(options);\n\t\t\t}\n\t\t}));\n\n\t\tthis.navigator = new TableResourceNavigator(this, { configurationService, ...options });\n\t\tthis.disposables.add(this.navigator);\n\t}\n\n\toverride updateOptions(options: IWorkbenchTableOptionsUpdate): void {\n\t\tsuper.updateOptions(options);\n\n\t\tif (options.overrideStyles !== undefined) {\n\t\t\tthis.updateStyles(options.overrideStyles);\n\t\t}\n\n\t\tif (options.multipleSelectionSupport !== undefined) {\n\t\t\tthis.listSupportsMultiSelect.set(!!options.multipleSelectionSupport);\n\t\t}\n\t}\n\n\tprivate updateStyles(styles: IStyleOverride<ITableStyles> | undefined): void {\n\t\tthis.style(styles ? getListStyles(styles) : defaultListStyles);\n\t}\n\n\toverride dispose(): void {\n\t\tthis.disposables.dispose();\n\t\tsuper.dispose();\n\t}\n}\n\nexport interface IOpenEvent<T> {\n\teditorOptions: IEditorOptions;\n\tsideBySide: boolean;\n\telement: T;\n\tbrowserEvent?: UIEvent;\n}\n\nexport interface IResourceNavigatorOptions {\n\treadonly configurationService?: IConfigurationService;\n\treadonly openOnSingleClick?: boolean;\n}\n\nexport interface SelectionKeyboardEvent extends KeyboardEvent {\n\tpreserveFocus?: boolean;\n\tpinned?: boolean;\n\t__forceEvent?: boolean;\n}\n\nabstract class ResourceNavigator<T> extends Disposable {\n\n\tprivate openOnSingleClick: boolean;\n\n\tprivate readonly _onDidOpen = this._register(new Emitter<IOpenEvent<T | undefined>>());\n\treadonly onDidOpen: Event<IOpenEvent<T | undefined>> = this._onDidOpen.event;\n\n\tconstructor(\n\t\tprotected readonly widget: ListWidget,\n\t\toptions?: IResourceNavigatorOptions\n\t) {\n\t\tsuper();\n\n\t\tthis._register(Event.filter(this.widget.onDidChangeSelection, e => isKeyboardEvent(e.browserEvent))(e => this.onSelectionFromKeyboard(e)));\n\t\tthis._register(this.widget.onPointer((e: { browserEvent: MouseEvent; element: T | undefined }) => this.onPointer(e.element, e.browserEvent)));\n\t\tthis._register(this.widget.onMouseDblClick((e: { browserEvent: MouseEvent; element: T | undefined }) => this.onMouseDblClick(e.element, e.browserEvent)));\n\n\t\tif (typeof options?.openOnSingleClick !== 'boolean' && options?.configurationService) {\n\t\t\tthis.openOnSingleClick = options?.configurationService.getValue(openModeSettingKey) !== 'doubleClick';\n\t\t\tthis._register(options?.configurationService.onDidChangeConfiguration(e => {\n\t\t\t\tif (e.affectsConfiguration(openModeSettingKey)) {\n\t\t\t\t\tthis.openOnSingleClick = options?.configurationService!.getValue(openModeSettingKey) !== 'doubleClick';\n\t\t\t\t}\n\t\t\t}));\n\t\t} else {\n\t\t\tthis.openOnSingleClick = options?.openOnSingleClick ?? true;\n\t\t}\n\t}\n\n\tprivate onSelectionFromKeyboard(event: ITreeEvent<any>): void {\n\t\tif (event.elements.length !== 1) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst selectionKeyboardEvent = event.browserEvent as SelectionKeyboardEvent;\n\t\tconst preserveFocus = typeof selectionKeyboardEvent.preserveFocus === 'boolean' ? selectionKeyboardEvent.preserveFocus : true;\n\t\tconst pinned = typeof selectionKeyboardEvent.pinned === 'boolean' ? selectionKeyboardEvent.pinned : !preserveFocus;\n\t\tconst sideBySide = false;\n\n\t\tthis._open(this.getSelectedElement(), preserveFocus, pinned, sideBySide, event.browserEvent);\n\t}\n\n\tprivate onPointer(element: T | undefined, browserEvent: MouseEvent): void {\n\t\tif (!this.openOnSingleClick) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isDoubleClick = browserEvent.detail === 2;\n\n\t\tif (isDoubleClick) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isMiddleClick = browserEvent.button === 1;\n\t\tconst preserveFocus = true;\n\t\tconst pinned = isMiddleClick;\n\t\tconst sideBySide = browserEvent.ctrlKey || browserEvent.metaKey || browserEvent.altKey;\n\n\t\tthis._open(element, preserveFocus, pinned, sideBySide, browserEvent);\n\t}\n\n\tprivate onMouseDblClick(element: T | undefined, browserEvent?: MouseEvent): void {\n\t\tif (!browserEvent) {\n\t\t\treturn;\n\t\t}\n\n\t\t// copied from AbstractTree\n\t\tconst target = browserEvent.target as HTMLElement;\n\t\tconst onTwistie = target.classList.contains('monaco-tl-twistie')\n\t\t\t|| (target.classList.contains('monaco-icon-label') && target.classList.contains('folder-icon') && browserEvent.offsetX < 16);\n\n\t\tif (onTwistie) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst preserveFocus = false;\n\t\tconst pinned = true;\n\t\tconst sideBySide = (browserEvent.ctrlKey || browserEvent.metaKey || browserEvent.altKey);\n\n\t\tthis._open(element, preserveFocus, pinned, sideBySide, browserEvent);\n\t}\n\n\tprivate _open(element: T | undefined, preserveFocus: boolean, pinned: boolean, sideBySide: boolean, browserEvent?: UIEvent): void {\n\t\tif (!element) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._onDidOpen.fire({\n\t\t\teditorOptions: {\n\t\t\t\tpreserveFocus,\n\t\t\t\tpinned,\n\t\t\t\trevealIfVisible: true\n\t\t\t},\n\t\t\tsideBySide,\n\t\t\telement,\n\t\t\tbrowserEvent\n\t\t});\n\t}\n\n\tabstract getSelectedElement(): T | undefined;\n}\n\nclass ListResourceNavigator<T> extends ResourceNavigator<T> {\n\n\tprotected override readonly widget: List<T> | PagedList<T>;\n\n\tconstructor(\n\t\twidget: List<T> | PagedList<T>,\n\t\toptions: IResourceNavigatorOptions\n\t) {\n\t\tsuper(widget, options);\n\t\tthis.widget = widget;\n\t}\n\n\tgetSelectedElement(): T | undefined {\n\t\treturn this.widget.getSelectedElements()[0];\n\t}\n}\n\nclass TableResourceNavigator<TRow> extends ResourceNavigator<TRow> {\n\n\tprotected declare readonly widget: Table<TRow>;\n\n\tconstructor(\n\t\twidget: Table<TRow>,\n\t\toptions: IResourceNavigatorOptions\n\t) {\n\t\tsuper(widget, options);\n\t}\n\n\tgetSelectedElement(): TRow | undefined {\n\t\treturn this.widget.getSelectedElements()[0];\n\t}\n}\n\nclass TreeResourceNavigator<T, TFilterData> extends ResourceNavigator<T> {\n\n\tprotected declare readonly widget: ObjectTree<T, TFilterData> | CompressibleObjectTree<T, TFilterData> | DataTree<any, T, TFilterData> | AsyncDataTree<any, T, TFilterData> | CompressibleAsyncDataTree<any, T, TFilterData>;\n\n\tconstructor(\n\t\twidget: ObjectTree<T, TFilterData> | CompressibleObjectTree<T, TFilterData> | DataTree<any, T, TFilterData> | AsyncDataTree<any, T, TFilterData> | CompressibleAsyncDataTree<any, T, TFilterData>,\n\t\toptions: IResourceNavigatorOptions\n\t) {\n\t\tsuper(widget, options);\n\t}\n\n\tgetSelectedElement(): T | undefined {\n\t\treturn this.widget.getSelection()[0] ?? undefined;\n\t}\n}\n\nfunction createKeyboardNavigationEventFilter(keybindingService: IKeybindingService): IKeyboardNavigationEventFilter {\n\tlet inMultiChord = false;\n\n\treturn event => {\n\t\tif (event.toKeyCodeChord().isModifierKey()) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (inMultiChord) {\n\t\t\tinMultiChord = false;\n\t\t\treturn false;\n\t\t}\n\n\t\tconst result = keybindingService.softDispatch(event, event.target);\n\n\t\tif (result.kind === ResultKind.MoreChordsNeeded) {\n\t\t\tinMultiChord = true;\n\t\t\treturn false;\n\t\t}\n\n\t\tinMultiChord = false;\n\t\treturn result.kind === ResultKind.NoMatchingKb;\n\t};\n}\n\nexport interface IWorkbenchObjectTreeOptions<T, TFilterData> extends IObjectTreeOptions<T, TFilterData>, IResourceNavigatorOptions {\n\treadonly accessibilityProvider: IListAccessibilityProvider<T>;\n\treadonly overrideStyles?: IStyleOverride<IListStyles>;\n\treadonly selectionNavigation?: boolean;\n}\n\nexport class WorkbenchObjectTree<T extends NonNullable<any>, TFilterData = void> extends ObjectTree<T, TFilterData> {\n\n\tprivate internals: WorkbenchTreeInternals<any, T, TFilterData>;\n\tget onDidOpen(): Event<IOpenEvent<T | undefined>> { return this.internals.onDidOpen; }\n\n\tconstructor(\n\t\tuser: string,\n\t\tcontainer: HTMLElement,\n\t\tdelegate: IListVirtualDelegate<T>,\n\t\trenderers: ITreeRenderer<T, TFilterData, any>[],\n\t\toptions: IWorkbenchObjectTreeOptions<T, TFilterData>,\n\t\t@IInstantiationService instantiationService: IInstantiationService,\n\t\t@IContextKeyService contextKeyService: IContextKeyService,\n\t\t@IListService listService: IListService,\n\t\t@IConfigurationService configurationService: IConfigurationService\n\t) {\n\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\tconst { options: treeOptions, getTypeNavigationMode, disposable } = instantiationService.invokeFunction(workbenchTreeDataPreamble, options as any);\n\t\tsuper(user, container, delegate, renderers, treeOptions);\n\t\tthis.disposables.add(disposable);\n\t\tthis.internals = new WorkbenchTreeInternals(this, options, getTypeNavigationMode, options.overrideStyles, contextKeyService, listService, configurationService);\n\t\tthis.disposables.add(this.internals);\n\t}\n\n\toverride updateOptions(options: IAbstractTreeOptionsUpdate): void {\n\t\tsuper.updateOptions(options);\n\t\tthis.internals.updateOptions(options);\n\t}\n}\n\nexport interface IWorkbenchCompressibleObjectTreeOptionsUpdate extends ICompressibleObjectTreeOptionsUpdate {\n\treadonly overrideStyles?: IStyleOverride<IListStyles>;\n}\n\nexport interface IWorkbenchCompressibleObjectTreeOptions<T, TFilterData> extends IWorkbenchCompressibleObjectTreeOptionsUpdate, ICompressibleObjectTreeOptions<T, TFilterData>, IResourceNavigatorOptions {\n\treadonly selectionNavigation?: boolean;\n}\n\nexport class WorkbenchCompressibleObjectTree<T extends NonNullable<any>, TFilterData = void> extends CompressibleObjectTree<T, TFilterData> {\n\n\tprivate internals: WorkbenchTreeInternals<any, T, TFilterData>;\n\n\tconstructor(\n\t\tuser: string,\n\t\tcontainer: HTMLElement,\n\t\tdelegate: IListVirtualDelegate<T>,\n\t\trenderers: ICompressibleTreeRenderer<T, TFilterData, any>[],\n\t\toptions: IWorkbenchCompressibleObjectTreeOptions<T, TFilterData>,\n\t\t@IInstantiationService instantiationService: IInstantiationService,\n\t\t@IContextKeyService contextKeyService: IContextKeyService,\n\t\t@IListService listService: IListService,\n\t\t@IConfigurationService configurationService: IConfigurationService\n\t) {\n\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\tconst { options: treeOptions, getTypeNavigationMode, disposable } = instantiationService.invokeFunction(workbenchTreeDataPreamble, options as any);\n\t\tsuper(user, container, delegate, renderers, treeOptions);\n\t\tthis.disposables.add(disposable);\n\t\tthis.internals = new WorkbenchTreeInternals(this, options, getTypeNavigationMode, options.overrideStyles, contextKeyService, listService, configurationService);\n\t\tthis.disposables.add(this.internals);\n\t}\n\n\toverride updateOptions(options: IWorkbenchCompressibleObjectTreeOptionsUpdate = {}): void {\n\t\tsuper.updateOptions(options);\n\n\t\tif (options.overrideStyles) {\n\t\t\tthis.internals.updateStyleOverrides(options.overrideStyles);\n\t\t}\n\n\t\tthis.internals.updateOptions(options);\n\t}\n}\n\nexport interface IWorkbenchDataTreeOptionsUpdate extends IAbstractTreeOptionsUpdate {\n\treadonly overrideStyles?: IStyleOverride<IListStyles>;\n}\n\nexport interface IWorkbenchDataTreeOptions<T, TFilterData> extends IWorkbenchDataTreeOptionsUpdate, IDataTreeOptions<T, TFilterData>, IResourceNavigatorOptions {\n\treadonly selectionNavigation?: boolean;\n}\n\nexport class WorkbenchDataTree<TInput, T, TFilterData = void> extends DataTree<TInput, T, TFilterData> {\n\n\tprivate internals: WorkbenchTreeInternals<TInput, T, TFilterData>;\n\n\tconstructor(\n\t\tuser: string,\n\t\tcontainer: HTMLElement,\n\t\tdelegate: IListVirtualDelegate<T>,\n\t\trenderers: ITreeRenderer<T, TFilterData, any>[],\n\t\tdataSource: IDataSource<TInput, T>,\n\t\toptions: IWorkbenchDataTreeOptions<T, TFilterData>,\n\t\t@IInstantiationService instantiationService: IInstantiationService,\n\t\t@IContextKeyService contextKeyService: IContextKeyService,\n\t\t@IListService listService: IListService,\n\t\t@IConfigurationService configurationService: IConfigurationService\n\t) {\n\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\tconst { options: treeOptions, getTypeNavigationMode, disposable } = instantiationService.invokeFunction(workbenchTreeDataPreamble, options as any);\n\t\tsuper(user, container, delegate, renderers, dataSource, treeOptions);\n\t\tthis.disposables.add(disposable);\n\t\tthis.internals = new WorkbenchTreeInternals(this, options, getTypeNavigationMode, options.overrideStyles, contextKeyService, listService, configurationService);\n\t\tthis.disposables.add(this.internals);\n\t}\n\n\toverride updateOptions(options: IWorkbenchDataTreeOptionsUpdate = {}): void {\n\t\tsuper.updateOptions(options);\n\n\t\tif (options.overrideStyles !== undefined) {\n\t\t\tthis.internals.updateStyleOverrides(options.overrideStyles);\n\t\t}\n\n\t\tthis.internals.updateOptions(options);\n\t}\n}\n\nexport interface IWorkbenchAsyncDataTreeOptionsUpdate extends IAsyncDataTreeOptionsUpdate {\n\treadonly overrideStyles?: IStyleOverride<IListStyles>;\n}\n\nexport interface IWorkbenchAsyncDataTreeOptions<T, TFilterData> extends IWorkbenchAsyncDataTreeOptionsUpdate, IAsyncDataTreeOptions<T, TFilterData>, IResourceNavigatorOptions {\n\treadonly accessibilityProvider: IListAccessibilityProvider<T>;\n\treadonly selectionNavigation?: boolean;\n}\n\nexport class WorkbenchAsyncDataTree<TInput, T, TFilterData = void> extends AsyncDataTree<TInput, T, TFilterData> {\n\n\tprivate internals: WorkbenchTreeInternals<TInput, T, TFilterData>;\n\tget onDidOpen(): Event<IOpenEvent<T | undefined>> { return this.internals.onDidOpen; }\n\n\tconstructor(\n\t\tuser: string,\n\t\tcontainer: HTMLElement,\n\t\tdelegate: IListVirtualDelegate<T>,\n\t\trenderers: ITreeRenderer<T, TFilterData, any>[],\n\t\tdataSource: IAsyncDataSource<TInput, T>,\n\t\toptions: IWorkbenchAsyncDataTreeOptions<T, TFilterData>,\n\t\t@IInstantiationService instantiationService: IInstantiationService,\n\t\t@IContextKeyService contextKeyService: IContextKeyService,\n\t\t@IListService listService: IListService,\n\t\t@IConfigurationService configurationService: IConfigurationService\n\t) {\n\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\tconst { options: treeOptions, getTypeNavigationMode, disposable } = instantiationService.invokeFunction(workbenchTreeDataPreamble, options as any);\n\t\tsuper(user, container, delegate, renderers, dataSource, treeOptions);\n\t\tthis.disposables.add(disposable);\n\t\tthis.internals = new WorkbenchTreeInternals(this, options, getTypeNavigationMode, options.overrideStyles, contextKeyService, listService, configurationService);\n\t\tthis.disposables.add(this.internals);\n\t}\n\n\toverride updateOptions(options: IWorkbenchAsyncDataTreeOptionsUpdate = {}): void {\n\t\tsuper.updateOptions(options);\n\n\t\tif (options.overrideStyles) {\n\t\t\tthis.internals.updateStyleOverrides(options.overrideStyles);\n\t\t}\n\n\t\tthis.internals.updateOptions(options);\n\t}\n}\n\nexport interface IWorkbenchCompressibleAsyncDataTreeOptions<T, TFilterData> extends ICompressibleAsyncDataTreeOptions<T, TFilterData>, IResourceNavigatorOptions {\n\treadonly overrideStyles?: IStyleOverride<IListStyles>;\n\treadonly selectionNavigation?: boolean;\n}\n\nexport class WorkbenchCompressibleAsyncDataTree<TInput, T, TFilterData = void> extends CompressibleAsyncDataTree<TInput, T, TFilterData> {\n\n\tprivate internals: WorkbenchTreeInternals<TInput, T, TFilterData>;\n\n\tconstructor(\n\t\tuser: string,\n\t\tcontainer: HTMLElement,\n\t\tvirtualDelegate: IListVirtualDelegate<T>,\n\t\tcompressionDelegate: ITreeCompressionDelegate<T>,\n\t\trenderers: ICompressibleTreeRenderer<T, TFilterData, any>[],\n\t\tdataSource: IAsyncDataSource<TInput, T>,\n\t\toptions: IWorkbenchCompressibleAsyncDataTreeOptions<T, TFilterData>,\n\t\t@IInstantiationService instantiationService: IInstantiationService,\n\t\t@IContextKeyService contextKeyService: IContextKeyService,\n\t\t@IListService listService: IListService,\n\t\t@IConfigurationService configurationService: IConfigurationService\n\t) {\n\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\tconst { options: treeOptions, getTypeNavigationMode, disposable } = instantiationService.invokeFunction(workbenchTreeDataPreamble, options as any);\n\t\tsuper(user, container, virtualDelegate, compressionDelegate, renderers, dataSource, treeOptions);\n\t\tthis.disposables.add(disposable);\n\t\tthis.internals = new WorkbenchTreeInternals(this, options, getTypeNavigationMode, options.overrideStyles, contextKeyService, listService, configurationService);\n\t\tthis.disposables.add(this.internals);\n\t}\n\n\toverride updateOptions(options: ICompressibleAsyncDataTreeOptionsUpdate): void {\n\t\tsuper.updateOptions(options);\n\t\tthis.internals.updateOptions(options);\n\t}\n}\n\nfunction getDefaultTreeFindMode(configurationService: IConfigurationService) {\n\tconst value = configurationService.getValue<'highlight' | 'filter'>(defaultFindModeSettingKey);\n\n\tif (value === 'highlight') {\n\t\treturn TreeFindMode.Highlight;\n\t} else if (value === 'filter') {\n\t\treturn TreeFindMode.Filter;\n\t}\n\n\tconst deprecatedValue = configurationService.getValue<'simple' | 'highlight' | 'filter'>(keyboardNavigationSettingKey);\n\n\tif (deprecatedValue === 'simple' || deprecatedValue === 'highlight') {\n\t\treturn TreeFindMode.Highlight;\n\t} else if (deprecatedValue === 'filter') {\n\t\treturn TreeFindMode.Filter;\n\t}\n\n\treturn undefined;\n}\n\nfunction getDefaultTreeFindMatchType(configurationService: IConfigurationService) {\n\tconst value = configurationService.getValue<'fuzzy' | 'contiguous'>(defaultFindMatchTypeSettingKey);\n\n\tif (value === 'fuzzy') {\n\t\treturn TreeFindMatchType.Fuzzy;\n\t} else if (value === 'contiguous') {\n\t\treturn TreeFindMatchType.Contiguous;\n\t}\n\treturn undefined;\n}\n\nfunction workbenchTreeDataPreamble<T, TFilterData, TOptions extends IAbstractTreeOptions<T, TFilterData> | IAsyncDataTreeOptions<T, TFilterData>>(\n\taccessor: ServicesAccessor,\n\toptions: TOptions,\n): { options: TOptions; getTypeNavigationMode: () => TypeNavigationMode | undefined; disposable: IDisposable } {\n\tconst configurationService = accessor.get(IConfigurationService);\n\tconst contextViewService = accessor.get(IContextViewService);\n\tconst contextKeyService = accessor.get(IContextKeyService);\n\tconst instantiationService = accessor.get(IInstantiationService);\n\n\tconst getTypeNavigationMode = () => {\n\t\t// give priority to the context key value to specify a value\n\t\tconst modeString = contextKeyService.getContextKeyValue<'automatic' | 'trigger'>(WorkbenchListTypeNavigationModeKey);\n\n\t\tif (modeString === 'automatic') {\n\t\t\treturn TypeNavigationMode.Automatic;\n\t\t} else if (modeString === 'trigger') {\n\t\t\treturn TypeNavigationMode.Trigger;\n\t\t}\n\n\t\t// also check the deprecated context key to set the mode to 'trigger'\n\t\tconst modeBoolean = contextKeyService.getContextKeyValue<boolean>(WorkbenchListAutomaticKeyboardNavigationLegacyKey);\n\n\t\tif (modeBoolean === false) {\n\t\t\treturn TypeNavigationMode.Trigger;\n\t\t}\n\n\t\t// finally, check the setting\n\t\tconst configString = configurationService.getValue<'automatic' | 'trigger'>(typeNavigationModeSettingKey);\n\n\t\tif (configString === 'automatic') {\n\t\t\treturn TypeNavigationMode.Automatic;\n\t\t} else if (configString === 'trigger') {\n\t\t\treturn TypeNavigationMode.Trigger;\n\t\t}\n\n\t\treturn undefined;\n\t};\n\n\tconst horizontalScrolling = options.horizontalScrolling !== undefined ? options.horizontalScrolling : Boolean(configurationService.getValue(horizontalScrollingKey));\n\tconst [workbenchListOptions, disposable] = instantiationService.invokeFunction(toWorkbenchListOptions, options);\n\tconst paddingBottom = options.paddingBottom;\n\tconst renderIndentGuides = options.renderIndentGuides !== undefined ? options.renderIndentGuides : configurationService.getValue<RenderIndentGuides>(treeRenderIndentGuidesKey);\n\n\treturn {\n\t\tgetTypeNavigationMode,\n\t\tdisposable,\n\t\t// eslint-disable-next-line local/code-no-dangerous-type-assertions\n\t\toptions: {\n\t\t\t// ...options, // TODO@Joao why is this not splatted here?\n\t\t\tkeyboardSupport: false,\n\t\t\t...workbenchListOptions,\n\t\t\tindent: typeof configurationService.getValue(treeIndentKey) === 'number' ? configurationService.getValue(treeIndentKey) : undefined,\n\t\t\trenderIndentGuides,\n\t\t\tsmoothScrolling: Boolean(configurationService.getValue(listSmoothScrolling)),\n\t\t\tdefaultFindMode: options.defaultFindMode ?? getDefaultTreeFindMode(configurationService),\n\t\t\tdefaultFindMatchType: options.defaultFindMatchType ?? getDefaultTreeFindMatchType(configurationService),\n\t\t\thorizontalScrolling,\n\t\t\tscrollByPage: Boolean(configurationService.getValue(scrollByPageKey)),\n\t\t\tpaddingBottom: paddingBottom,\n\t\t\thideTwistiesOfChildlessElements: options.hideTwistiesOfChildlessElements,\n\t\t\texpandOnlyOnTwistieClick: options.expandOnlyOnTwistieClick ?? (configurationService.getValue<'singleClick' | 'doubleClick'>(treeExpandMode) === 'doubleClick'),\n\t\t\tcontextViewProvider: contextViewService as IContextViewProvider,\n\t\t\tfindWidgetStyles: defaultFindWidgetStyles,\n\t\t\tenableStickyScroll: Boolean(configurationService.getValue(treeStickyScroll)),\n\t\t\tstickyScrollMaxItemCount: Number(configurationService.getValue(treeStickyScrollMaxElements)),\n\t\t} as TOptions\n\t};\n}\n\ninterface IWorkbenchTreeInternalsOptionsUpdate {\n\treadonly multipleSelectionSupport?: boolean;\n}\n\nclass WorkbenchTreeInternals<TInput, T, TFilterData> {\n\n\treadonly contextKeyService: IScopedContextKeyService;\n\tprivate listSupportsMultiSelect: IContextKey<boolean>;\n\tprivate listSupportFindWidget: IContextKey<boolean>;\n\tprivate hasSelectionOrFocus: IContextKey<boolean>;\n\tprivate hasDoubleSelection: IContextKey<boolean>;\n\tprivate hasMultiSelection: IContextKey<boolean>;\n\tprivate treeElementCanCollapse: IContextKey<boolean>;\n\tprivate treeElementHasParent: IContextKey<boolean>;\n\tprivate treeElementCanExpand: IContextKey<boolean>;\n\tprivate treeElementHasChild: IContextKey<boolean>;\n\tprivate treeFindOpen: IContextKey<boolean>;\n\tprivate treeStickyScrollFocused: IContextKey<boolean>;\n\tprivate _useAltAsMultipleSelectionModifier: boolean;\n\tprivate disposables: IDisposable[] = [];\n\n\tprivate navigator: TreeResourceNavigator<T, TFilterData>;\n\n\tget onDidOpen(): Event<IOpenEvent<T | undefined>> { return this.navigator.onDidOpen; }\n\n\tconstructor(\n\t\tprivate tree: WorkbenchObjectTree<T, TFilterData> | WorkbenchCompressibleObjectTree<T, TFilterData> | WorkbenchDataTree<TInput, T, TFilterData> | WorkbenchAsyncDataTree<TInput, T, TFilterData> | WorkbenchCompressibleAsyncDataTree<TInput, T, TFilterData>,\n\t\toptions: IWorkbenchObjectTreeOptions<T, TFilterData> | IWorkbenchCompressibleObjectTreeOptions<T, TFilterData> | IWorkbenchDataTreeOptions<T, TFilterData> | IWorkbenchAsyncDataTreeOptions<T, TFilterData> | IWorkbenchCompressibleAsyncDataTreeOptions<T, TFilterData>,\n\t\tgetTypeNavigationMode: () => TypeNavigationMode | undefined,\n\t\toverrideStyles: IStyleOverride<IListStyles> | undefined,\n\t\t@IContextKeyService contextKeyService: IContextKeyService,\n\t\t@IListService listService: IListService,\n\t\t@IConfigurationService configurationService: IConfigurationService\n\t) {\n\t\tthis.contextKeyService = createScopedContextKeyService(contextKeyService, tree);\n\n\t\tthis.disposables.push(createScrollObserver(this.contextKeyService, tree));\n\n\t\tthis.listSupportsMultiSelect = WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService);\n\t\tthis.listSupportsMultiSelect.set(options.multipleSelectionSupport !== false);\n\n\t\tconst listSelectionNavigation = WorkbenchListSelectionNavigation.bindTo(this.contextKeyService);\n\t\tlistSelectionNavigation.set(Boolean(options.selectionNavigation));\n\n\t\tthis.listSupportFindWidget = WorkbenchListSupportsFind.bindTo(this.contextKeyService);\n\t\tthis.listSupportFindWidget.set(options.findWidgetEnabled ?? true);\n\n\t\tthis.hasSelectionOrFocus = WorkbenchListHasSelectionOrFocus.bindTo(this.contextKeyService);\n\t\tthis.hasDoubleSelection = WorkbenchListDoubleSelection.bindTo(this.contextKeyService);\n\t\tthis.hasMultiSelection = WorkbenchListMultiSelection.bindTo(this.contextKeyService);\n\n\t\tthis.treeElementCanCollapse = WorkbenchTreeElementCanCollapse.bindTo(this.contextKeyService);\n\t\tthis.treeElementHasParent = WorkbenchTreeElementHasParent.bindTo(this.contextKeyService);\n\t\tthis.treeElementCanExpand = WorkbenchTreeElementCanExpand.bindTo(this.contextKeyService);\n\t\tthis.treeElementHasChild = WorkbenchTreeElementHasChild.bindTo(this.contextKeyService);\n\n\t\tthis.treeFindOpen = WorkbenchTreeFindOpen.bindTo(this.contextKeyService);\n\t\tthis.treeStickyScrollFocused = WorkbenchTreeStickyScrollFocused.bindTo(this.contextKeyService);\n\n\t\tthis._useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n\n\t\tthis.updateStyleOverrides(overrideStyles);\n\n\t\tconst updateCollapseContextKeys = () => {\n\t\t\tconst focus = tree.getFocus()[0];\n\n\t\t\tif (!focus) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst node = tree.getNode(focus);\n\t\t\tthis.treeElementCanCollapse.set(node.collapsible && !node.collapsed);\n\t\t\tthis.treeElementHasParent.set(!!tree.getParentElement(focus));\n\t\t\tthis.treeElementCanExpand.set(node.collapsible && node.collapsed);\n\t\t\tthis.treeElementHasChild.set(!!tree.getFirstElementChild(focus));\n\t\t};\n\n\t\tconst interestingContextKeys = new Set();\n\t\tinterestingContextKeys.add(WorkbenchListTypeNavigationModeKey);\n\t\tinterestingContextKeys.add(WorkbenchListAutomaticKeyboardNavigationLegacyKey);\n\n\t\tthis.disposables.push(\n\t\t\tthis.contextKeyService,\n\t\t\t(listService as ListService).register(tree),\n\t\t\ttree.onDidChangeSelection(() => {\n\t\t\t\tconst selection = tree.getSelection();\n\t\t\t\tconst focus = tree.getFocus();\n\n\t\t\t\tthis.contextKeyService.bufferChangeEvents(() => {\n\t\t\t\t\tthis.hasSelectionOrFocus.set(selection.length > 0 || focus.length > 0);\n\t\t\t\t\tthis.hasMultiSelection.set(selection.length > 1);\n\t\t\t\t\tthis.hasDoubleSelection.set(selection.length === 2);\n\t\t\t\t});\n\t\t\t}),\n\t\t\ttree.onDidChangeFocus(() => {\n\t\t\t\tconst selection = tree.getSelection();\n\t\t\t\tconst focus = tree.getFocus();\n\n\t\t\t\tthis.hasSelectionOrFocus.set(selection.length > 0 || focus.length > 0);\n\t\t\t\tupdateCollapseContextKeys();\n\t\t\t}),\n\t\t\ttree.onDidChangeCollapseState(updateCollapseContextKeys),\n\t\t\ttree.onDidChangeModel(updateCollapseContextKeys),\n\t\t\ttree.onDidChangeFindOpenState(enabled => this.treeFindOpen.set(enabled)),\n\t\t\ttree.onDidChangeStickyScrollFocused(focused => this.treeStickyScrollFocused.set(focused)),\n\t\t\tconfigurationService.onDidChangeConfiguration(e => {\n\t\t\t\tlet newOptions: IAbstractTreeOptionsUpdate = {};\n\t\t\t\tif (e.affectsConfiguration(multiSelectModifierSettingKey)) {\n\t\t\t\t\tthis._useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n\t\t\t\t}\n\t\t\t\tif (e.affectsConfiguration(treeIndentKey)) {\n\t\t\t\t\tconst indent = configurationService.getValue<number>(treeIndentKey);\n\t\t\t\t\tnewOptions = { ...newOptions, indent };\n\t\t\t\t}\n\t\t\t\tif (e.affectsConfiguration(treeRenderIndentGuidesKey) && options.renderIndentGuides === undefined) {\n\t\t\t\t\tconst renderIndentGuides = configurationService.getValue<RenderIndentGuides>(treeRenderIndentGuidesKey);\n\t\t\t\t\tnewOptions = { ...newOptions, renderIndentGuides };\n\t\t\t\t}\n\t\t\t\tif (e.affectsConfiguration(listSmoothScrolling)) {\n\t\t\t\t\tconst smoothScrolling = Boolean(configurationService.getValue(listSmoothScrolling));\n\t\t\t\t\tnewOptions = { ...newOptions, smoothScrolling };\n\t\t\t\t}\n\t\t\t\tif (e.affectsConfiguration(defaultFindModeSettingKey) || e.affectsConfiguration(keyboardNavigationSettingKey)) {\n\t\t\t\t\tconst defaultFindMode = getDefaultTreeFindMode(configurationService);\n\t\t\t\t\tnewOptions = { ...newOptions, defaultFindMode };\n\t\t\t\t}\n\t\t\t\tif (e.affectsConfiguration(typeNavigationModeSettingKey) || e.affectsConfiguration(keyboardNavigationSettingKey)) {\n\t\t\t\t\tconst typeNavigationMode = getTypeNavigationMode();\n\t\t\t\t\tnewOptions = { ...newOptions, typeNavigationMode };\n\t\t\t\t}\n\t\t\t\tif (e.affectsConfiguration(defaultFindMatchTypeSettingKey)) {\n\t\t\t\t\tconst defaultFindMatchType = getDefaultTreeFindMatchType(configurationService);\n\t\t\t\t\tnewOptions = { ...newOptions, defaultFindMatchType };\n\t\t\t\t}\n\t\t\t\tif (e.affectsConfiguration(horizontalScrollingKey) && options.horizontalScrolling === undefined) {\n\t\t\t\t\tconst horizontalScrolling = Boolean(configurationService.getValue(horizontalScrollingKey));\n\t\t\t\t\tnewOptions = { ...newOptions, horizontalScrolling };\n\t\t\t\t}\n\t\t\t\tif (e.affectsConfiguration(scrollByPageKey)) {\n\t\t\t\t\tconst scrollByPage = Boolean(configurationService.getValue(scrollByPageKey));\n\t\t\t\t\tnewOptions = { ...newOptions, scrollByPage };\n\t\t\t\t}\n\t\t\t\tif (e.affectsConfiguration(treeExpandMode) && options.expandOnlyOnTwistieClick === undefined) {\n\t\t\t\t\tnewOptions = { ...newOptions, expandOnlyOnTwistieClick: configurationService.getValue<'singleClick' | 'doubleClick'>(treeExpandMode) === 'doubleClick' };\n\t\t\t\t}\n\t\t\t\tif (e.affectsConfiguration(treeStickyScroll)) {\n\t\t\t\t\tconst enableStickyScroll = configurationService.getValue<boolean>(treeStickyScroll);\n\t\t\t\t\tnewOptions = { ...newOptions, enableStickyScroll };\n\t\t\t\t}\n\t\t\t\tif (e.affectsConfiguration(treeStickyScrollMaxElements)) {\n\t\t\t\t\tconst stickyScrollMaxItemCount = Math.max(1, configurationService.getValue<number>(treeStickyScrollMaxElements));\n\t\t\t\t\tnewOptions = { ...newOptions, stickyScrollMaxItemCount };\n\t\t\t\t}\n\t\t\t\tif (e.affectsConfiguration(mouseWheelScrollSensitivityKey)) {\n\t\t\t\t\tconst mouseWheelScrollSensitivity = configurationService.getValue<number>(mouseWheelScrollSensitivityKey);\n\t\t\t\t\tnewOptions = { ...newOptions, mouseWheelScrollSensitivity };\n\t\t\t\t}\n\t\t\t\tif (e.affectsConfiguration(fastScrollSensitivityKey)) {\n\t\t\t\t\tconst fastScrollSensitivity = configurationService.getValue<number>(fastScrollSensitivityKey);\n\t\t\t\t\tnewOptions = { ...newOptions, fastScrollSensitivity };\n\t\t\t\t}\n\t\t\t\tif (Object.keys(newOptions).length > 0) {\n\t\t\t\t\ttree.updateOptions(newOptions);\n\t\t\t\t}\n\t\t\t}),\n\t\t\tthis.contextKeyService.onDidChangeContext(e => {\n\t\t\t\tif (e.affectsSome(interestingContextKeys)) {\n\t\t\t\t\ttree.updateOptions({ typeNavigationMode: getTypeNavigationMode() });\n\t\t\t\t}\n\t\t\t})\n\t\t);\n\n\t\tthis.navigator = new TreeResourceNavigator(tree, { configurationService, ...options });\n\t\tthis.disposables.push(this.navigator);\n\t}\n\n\tupdateOptions(options: IWorkbenchTreeInternalsOptionsUpdate): void {\n\t\tif (options.multipleSelectionSupport !== undefined) {\n\t\t\tthis.listSupportsMultiSelect.set(!!options.multipleSelectionSupport);\n\t\t}\n\t}\n\n\tupdateStyleOverrides(overrideStyles?: IStyleOverride<IListStyles>): void {\n\t\tthis.tree.style(overrideStyles ? getListStyles(overrideStyles) : defaultListStyles);\n\t}\n\n\tdispose(): void {\n\t\tthis.disposables = dispose(this.disposables);\n\t}\n}\n\nconst configurationRegistry = Registry.as<IConfigurationRegistry>(ConfigurationExtensions.Configuration);\n\nconfigurationRegistry.registerConfiguration({\n\tid: 'workbench',\n\torder: 7,\n\ttitle: localize('workbenchConfigurationTitle', \"Workbench\"),\n\ttype: 'object',\n\tproperties: {\n\t\t[multiSelectModifierSettingKey]: {\n\t\t\ttype: 'string',\n\t\t\tenum: ['ctrlCmd', 'alt'],\n\t\t\tmarkdownEnumDescriptions: [\n\t\t\t\tlocalize('multiSelectModifier.ctrlCmd', \"Maps to `Control` on Windows and Linux and to `Command` on macOS.\"),\n\t\t\t\tlocalize('multiSelectModifier.alt', \"Maps to `Alt` on Windows and Linux and to `Option` on macOS.\")\n\t\t\t],\n\t\t\tdefault: 'ctrlCmd',\n\t\t\tdescription: localize({\n\t\t\t\tkey: 'multiSelectModifier',\n\t\t\t\tcomment: [\n\t\t\t\t\t'- `ctrlCmd` refers to a value the setting can take and should not be localized.',\n\t\t\t\t\t'- `Control` and `Command` refer to the modifier keys Ctrl or Cmd on the keyboard and can be localized.'\n\t\t\t\t]\n\t\t\t}, \"The modifier to be used to add an item in trees and lists to a multi-selection with the mouse (for example in the explorer, open editors and scm view). The 'Open to Side' mouse gestures - if supported - will adapt such that they do not conflict with the multiselect modifier.\")\n\t\t},\n\t\t[openModeSettingKey]: {\n\t\t\ttype: 'string',\n\t\t\tenum: ['singleClick', 'doubleClick'],\n\t\t\tdefault: 'singleClick',\n\t\t\tdescription: localize({\n\t\t\t\tkey: 'openModeModifier',\n\t\t\t\tcomment: ['`singleClick` and `doubleClick` refers to a value the setting can take and should not be localized.']\n\t\t\t}, \"Controls how to open items in trees and lists using the mouse (if supported). Note that some trees and lists might choose to ignore this setting if it is not applicable.\")\n\t\t},\n\t\t[horizontalScrollingKey]: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t\tdescription: localize('horizontalScrolling setting', \"Controls whether lists and trees support horizontal scrolling in the workbench. Warning: turning on this setting has a performance implication.\")\n\t\t},\n\t\t[scrollByPageKey]: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t\tdescription: localize('list.scrollByPage', \"Controls whether clicks in the scrollbar scroll page by page.\")\n\t\t},\n\t\t[treeIndentKey]: {\n\t\t\ttype: 'number',\n\t\t\tdefault: 8,\n\t\t\tminimum: 4,\n\t\t\tmaximum: 40,\n\t\t\tdescription: localize('tree indent setting', \"Controls tree indentation in pixels.\")\n\t\t},\n\t\t[treeRenderIndentGuidesKey]: {\n\t\t\ttype: 'string',\n\t\t\tenum: ['none', 'onHover', 'always'],\n\t\t\tdefault: 'onHover',\n\t\t\tdescription: localize('render tree indent guides', \"Controls whether the tree should render indent guides.\")\n\t\t},\n\t\t[listSmoothScrolling]: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t\tdescription: localize('list smoothScrolling setting', \"Controls whether lists and trees have smooth scrolling.\"),\n\t\t},\n\t\t[mouseWheelScrollSensitivityKey]: {\n\t\t\ttype: 'number',\n\t\t\tdefault: 1,\n\t\t\tmarkdownDescription: localize('Mouse Wheel Scroll Sensitivity', \"A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.\")\n\t\t},\n\t\t[fastScrollSensitivityKey]: {\n\t\t\ttype: 'number',\n\t\t\tdefault: 5,\n\t\t\tmarkdownDescription: localize('Fast Scroll Sensitivity', \"Scrolling speed multiplier when pressing `Alt`.\")\n\t\t},\n\t\t[defaultFindModeSettingKey]: {\n\t\t\ttype: 'string',\n\t\t\tenum: ['highlight', 'filter'],\n\t\t\tenumDescriptions: [\n\t\t\t\tlocalize('defaultFindModeSettingKey.highlight', \"Highlight elements when searching. Further up and down navigation will traverse only the highlighted elements.\"),\n\t\t\t\tlocalize('defaultFindModeSettingKey.filter', \"Filter elements when searching.\")\n\t\t\t],\n\t\t\tdefault: 'highlight',\n\t\t\tdescription: localize('defaultFindModeSettingKey', \"Controls the default find mode for lists and trees in the workbench.\")\n\t\t},\n\t\t[keyboardNavigationSettingKey]: {\n\t\t\ttype: 'string',\n\t\t\tenum: ['simple', 'highlight', 'filter'],\n\t\t\tenumDescriptions: [\n\t\t\t\tlocalize('keyboardNavigationSettingKey.simple', \"Simple keyboard navigation focuses elements which match the keyboard input. Matching is done only on prefixes.\"),\n\t\t\t\tlocalize('keyboardNavigationSettingKey.highlight', \"Highlight keyboard navigation highlights elements which match the keyboard input. Further up and down navigation will traverse only the highlighted elements.\"),\n\t\t\t\tlocalize('keyboardNavigationSettingKey.filter', \"Filter keyboard navigation will filter out and hide all the elements which do not match the keyboard input.\")\n\t\t\t],\n\t\t\tdefault: 'highlight',\n\t\t\tdescription: localize('keyboardNavigationSettingKey', \"Controls the keyboard navigation style for lists and trees in the workbench. Can be simple, highlight and filter.\"),\n\t\t\tdeprecated: true,\n\t\t\tdeprecationMessage: localize('keyboardNavigationSettingKeyDeprecated', \"Please use 'workbench.list.defaultFindMode' and\t'workbench.list.typeNavigationMode' instead.\")\n\t\t},\n\t\t[defaultFindMatchTypeSettingKey]: {\n\t\t\ttype: 'string',\n\t\t\tenum: ['fuzzy', 'contiguous'],\n\t\t\tenumDescriptions: [\n\t\t\t\tlocalize('defaultFindMatchTypeSettingKey.fuzzy', \"Use fuzzy matching when searching.\"),\n\t\t\t\tlocalize('defaultFindMatchTypeSettingKey.contiguous', \"Use contiguous matching when searching.\")\n\t\t\t],\n\t\t\tdefault: 'fuzzy',\n\t\t\tdescription: localize('defaultFindMatchTypeSettingKey', \"Controls the type of matching used when searching lists and trees in the workbench.\")\n\t\t},\n\t\t[treeExpandMode]: {\n\t\t\ttype: 'string',\n\t\t\tenum: ['singleClick', 'doubleClick'],\n\t\t\tdefault: 'singleClick',\n\t\t\tdescription: localize('expand mode', \"Controls how tree folders are expanded when clicking the folder names. Note that some trees and lists might choose to ignore this setting if it is not applicable.\"),\n\t\t},\n\t\t[treeStickyScroll]: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: true,\n\t\t\tdescription: localize('sticky scroll', \"Controls whether sticky scrolling is enabled in trees.\"),\n\t\t},\n\t\t[treeStickyScrollMaxElements]: {\n\t\t\ttype: 'number',\n\t\t\tminimum: 1,\n\t\t\tdefault: 7,\n\t\t\tmarkdownDescription: localize('sticky scroll maximum items', \"Controls the number of sticky elements displayed in the tree when {0} is enabled.\", '`#workbench.tree.enableStickyScroll#`'),\n\t\t},\n\t\t[typeNavigationModeSettingKey]: {\n\t\t\ttype: 'string',\n\t\t\tenum: ['automatic', 'trigger'],\n\t\t\tdefault: 'automatic',\n\t\t\tmarkdownDescription: localize('typeNavigationMode2', \"Controls how type navigation works in lists and trees in the workbench. When set to `trigger`, type navigation begins once the `list.triggerTypeNavigation` command is run.\"),\n\t\t}\n\t}\n});\n"]}
|
|
@@ -239,8 +239,8 @@ export class MarkerService {
|
|
|
239
239
|
*/
|
|
240
240
|
_createFilteredMarker(resource, reasons) {
|
|
241
241
|
const message = reasons.length === 1
|
|
242
|
-
? localize(
|
|
243
|
-
: localize(
|
|
242
|
+
? localize(1738, "Problems are paused because: \"{0}\"", reasons[0])
|
|
243
|
+
: localize(1739, "Problems are paused because: \"{0}\" and {1} more", reasons[0], reasons.length - 1);
|
|
244
244
|
return {
|
|
245
245
|
owner: 'markersFilter',
|
|
246
246
|
resource,
|
|
@@ -18,17 +18,17 @@ export var MarkerSeverity;
|
|
|
18
18
|
}
|
|
19
19
|
MarkerSeverity.compare = compare;
|
|
20
20
|
const _displayStrings = Object.create(null);
|
|
21
|
-
_displayStrings[MarkerSeverity.Error] = localize(
|
|
22
|
-
_displayStrings[MarkerSeverity.Warning] = localize(
|
|
23
|
-
_displayStrings[MarkerSeverity.Info] = localize(
|
|
21
|
+
_displayStrings[MarkerSeverity.Error] = localize(1732, "Error");
|
|
22
|
+
_displayStrings[MarkerSeverity.Warning] = localize(1733, "Warning");
|
|
23
|
+
_displayStrings[MarkerSeverity.Info] = localize(1734, "Info");
|
|
24
24
|
function toString(a) {
|
|
25
25
|
return _displayStrings[a] || '';
|
|
26
26
|
}
|
|
27
27
|
MarkerSeverity.toString = toString;
|
|
28
28
|
const _displayStringsPlural = Object.create(null);
|
|
29
|
-
_displayStringsPlural[MarkerSeverity.Error] = localize(
|
|
30
|
-
_displayStringsPlural[MarkerSeverity.Warning] = localize(
|
|
31
|
-
_displayStringsPlural[MarkerSeverity.Info] = localize(
|
|
29
|
+
_displayStringsPlural[MarkerSeverity.Error] = localize(1735, "Errors");
|
|
30
|
+
_displayStringsPlural[MarkerSeverity.Warning] = localize(1736, "Warnings");
|
|
31
|
+
_displayStringsPlural[MarkerSeverity.Info] = localize(1737, "Infos");
|
|
32
32
|
function toStringPlural(a) {
|
|
33
33
|
return _displayStringsPlural[a] || '';
|
|
34
34
|
}
|