monaco-editor-core 0.54.0-dev-20250910 → 0.54.0-dev-20250912

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.
Files changed (278) hide show
  1. package/esm/nls.keys.json +1 -1
  2. package/esm/nls.messages.de.js +2 -2
  3. package/esm/nls.messages.es.js +2 -2
  4. package/esm/nls.messages.fr.js +2 -2
  5. package/esm/nls.messages.it.js +2 -2
  6. package/esm/nls.messages.ja.js +2 -2
  7. package/esm/nls.messages.js +1 -1
  8. package/esm/nls.messages.json +1 -1
  9. package/esm/nls.messages.ko.js +2 -2
  10. package/esm/nls.messages.ru.js +2 -2
  11. package/esm/nls.messages.zh-cn.js +2 -2
  12. package/esm/nls.messages.zh-tw.js +2 -2
  13. package/esm/nls.metadata.json +8 -2
  14. package/esm/vs/base/browser/domSanitize.js +32 -21
  15. package/esm/vs/base/browser/domSanitize.js.map +1 -1
  16. package/esm/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
  17. package/esm/vs/base/browser/ui/menu/menu.js +2 -0
  18. package/esm/vs/base/browser/ui/menu/menu.js.map +1 -1
  19. package/esm/vs/base/common/codiconsLibrary.js +2 -0
  20. package/esm/vs/base/common/codiconsLibrary.js.map +1 -1
  21. package/esm/vs/base/common/observableInternal/index.js +3 -0
  22. package/esm/vs/base/common/observableInternal/index.js.map +1 -1
  23. package/esm/vs/base/common/observableInternal/logging/debugGetDependencyGraph.js +71 -0
  24. package/esm/vs/base/common/observableInternal/logging/debugGetDependencyGraph.js.map +1 -0
  25. package/esm/vs/base/common/observableInternal/observables/baseObservable.js +4 -0
  26. package/esm/vs/base/common/observableInternal/observables/baseObservable.js.map +1 -1
  27. package/esm/vs/base/common/observableInternal/observables/derivedImpl.js +10 -0
  28. package/esm/vs/base/common/observableInternal/observables/derivedImpl.js.map +1 -1
  29. package/esm/vs/base/common/observableInternal/observables/observableFromEvent.js +3 -0
  30. package/esm/vs/base/common/observableInternal/observables/observableFromEvent.js.map +1 -1
  31. package/esm/vs/base/common/observableInternal/reactions/autorunImpl.js +9 -0
  32. package/esm/vs/base/common/observableInternal/reactions/autorunImpl.js.map +1 -1
  33. package/esm/vs/editor/browser/config/editorConfiguration.js +1 -1
  34. package/esm/vs/editor/browser/controller/dragScrolling.js +4 -4
  35. package/esm/vs/editor/browser/controller/editContext/native/nativeEditContext.js +3 -3
  36. package/esm/vs/editor/browser/controller/editContext/native/screenReaderContentRich.js +3 -3
  37. package/esm/vs/editor/browser/controller/editContext/native/screenReaderSupport.js +6 -6
  38. package/esm/vs/editor/browser/controller/editContext/textArea/textAreaEditContext.js +9 -9
  39. package/esm/vs/editor/browser/controller/mouseHandler.js +6 -6
  40. package/esm/vs/editor/browser/controller/mouseTarget.js +3 -3
  41. package/esm/vs/editor/browser/coreCommands.js +2 -2
  42. package/esm/vs/editor/browser/gpu/rectangleRenderer.js +1 -1
  43. package/esm/vs/editor/browser/gpu/viewGpuContext.js +1 -1
  44. package/esm/vs/editor/browser/observableCodeEditor.js +1 -1
  45. package/esm/vs/editor/browser/view/viewController.js +2 -2
  46. package/esm/vs/editor/browser/view/viewLayer.js +1 -1
  47. package/esm/vs/editor/browser/view/viewOverlays.js +4 -4
  48. package/esm/vs/editor/browser/view.js +5 -5
  49. package/esm/vs/editor/browser/viewParts/blockDecorations/blockDecorations.js +1 -1
  50. package/esm/vs/editor/browser/viewParts/contentWidgets/contentWidgets.js +3 -3
  51. package/esm/vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight.js +6 -6
  52. package/esm/vs/editor/browser/viewParts/editorScrollbar/editorScrollbar.js +8 -8
  53. package/esm/vs/editor/browser/viewParts/glyphMargin/glyphMargin.js +2 -2
  54. package/esm/vs/editor/browser/viewParts/indentGuides/indentGuides.js +2 -2
  55. package/esm/vs/editor/browser/viewParts/lineNumbers/lineNumbers.js +2 -2
  56. package/esm/vs/editor/browser/viewParts/linesDecorations/linesDecorations.js +2 -2
  57. package/esm/vs/editor/browser/viewParts/margin/margin.js +2 -2
  58. package/esm/vs/editor/browser/viewParts/minimap/minimap.js +5 -5
  59. package/esm/vs/editor/browser/viewParts/overlayWidgets/overlayWidgets.js +2 -2
  60. package/esm/vs/editor/browser/viewParts/overviewRuler/decorationsOverviewRuler.js +4 -4
  61. package/esm/vs/editor/browser/viewParts/overviewRuler/overviewRuler.js +3 -3
  62. package/esm/vs/editor/browser/viewParts/rulers/rulers.js +2 -2
  63. package/esm/vs/editor/browser/viewParts/rulersGpu/rulersGpu.js +1 -1
  64. package/esm/vs/editor/browser/viewParts/scrollDecoration/scrollDecoration.js +3 -3
  65. package/esm/vs/editor/browser/viewParts/selections/selections.js +2 -2
  66. package/esm/vs/editor/browser/viewParts/viewCursors/viewCursor.js +2 -2
  67. package/esm/vs/editor/browser/viewParts/viewCursors/viewCursors.js +6 -6
  68. package/esm/vs/editor/browser/viewParts/viewLines/viewLineOptions.js +4 -4
  69. package/esm/vs/editor/browser/viewParts/viewLines/viewLines.js +11 -11
  70. package/esm/vs/editor/browser/viewParts/viewLinesGpu/viewLinesGpu.js +1 -1
  71. package/esm/vs/editor/browser/viewParts/viewZones/viewZones.js +2 -2
  72. package/esm/vs/editor/browser/viewParts/whitespace/whitespace.js +4 -4
  73. package/esm/vs/editor/browser/widget/codeEditor/codeEditorWidget.js +12 -12
  74. package/esm/vs/editor/browser/widget/diffEditor/commands.js +12 -1
  75. package/esm/vs/editor/browser/widget/diffEditor/commands.js.map +1 -1
  76. package/esm/vs/editor/browser/widget/diffEditor/components/accessibleDiffViewer.js +4 -4
  77. package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/diffEditorViewZones.js +3 -3
  78. package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/inlineDiffDeletedCodeMargin.js +2 -2
  79. package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/renderLines.js +2 -2
  80. package/esm/vs/editor/browser/widget/diffEditor/diffEditorWidget.js +25 -0
  81. package/esm/vs/editor/browser/widget/diffEditor/diffEditorWidget.js.map +1 -1
  82. package/esm/vs/editor/browser/widget/diffEditor/features/gutterFeature.js +1 -1
  83. package/esm/vs/editor/browser/widget/diffEditor/features/overviewRulerFeature.js +1 -1
  84. package/esm/vs/editor/common/config/editorOptions.js +155 -154
  85. package/esm/vs/editor/common/config/editorOptions.js.map +1 -1
  86. package/esm/vs/editor/common/core/editorColorRegistry.js +68 -68
  87. package/esm/vs/editor/common/core/ranges/lineRange.js +3 -0
  88. package/esm/vs/editor/common/core/ranges/lineRange.js.map +1 -1
  89. package/esm/vs/editor/common/cursorCommon.js +19 -19
  90. package/esm/vs/editor/common/editorContextKeys.js +46 -46
  91. package/esm/vs/editor/common/languages/modesRegistry.js +1 -1
  92. package/esm/vs/editor/common/languages.js +56 -56
  93. package/esm/vs/editor/common/model/editStack.js +1 -1
  94. package/esm/vs/editor/common/standalone/standaloneEnums.js +86 -85
  95. package/esm/vs/editor/common/standalone/standaloneEnums.js.map +1 -1
  96. package/esm/vs/editor/common/standaloneStrings.js +10 -10
  97. package/esm/vs/editor/common/viewLayout/viewLayout.js +15 -15
  98. package/esm/vs/editor/common/viewLayout/viewLineRenderer.js +2 -2
  99. package/esm/vs/editor/common/viewModel/monospaceLineBreaksComputer.js +1 -1
  100. package/esm/vs/editor/common/viewModel/viewModelImpl.js +14 -14
  101. package/esm/vs/editor/contrib/anchorSelect/browser/anchorSelect.js +6 -6
  102. package/esm/vs/editor/contrib/bracketMatching/browser/bracketMatching.js +6 -6
  103. package/esm/vs/editor/contrib/caretOperations/browser/caretOperations.js +2 -2
  104. package/esm/vs/editor/contrib/caretOperations/browser/transpose.js +1 -1
  105. package/esm/vs/editor/contrib/clipboard/browser/clipboard.js +20 -20
  106. package/esm/vs/editor/contrib/codeAction/browser/codeAction.js +1 -1
  107. package/esm/vs/editor/contrib/codeAction/browser/codeActionCommands.js +29 -29
  108. package/esm/vs/editor/contrib/codeAction/browser/codeActionContributions.js +3 -3
  109. package/esm/vs/editor/contrib/codeAction/browser/codeActionController.js +3 -3
  110. package/esm/vs/editor/contrib/codeAction/browser/codeActionMenu.js +8 -8
  111. package/esm/vs/editor/contrib/codeAction/browser/codeActionModel.js +1 -1
  112. package/esm/vs/editor/contrib/codeAction/browser/lightBulbWidget.js +9 -9
  113. package/esm/vs/editor/contrib/codelens/browser/codelensController.js +2 -2
  114. package/esm/vs/editor/contrib/colorPicker/browser/colorDetector.js +3 -3
  115. package/esm/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerCloseButton.js +1 -1
  116. package/esm/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerHeader.js +1 -1
  117. package/esm/vs/editor/contrib/colorPicker/browser/hoverColorPicker/hoverColorPickerContribution.js +1 -1
  118. package/esm/vs/editor/contrib/colorPicker/browser/hoverColorPicker/hoverColorPickerParticipant.js +2 -2
  119. package/esm/vs/editor/contrib/colorPicker/browser/standaloneColorPicker/standaloneColorPickerActions.js +7 -7
  120. package/esm/vs/editor/contrib/colorPicker/browser/standaloneColorPicker/standaloneColorPickerParticipant.js +1 -1
  121. package/esm/vs/editor/contrib/comment/browser/comment.js +6 -6
  122. package/esm/vs/editor/contrib/contextmenu/browser/contextmenu.js +12 -12
  123. package/esm/vs/editor/contrib/cursorUndo/browser/cursorUndo.js +2 -2
  124. package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js +4 -4
  125. package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js +12 -12
  126. package/esm/vs/editor/contrib/dropOrPasteInto/browser/defaultProviders.js +8 -8
  127. package/esm/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController.js +3 -3
  128. package/esm/vs/editor/contrib/dropOrPasteInto/browser/postEditWidget.js +2 -2
  129. package/esm/vs/editor/contrib/editorState/browser/keybindingCancellation.js +1 -1
  130. package/esm/vs/editor/contrib/find/browser/findController.js +17 -17
  131. package/esm/vs/editor/contrib/find/browser/findModel.js +6 -6
  132. package/esm/vs/editor/contrib/find/browser/findWidget.js +32 -32
  133. package/esm/vs/editor/contrib/folding/browser/folding.js +23 -23
  134. package/esm/vs/editor/contrib/folding/browser/foldingDecorations.js +9 -9
  135. package/esm/vs/editor/contrib/folding/browser/foldingDecorations.js.map +1 -1
  136. package/esm/vs/editor/contrib/fontZoom/browser/fontZoom.js +3 -3
  137. package/esm/vs/editor/contrib/format/browser/formatActions.js +2 -2
  138. package/esm/vs/editor/contrib/gotoError/browser/gotoError.js +8 -8
  139. package/esm/vs/editor/contrib/gotoError/browser/gotoErrorWidget.js +14 -14
  140. package/esm/vs/editor/contrib/gotoSymbol/browser/goToCommands.js +39 -39
  141. package/esm/vs/editor/contrib/gotoSymbol/browser/link/clickLinkGesture.js +21 -11
  142. package/esm/vs/editor/contrib/gotoSymbol/browser/link/clickLinkGesture.js.map +1 -1
  143. package/esm/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js +2 -2
  144. package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesController.js +4 -4
  145. package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesTree.js +3 -3
  146. package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget.js +3 -3
  147. package/esm/vs/editor/contrib/gotoSymbol/browser/referencesModel.js +8 -8
  148. package/esm/vs/editor/contrib/gotoSymbol/browser/symbolNavigation.js +3 -3
  149. package/esm/vs/editor/contrib/gpu/browser/gpuActions.js +4 -4
  150. package/esm/vs/editor/contrib/hover/browser/hoverActionIds.js +2 -2
  151. package/esm/vs/editor/contrib/hover/browser/hoverActions.js +24 -24
  152. package/esm/vs/editor/contrib/hover/browser/markdownHoverParticipant.js +10 -10
  153. package/esm/vs/editor/contrib/hover/browser/markerHoverParticipant.js +6 -6
  154. package/esm/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace.js +2 -2
  155. package/esm/vs/editor/contrib/indentation/browser/indentation.js +20 -20
  156. package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsController.js +5 -5
  157. package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsHover.js +8 -8
  158. package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsLocations.js +2 -2
  159. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/commands.js +19 -19
  160. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionContextKeys.js +12 -12
  161. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js +2 -2
  162. package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/hoverParticipant.js +1 -1
  163. package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/inlineCompletionsHintsWidget.js +5 -5
  164. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js +1 -1
  165. package/esm/vs/editor/contrib/inlineCompletions/browser/view/ghostText/ghostTextView.js +5 -5
  166. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorMenu.js +5 -5
  167. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js +4 -1
  168. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js.map +1 -1
  169. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsModel.js +1 -1
  170. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsView.js +2 -0
  171. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsView.js.map +1 -1
  172. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViewProducer.js +1 -0
  173. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViewProducer.js.map +1 -1
  174. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/theme.js +22 -21
  175. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/theme.js.map +1 -1
  176. package/esm/vs/editor/contrib/insertFinalNewLine/browser/insertFinalNewLine.js +1 -1
  177. package/esm/vs/editor/contrib/lineSelection/browser/lineSelection.js +1 -1
  178. package/esm/vs/editor/contrib/linesOperations/browser/linesOperations.js +32 -32
  179. package/esm/vs/editor/contrib/linkedEditing/browser/linkedEditing.js +4 -4
  180. package/esm/vs/editor/contrib/links/browser/links.js +11 -11
  181. package/esm/vs/editor/contrib/links/browser/links.js.map +1 -1
  182. package/esm/vs/editor/contrib/longLinesHelper/browser/longLinesHelper.js +1 -1
  183. package/esm/vs/editor/contrib/message/browser/messageController.js +1 -1
  184. package/esm/vs/editor/contrib/middleScroll/browser/middleScrollController.js +1 -1
  185. package/esm/vs/editor/contrib/multicursor/browser/multicursor.js +36 -36
  186. package/esm/vs/editor/contrib/parameterHints/browser/parameterHints.js +1 -1
  187. package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsModel.js +3 -3
  188. package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +4 -4
  189. package/esm/vs/editor/contrib/peekView/browser/peekView.js +18 -18
  190. package/esm/vs/editor/contrib/placeholderText/browser/placeholderText.contribution.js +1 -1
  191. package/esm/vs/editor/contrib/placeholderText/browser/placeholderTextContribution.js +1 -1
  192. package/esm/vs/editor/contrib/placeholderText/browser/placeholderTextContribution.js.map +1 -1
  193. package/esm/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js +5 -5
  194. package/esm/vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess.js +32 -32
  195. package/esm/vs/editor/contrib/readOnlyMessage/browser/contribution.js +3 -3
  196. package/esm/vs/editor/contrib/rename/browser/rename.js +11 -11
  197. package/esm/vs/editor/contrib/rename/browser/renameWidget.js +7 -7
  198. package/esm/vs/editor/contrib/smartSelect/browser/smartSelect.js +5 -5
  199. package/esm/vs/editor/contrib/snippet/browser/snippetController2.js +4 -4
  200. package/esm/vs/editor/contrib/snippet/browser/snippetSession.js +2 -2
  201. package/esm/vs/editor/contrib/snippet/browser/snippetVariables.js +4 -4
  202. package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollActions.js +11 -11
  203. package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollController.js +17 -24
  204. package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollController.js.map +1 -1
  205. package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollModelProvider.js +1 -1
  206. package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollProvider.js +12 -3
  207. package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollProvider.js.map +1 -1
  208. package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollWidget.js +5 -5
  209. package/esm/vs/editor/contrib/suggest/browser/suggest.js +8 -8
  210. package/esm/vs/editor/contrib/suggest/browser/suggestController.js +14 -14
  211. package/esm/vs/editor/contrib/suggest/browser/suggestInlineCompletions.js +2 -2
  212. package/esm/vs/editor/contrib/suggest/browser/suggestModel.js +11 -11
  213. package/esm/vs/editor/contrib/suggest/browser/suggestWidget.js +23 -23
  214. package/esm/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js +5 -5
  215. package/esm/vs/editor/contrib/suggest/browser/suggestWidgetRenderer.js +5 -5
  216. package/esm/vs/editor/contrib/suggest/browser/wordContextKey.js +3 -3
  217. package/esm/vs/editor/contrib/suggest/browser/wordDistance.js +1 -1
  218. package/esm/vs/editor/contrib/symbolIcons/browser/symbolIcons.js +33 -33
  219. package/esm/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js +4 -4
  220. package/esm/vs/editor/contrib/tokenization/browser/tokenization.js +1 -1
  221. package/esm/vs/editor/contrib/unicodeHighlighter/browser/bannerController.js +1 -1
  222. package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +27 -27
  223. package/esm/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js +9 -9
  224. package/esm/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.js +9 -9
  225. package/esm/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js +7 -7
  226. package/esm/vs/editor/contrib/wordOperations/browser/wordOperations.js +4 -4
  227. package/esm/vs/editor/editor.api.d.ts +93 -85
  228. package/esm/vs/editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard.js +1 -1
  229. package/esm/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js +62 -62
  230. package/esm/vs/platform/action/common/actionCommonCategories.js +6 -6
  231. package/esm/vs/platform/actionWidget/browser/actionList.js +4 -4
  232. package/esm/vs/platform/actionWidget/browser/actionWidget.js +7 -7
  233. package/esm/vs/platform/actions/browser/menuEntryActionViewItem.js +5 -5
  234. package/esm/vs/platform/actions/browser/toolbar.js +2 -2
  235. package/esm/vs/platform/actions/common/menuService.js +2 -2
  236. package/esm/vs/platform/configuration/common/configurationRegistry.js +10 -10
  237. package/esm/vs/platform/contextkey/browser/contextKeyService.js +1 -1
  238. package/esm/vs/platform/contextkey/common/contextkey.js +9 -9
  239. package/esm/vs/platform/contextkey/common/contextkeys.js +9 -9
  240. package/esm/vs/platform/contextkey/common/scanner.js +5 -5
  241. package/esm/vs/platform/history/browser/contextScopedHistoryWidget.js +1 -1
  242. package/esm/vs/platform/keybinding/common/abstractKeybindingService.js +4 -4
  243. package/esm/vs/platform/list/browser/listService.js +27 -27
  244. package/esm/vs/platform/markers/common/markerService.js +2 -2
  245. package/esm/vs/platform/markers/common/markers.js +6 -6
  246. package/esm/vs/platform/quickinput/browser/commandsQuickAccess.js +7 -7
  247. package/esm/vs/platform/quickinput/browser/helpQuickAccess.js +1 -1
  248. package/esm/vs/platform/quickinput/browser/quickInput.js +21 -13
  249. package/esm/vs/platform/quickinput/browser/quickInput.js.map +1 -1
  250. package/esm/vs/platform/quickinput/browser/quickInputActions.js +42 -8
  251. package/esm/vs/platform/quickinput/browser/quickInputActions.js.map +1 -1
  252. package/esm/vs/platform/quickinput/browser/quickInputController.js +10 -64
  253. package/esm/vs/platform/quickinput/browser/quickInputController.js.map +1 -1
  254. package/esm/vs/platform/quickinput/browser/quickInputList.js +1 -1
  255. package/esm/vs/platform/quickinput/browser/quickInputUtils.js +1 -1
  256. package/esm/vs/platform/quickinput/browser/tree/quickInputTreeAccessibilityProvider.js +1 -1
  257. package/esm/vs/platform/quickinput/browser/tree/quickInputTreeController.js +12 -0
  258. package/esm/vs/platform/quickinput/browser/tree/quickInputTreeController.js.map +1 -1
  259. package/esm/vs/platform/quickinput/browser/tree/quickInputTreeRenderer.js +11 -5
  260. package/esm/vs/platform/quickinput/browser/tree/quickInputTreeRenderer.js.map +1 -1
  261. package/esm/vs/platform/quickinput/common/quickInput.js.map +1 -1
  262. package/esm/vs/platform/theme/common/colorUtils.js +2 -2
  263. package/esm/vs/platform/theme/common/colors/baseColors.js +17 -17
  264. package/esm/vs/platform/theme/common/colors/chartsColors.js +8 -8
  265. package/esm/vs/platform/theme/common/colors/editorColors.js +95 -95
  266. package/esm/vs/platform/theme/common/colors/inputColors.js +47 -47
  267. package/esm/vs/platform/theme/common/colors/listColors.js +36 -36
  268. package/esm/vs/platform/theme/common/colors/menuColors.js +7 -7
  269. package/esm/vs/platform/theme/common/colors/minimapColors.js +11 -11
  270. package/esm/vs/platform/theme/common/colors/miscColors.js +15 -15
  271. package/esm/vs/platform/theme/common/colors/quickpickColors.js +9 -9
  272. package/esm/vs/platform/theme/common/colors/searchColors.js +3 -3
  273. package/esm/vs/platform/theme/common/iconRegistry.js +6 -6
  274. package/esm/vs/platform/undoRedo/common/undoRedoService.js +20 -20
  275. package/esm/vs/platform/workspace/common/workspace.js +1 -1
  276. package/monaco.d.ts +93 -85
  277. package/package.json +6 -2
  278. package/version.txt +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["vs/platform/quickinput/browser/quickInput.ts"],"names":[],"mappings":"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","file":"quickInput.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 * as dom from '../../../base/browser/dom.js';\nimport { StandardKeyboardEvent } from '../../../base/browser/keyboardEvent.js';\nimport { ActionBar } from '../../../base/browser/ui/actionbar/actionbar.js';\nimport { Button, IButtonStyles } from '../../../base/browser/ui/button/button.js';\nimport { CountBadge, ICountBadgeStyles } from '../../../base/browser/ui/countBadge/countBadge.js';\nimport { IHoverDelegate, IHoverDelegateOptions } from '../../../base/browser/ui/hover/hoverDelegate.js';\nimport { IInputBoxStyles } from '../../../base/browser/ui/inputbox/inputBox.js';\nimport { IKeybindingLabelStyles } from '../../../base/browser/ui/keybindingLabel/keybindingLabel.js';\nimport { IListStyles } from '../../../base/browser/ui/list/listWidget.js';\nimport { IProgressBarStyles, ProgressBar } from '../../../base/browser/ui/progressbar/progressbar.js';\nimport { IToggleStyles, Toggle, TriStateCheckbox } from '../../../base/browser/ui/toggle/toggle.js';\nimport { equals } from '../../../base/common/arrays.js';\nimport { TimeoutTimer } from '../../../base/common/async.js';\nimport { Codicon } from '../../../base/common/codicons.js';\nimport { Emitter, Event, EventBufferer } from '../../../base/common/event.js';\nimport { KeyCode } from '../../../base/common/keyCodes.js';\nimport { Disposable, DisposableStore } from '../../../base/common/lifecycle.js';\nimport { isIOS } from '../../../base/common/platform.js';\nimport Severity from '../../../base/common/severity.js';\nimport { ThemeIcon } from '../../../base/common/themables.js';\nimport './media/quickInput.css';\nimport { localize } from '../../../nls.js';\nimport { IInputBox, IKeyMods, IQuickInput, IQuickInputButton, IQuickInputHideEvent, IQuickInputToggle, IQuickNavigateConfiguration, IQuickPick, IQuickPickDidAcceptEvent, IQuickPickItem, IQuickPickItemButtonEvent, IQuickPickSeparator, IQuickPickSeparatorButtonEvent, IQuickPickWillAcceptEvent, ItemActivation, NO_KEY_MODS, QuickInputButtonLocation, QuickInputHideReason, QuickInputType, QuickPickFocus } from '../common/quickInput.js';\nimport { QuickInputBox } from './quickInputBox.js';\nimport { quickInputButtonToAction, renderQuickInputDescription } from './quickInputUtils.js';\nimport { IConfigurationService } from '../../configuration/common/configuration.js';\nimport { IHoverService, WorkbenchHoverDelegate } from '../../hover/browser/hover.js';\nimport { QuickInputList } from './quickInputList.js';\nimport { IHoverOptions } from '../../../base/browser/ui/hover/hover.js';\nimport { ContextKeyExpr, RawContextKey } from '../../contextkey/common/contextkey.js';\nimport { QuickInputTreeController } from './tree/quickInputTreeController.js';\nimport { observableValue } from '../../../base/common/observable.js';\n\nexport const inQuickInputContextKeyValue = 'inQuickInput';\nexport const InQuickInputContextKey = new RawContextKey<boolean>(inQuickInputContextKeyValue, false, localize('inQuickInput', \"Whether keyboard focus is inside the quick input control\"));\nexport const inQuickInputContext = ContextKeyExpr.has(inQuickInputContextKeyValue);\n\nexport const quickInputAlignmentContextKeyValue = 'quickInputAlignment';\nexport const QuickInputAlignmentContextKey = new RawContextKey<'top' | 'center' | undefined>(quickInputAlignmentContextKeyValue, 'top', localize('quickInputAlignment', \"The alignment of the quick input\"));\n\nexport const quickInputTypeContextKeyValue = 'quickInputType';\nexport const QuickInputTypeContextKey = new RawContextKey<QuickInputType>(quickInputTypeContextKeyValue, undefined, localize('quickInputType', \"The type of the currently visible quick input\"));\n\nexport const endOfQuickInputBoxContextKeyValue = 'cursorAtEndOfQuickInputBox';\nexport const EndOfQuickInputBoxContextKey = new RawContextKey<boolean>(endOfQuickInputBoxContextKeyValue, false, localize('cursorAtEndOfQuickInputBox', \"Whether the cursor in the quick input is at the end of the input box\"));\nexport const endOfQuickInputBoxContext = ContextKeyExpr.has(endOfQuickInputBoxContextKeyValue);\n\nexport interface IQuickInputOptions {\n\tidPrefix: string;\n\tcontainer: HTMLElement;\n\tignoreFocusOut(): boolean;\n\tbackKeybindingLabel(): string | undefined;\n\tsetContextKey(id?: string): void;\n\tlinkOpenerDelegate(content: string): void;\n\treturnFocus(): void;\n\t/**\n\t * @todo With IHover in vs/editor, can we depend on the service directly\n\t * instead of passing it through a hover delegate?\n\t */\n\thoverDelegate: IHoverDelegate;\n\tstyles: IQuickInputStyles;\n}\n\nexport interface IQuickInputStyles {\n\treadonly widget: IQuickInputWidgetStyles;\n\treadonly inputBox: IInputBoxStyles;\n\treadonly toggle: IToggleStyles;\n\treadonly countBadge: ICountBadgeStyles;\n\treadonly button: IButtonStyles;\n\treadonly progressBar: IProgressBarStyles;\n\treadonly keybindingLabel: IKeybindingLabelStyles;\n\treadonly list: IListStyles;\n\treadonly pickerGroup: { pickerGroupBorder: string | undefined; pickerGroupForeground: string | undefined };\n}\n\nexport interface IQuickInputWidgetStyles {\n\treadonly quickInputBackground: string | undefined;\n\treadonly quickInputForeground: string | undefined;\n\treadonly quickInputTitleBackground: string | undefined;\n\treadonly widgetBorder: string | undefined;\n\treadonly widgetShadow: string | undefined;\n}\n\nexport type Writeable<T> = { -readonly [P in keyof T]: T[P] };\n\nexport const backButton = {\n\ticonClass: ThemeIcon.asClassName(Codicon.quickInputBack),\n\ttooltip: localize('quickInput.back', \"Back\"),\n\thandle: -1 // TODO\n};\n\nexport interface QuickInputUI {\n\tcontainer: HTMLElement;\n\tstyleSheet: HTMLStyleElement;\n\tleftActionBar: ActionBar;\n\ttitleBar: HTMLElement;\n\ttitle: HTMLElement;\n\tdescription1: HTMLElement;\n\tdescription2: HTMLElement;\n\twidget: HTMLElement;\n\trightActionBar: ActionBar;\n\tinlineActionBar: ActionBar;\n\tcheckAll: TriStateCheckbox;\n\tinputContainer: HTMLElement;\n\tfilterContainer: HTMLElement;\n\tinputBox: QuickInputBox;\n\tvisibleCountContainer: HTMLElement;\n\tvisibleCount: CountBadge;\n\tcountContainer: HTMLElement;\n\tcount: CountBadge;\n\tokContainer: HTMLElement;\n\tok: Button;\n\tmessage: HTMLElement;\n\tcustomButtonContainer: HTMLElement;\n\tcustomButton: Button;\n\tprogressBar: ProgressBar;\n\tlist: QuickInputList;\n\ttree: QuickInputTreeController;\n\tonDidAccept: Event<void>;\n\tonDidCustom: Event<void>;\n\tonDidTriggerButton: Event<IQuickInputButton>;\n\tignoreFocusOut: boolean;\n\tkeyMods: Writeable<IKeyMods>;\n\tshow(controller: QuickInput): void;\n\tsetVisibilities(visibilities: Visibilities): void;\n\tsetEnabled(enabled: boolean): void;\n\tsetContextKey(contextKey?: string): void;\n\tlinkOpenerDelegate(content: string): void;\n\thide(): void;\n}\n\nexport type Visibilities = {\n\ttitle?: boolean;\n\tdescription?: boolean;\n\tcheckAll?: boolean;\n\tinputBox?: boolean;\n\tcheckBox?: boolean;\n\tvisibleCount?: boolean;\n\tcount?: boolean;\n\tmessage?: boolean;\n\tlist?: boolean;\n\ttree?: boolean;\n\tok?: boolean;\n\tcustomButton?: boolean;\n\tprogressBar?: boolean;\n};\n\nexport abstract class QuickInput extends Disposable implements IQuickInput {\n\tprotected static readonly noPromptMessage = localize('inputModeEntry', \"Press 'Enter' to confirm your input or 'Escape' to cancel\");\n\n\tprotected _visible = observableValue('visible', false);\n\tprivate _title: string | undefined;\n\tprivate _description: string | undefined;\n\tprivate _widget: HTMLElement | undefined;\n\tprivate _widgetUpdated = false;\n\tprivate _steps: number | undefined;\n\tprivate _totalSteps: number | undefined;\n\tprivate _enabled = true;\n\tprivate _contextKey: string | undefined;\n\tprivate _busy = false;\n\tprivate _ignoreFocusOut = false;\n\tprivate _leftButtons: IQuickInputButton[] = [];\n\tprivate _rightButtons: IQuickInputButton[] = [];\n\tprivate _inlineButtons: IQuickInputButton[] = [];\n\tprivate buttonsUpdated = false;\n\tprivate _toggles: IQuickInputToggle[] = [];\n\tprivate togglesUpdated = false;\n\tprotected noValidationMessage = QuickInput.noPromptMessage;\n\tprivate _validationMessage: string | undefined;\n\tprivate _lastValidationMessage: string | undefined;\n\tprivate _severity: Severity = Severity.Ignore;\n\tprivate _lastSeverity: Severity | undefined;\n\tprivate readonly onDidTriggerButtonEmitter = this._register(new Emitter<IQuickInputButton>());\n\tprivate readonly onDidHideEmitter = this._register(new Emitter<IQuickInputHideEvent>());\n\tprivate readonly onWillHideEmitter = this._register(new Emitter<IQuickInputHideEvent>());\n\tprivate readonly onDisposeEmitter = this._register(new Emitter<void>());\n\n\tprotected readonly visibleDisposables = this._register(new DisposableStore());\n\n\tprivate busyDelay: TimeoutTimer | undefined;\n\n\tabstract type: QuickInputType;\n\n\tconstructor(\n\t\tprotected ui: QuickInputUI\n\t) {\n\t\tsuper();\n\t}\n\n\tprotected get visible(): boolean {\n\t\treturn this._visible.get();\n\t}\n\n\tget title() {\n\t\treturn this._title;\n\t}\n\n\tset title(title: string | undefined) {\n\t\tthis._title = title;\n\t\tthis.update();\n\t}\n\n\tget description() {\n\t\treturn this._description;\n\t}\n\n\tset description(description: string | undefined) {\n\t\tthis._description = description;\n\t\tthis.update();\n\t}\n\n\tget step() {\n\t\treturn this._steps;\n\t}\n\n\tset step(step: number | undefined) {\n\t\tthis._steps = step;\n\t\tthis.update();\n\t}\n\n\tget totalSteps() {\n\t\treturn this._totalSteps;\n\t}\n\n\tset totalSteps(totalSteps: number | undefined) {\n\t\tthis._totalSteps = totalSteps;\n\t\tthis.update();\n\t}\n\n\tget enabled() {\n\t\treturn this._enabled;\n\t}\n\n\tset enabled(enabled: boolean) {\n\t\tthis._enabled = enabled;\n\t\tthis.update();\n\t}\n\n\tget contextKey() {\n\t\treturn this._contextKey;\n\t}\n\n\tset contextKey(contextKey: string | undefined) {\n\t\tthis._contextKey = contextKey;\n\t\tthis.update();\n\t}\n\n\tget busy() {\n\t\treturn this._busy;\n\t}\n\n\tset busy(busy: boolean) {\n\t\tthis._busy = busy;\n\t\tthis.update();\n\t}\n\n\tget ignoreFocusOut() {\n\t\treturn this._ignoreFocusOut;\n\t}\n\n\tset ignoreFocusOut(ignoreFocusOut: boolean) {\n\t\tconst shouldUpdate = this._ignoreFocusOut !== ignoreFocusOut && !isIOS;\n\t\tthis._ignoreFocusOut = ignoreFocusOut && !isIOS;\n\t\tif (shouldUpdate) {\n\t\t\tthis.update();\n\t\t}\n\t}\n\n\tprotected get titleButtons() {\n\t\treturn this._leftButtons.length\n\t\t\t? [...this._leftButtons, this._rightButtons]\n\t\t\t: this._rightButtons;\n\t}\n\n\tget buttons() {\n\t\treturn [\n\t\t\t...this._leftButtons,\n\t\t\t...this._rightButtons,\n\t\t\t...this._inlineButtons\n\t\t];\n\t}\n\n\tset buttons(buttons: IQuickInputButton[]) {\n\t\tthis._leftButtons = buttons.filter(b => b === backButton);\n\t\tthis._rightButtons = buttons.filter(b => b !== backButton && b.location !== QuickInputButtonLocation.Inline);\n\t\tthis._inlineButtons = buttons.filter(b => b.location === QuickInputButtonLocation.Inline);\n\t\tthis.buttonsUpdated = true;\n\t\tthis.update();\n\t}\n\n\tget toggles() {\n\t\treturn this._toggles;\n\t}\n\n\tset toggles(toggles: IQuickInputToggle[]) {\n\t\tthis._toggles = toggles ?? [];\n\t\tthis.togglesUpdated = true;\n\t\tthis.update();\n\t}\n\n\tget validationMessage() {\n\t\treturn this._validationMessage;\n\t}\n\n\tset validationMessage(validationMessage: string | undefined) {\n\t\tthis._validationMessage = validationMessage;\n\t\tthis.update();\n\t}\n\n\tget severity() {\n\t\treturn this._severity;\n\t}\n\n\tset severity(severity: Severity) {\n\t\tthis._severity = severity;\n\t\tthis.update();\n\t}\n\n\tshow(): void {\n\t\tif (this.visible) {\n\t\t\treturn;\n\t\t}\n\t\tthis.visibleDisposables.add(\n\t\t\tthis.ui.onDidTriggerButton(button => {\n\t\t\t\tif (this.buttons.indexOf(button) !== -1) {\n\t\t\t\t\tthis.onDidTriggerButtonEmitter.fire(button);\n\t\t\t\t}\n\t\t\t}),\n\t\t);\n\t\tthis.ui.show(this);\n\n\t\t// update properties in the controller that get reset in the ui.show() call\n\t\tthis._visible.set(true, undefined);\n\t\t// This ensures the message/prompt gets rendered\n\t\tthis._lastValidationMessage = undefined;\n\t\t// This ensures the input box has the right severity applied\n\t\tthis._lastSeverity = undefined;\n\t\tif (this.buttons.length) {\n\t\t\t// if there are buttons, the ui.show() clears them out of the UI so we should\n\t\t\t// rerender them.\n\t\t\tthis.buttonsUpdated = true;\n\t\t}\n\t\tif (this.toggles.length) {\n\t\t\t// if there are toggles, the ui.show() clears them out of the UI so we should\n\t\t\t// rerender them.\n\t\t\tthis.togglesUpdated = true;\n\t\t}\n\n\t\tthis.update();\n\t}\n\n\thide(): void {\n\t\tif (!this.visible) {\n\t\t\treturn;\n\t\t}\n\t\tthis.ui.hide();\n\t}\n\n\tdidHide(reason = QuickInputHideReason.Other): void {\n\t\tthis._visible.set(false, undefined);\n\t\tthis.visibleDisposables.clear();\n\t\tthis.onDidHideEmitter.fire({ reason });\n\t}\n\n\treadonly onDidHide = this.onDidHideEmitter.event;\n\n\twillHide(reason = QuickInputHideReason.Other): void {\n\t\tthis.onWillHideEmitter.fire({ reason });\n\t}\n\n\tprotected update() {\n\t\tif (!this.visible) {\n\t\t\treturn;\n\t\t}\n\t\tconst title = this.getTitle();\n\t\tif (title && this.ui.title.textContent !== title) {\n\t\t\tthis.ui.title.textContent = title;\n\t\t} else if (!title && this.ui.title.innerHTML !== '&nbsp;') {\n\t\t\tthis.ui.title.innerText = '\\u00a0';\n\t\t}\n\t\tconst description = this.getDescription();\n\t\tif (this.ui.description1.textContent !== description) {\n\t\t\tthis.ui.description1.textContent = description;\n\t\t}\n\t\tif (this.ui.description2.textContent !== description) {\n\t\t\tthis.ui.description2.textContent = description;\n\t\t}\n\t\tif (this._widgetUpdated) {\n\t\t\tthis._widgetUpdated = false;\n\t\t\tif (this._widget) {\n\t\t\t\tdom.reset(this.ui.widget, this._widget);\n\t\t\t} else {\n\t\t\t\tdom.reset(this.ui.widget);\n\t\t\t}\n\t\t}\n\t\tif (this.busy && !this.busyDelay) {\n\t\t\tthis.busyDelay = new TimeoutTimer();\n\t\t\tthis.busyDelay.setIfNotSet(() => {\n\t\t\t\tif (this.visible) {\n\t\t\t\t\tthis.ui.progressBar.infinite();\n\t\t\t\t}\n\t\t\t}, 800);\n\t\t}\n\t\tif (!this.busy && this.busyDelay) {\n\t\t\tthis.ui.progressBar.stop();\n\t\t\tthis.busyDelay.cancel();\n\t\t\tthis.busyDelay = undefined;\n\t\t}\n\t\tif (this.buttonsUpdated) {\n\t\t\tthis.buttonsUpdated = false;\n\t\t\tthis.ui.leftActionBar.clear();\n\t\t\tconst leftButtons = this._leftButtons\n\t\t\t\t.map((button, index) => quickInputButtonToAction(\n\t\t\t\t\tbutton,\n\t\t\t\t\t`id-${index}`,\n\t\t\t\t\tasync () => this.onDidTriggerButtonEmitter.fire(button)\n\t\t\t\t));\n\t\t\tthis.ui.leftActionBar.push(leftButtons, { icon: true, label: false });\n\t\t\tthis.ui.rightActionBar.clear();\n\t\t\tconst rightButtons = this._rightButtons\n\t\t\t\t.map((button, index) => quickInputButtonToAction(\n\t\t\t\t\tbutton,\n\t\t\t\t\t`id-${index}`,\n\t\t\t\t\tasync () => this.onDidTriggerButtonEmitter.fire(button)\n\t\t\t\t));\n\t\t\tthis.ui.rightActionBar.push(rightButtons, { icon: true, label: false });\n\t\t\tthis.ui.inlineActionBar.clear();\n\t\t\tconst inlineButtons = this._inlineButtons\n\t\t\t\t.map((button, index) => quickInputButtonToAction(\n\t\t\t\t\tbutton,\n\t\t\t\t\t`id-${index}`,\n\t\t\t\t\tasync () => this.onDidTriggerButtonEmitter.fire(button)\n\t\t\t\t));\n\t\t\tthis.ui.inlineActionBar.push(inlineButtons, { icon: true, label: false });\n\t\t}\n\t\tif (this.togglesUpdated) {\n\t\t\tthis.togglesUpdated = false;\n\t\t\t// HACK: Filter out toggles here that are not concrete Toggle objects. This is to workaround\n\t\t\t// a layering issue as quick input's interface is in common but Toggle is in browser and\n\t\t\t// it requires a HTMLElement on its interface\n\t\t\tconst concreteToggles = this.toggles?.filter(opts => opts instanceof Toggle) as Toggle[] ?? [];\n\t\t\tthis.ui.inputBox.toggles = concreteToggles;\n\t\t}\n\t\tthis.ui.ignoreFocusOut = this.ignoreFocusOut;\n\t\tthis.ui.setEnabled(this.enabled);\n\t\tthis.ui.setContextKey(this.contextKey);\n\n\t\tconst validationMessage = this.validationMessage || this.noValidationMessage;\n\t\tif (this._lastValidationMessage !== validationMessage) {\n\t\t\tthis._lastValidationMessage = validationMessage;\n\t\t\tdom.reset(this.ui.message);\n\t\t\trenderQuickInputDescription(validationMessage, this.ui.message, {\n\t\t\t\tcallback: (content) => {\n\t\t\t\t\tthis.ui.linkOpenerDelegate(content);\n\t\t\t\t},\n\t\t\t\tdisposables: this.visibleDisposables,\n\t\t\t});\n\t\t}\n\t\tif (this._lastSeverity !== this.severity) {\n\t\t\tthis._lastSeverity = this.severity;\n\t\t\tthis.showMessageDecoration(this.severity);\n\t\t}\n\t}\n\n\tprivate getTitle() {\n\t\tif (this.title && this.step) {\n\t\t\treturn `${this.title} (${this.getSteps()})`;\n\t\t}\n\t\tif (this.title) {\n\t\t\treturn this.title;\n\t\t}\n\t\tif (this.step) {\n\t\t\treturn this.getSteps();\n\t\t}\n\t\treturn '';\n\t}\n\n\tprivate getDescription() {\n\t\treturn this.description || '';\n\t}\n\n\tprivate getSteps() {\n\t\tif (this.step && this.totalSteps) {\n\t\t\treturn localize('quickInput.steps', \"{0}/{1}\", this.step, this.totalSteps);\n\t\t}\n\t\tif (this.step) {\n\t\t\treturn String(this.step);\n\t\t}\n\t\treturn '';\n\t}\n\n\tprotected showMessageDecoration(severity: Severity) {\n\t\tthis.ui.inputBox.showDecoration(severity);\n\t\tif (severity !== Severity.Ignore) {\n\t\t\tconst styles = this.ui.inputBox.stylesForType(severity);\n\t\t\tthis.ui.message.style.color = styles.foreground ? `${styles.foreground}` : '';\n\t\t\tthis.ui.message.style.backgroundColor = styles.background ? `${styles.background}` : '';\n\t\t\tthis.ui.message.style.border = styles.border ? `1px solid ${styles.border}` : '';\n\t\t\tthis.ui.message.style.marginBottom = '-2px';\n\t\t} else {\n\t\t\tthis.ui.message.style.color = '';\n\t\t\tthis.ui.message.style.backgroundColor = '';\n\t\t\tthis.ui.message.style.border = '';\n\t\t\tthis.ui.message.style.marginBottom = '';\n\t\t}\n\t}\n\n\toverride dispose(): void {\n\t\tthis.hide();\n\t\tthis.onDisposeEmitter.fire();\n\n\t\tsuper.dispose();\n\t}\n}\n\nexport class QuickPick<T extends IQuickPickItem, O extends { useSeparators: boolean } = { useSeparators: false }> extends QuickInput implements IQuickPick<T, O> {\n\n\tprivate static readonly DEFAULT_ARIA_LABEL = localize('quickInputBox.ariaLabel', \"Type to narrow down results.\");\n\n\tprivate _value = '';\n\tprivate _ariaLabel: string | undefined;\n\tprivate _placeholder: string | undefined;\n\tprivate readonly onDidChangeValueEmitter = this._register(new Emitter<string>());\n\tprivate readonly onWillAcceptEmitter = this._register(new Emitter<IQuickPickWillAcceptEvent>());\n\tprivate readonly onDidAcceptEmitter = this._register(new Emitter<IQuickPickDidAcceptEvent>());\n\tprivate readonly onDidCustomEmitter = this._register(new Emitter<void>());\n\tprivate _items: O extends { useSeparators: true } ? Array<T | IQuickPickSeparator> : Array<T> = [];\n\tprivate itemsUpdated = false;\n\tprivate _canSelectMany = false;\n\tprivate _canAcceptInBackground = false;\n\tprivate _matchOnDescription = false;\n\tprivate _matchOnDetail = false;\n\tprivate _matchOnLabel = true;\n\tprivate _matchOnLabelMode: 'fuzzy' | 'contiguous' = 'fuzzy';\n\tprivate _sortByLabel = true;\n\tprivate _keepScrollPosition = false;\n\tprivate _itemActivation = ItemActivation.FIRST;\n\tprivate _activeItems: T[] = [];\n\tprivate activeItemsUpdated = false;\n\tprivate activeItemsToConfirm: T[] | null = [];\n\tprivate readonly onDidChangeActiveEmitter = this._register(new Emitter<T[]>());\n\tprivate _selectedItems: T[] = [];\n\tprivate selectedItemsUpdated = false;\n\tprivate selectedItemsToConfirm: T[] | null = [];\n\tprivate readonly onDidChangeSelectionEmitter = this._register(new Emitter<T[]>());\n\tprivate readonly onDidTriggerItemButtonEmitter = this._register(new Emitter<IQuickPickItemButtonEvent<T>>());\n\tprivate readonly onDidTriggerSeparatorButtonEmitter = this._register(new Emitter<IQuickPickSeparatorButtonEvent>());\n\tprivate _valueSelection: Readonly<[number, number]> | undefined;\n\tprivate valueSelectionUpdated = true;\n\tprivate _ok: boolean | 'default' = 'default';\n\tprivate _okLabel: string | undefined;\n\tprivate _customButton = false;\n\tprivate _customButtonLabel: string | undefined;\n\tprivate _customButtonHover: string | undefined;\n\tprivate _quickNavigate: IQuickNavigateConfiguration | undefined;\n\tprivate _hideInput: boolean | undefined;\n\tprivate _hideCountBadge: boolean | undefined;\n\tprivate _hideCheckAll: boolean | undefined;\n\tprivate _focusEventBufferer = new EventBufferer();\n\n\treadonly type = QuickInputType.QuickPick;\n\n\tget quickNavigate() {\n\t\treturn this._quickNavigate;\n\t}\n\n\tset quickNavigate(quickNavigate: IQuickNavigateConfiguration | undefined) {\n\t\tthis._quickNavigate = quickNavigate;\n\t\tthis.update();\n\t}\n\n\tget value() {\n\t\treturn this._value;\n\t}\n\n\tset value(value: string) {\n\t\tthis.doSetValue(value);\n\t}\n\n\tprivate doSetValue(value: string, skipUpdate?: boolean): void {\n\t\tif (this._value !== value) {\n\t\t\tthis._value = value;\n\t\t\tif (!skipUpdate) {\n\t\t\t\tthis.update();\n\t\t\t}\n\t\t\tif (this.visible) {\n\t\t\t\tconst didFilter = this.ui.list.filter(this.filterValue(this._value));\n\t\t\t\tif (didFilter) {\n\t\t\t\t\tthis.trySelectFirst();\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.onDidChangeValueEmitter.fire(this._value);\n\t\t}\n\t}\n\n\tfilterValue = (value: string) => value;\n\n\tset ariaLabel(ariaLabel: string | undefined) {\n\t\tthis._ariaLabel = ariaLabel;\n\t\tthis.update();\n\t}\n\n\tget ariaLabel() {\n\t\treturn this._ariaLabel;\n\t}\n\n\tget placeholder() {\n\t\treturn this._placeholder;\n\t}\n\n\tset placeholder(placeholder: string | undefined) {\n\t\tthis._placeholder = placeholder;\n\t\tthis.update();\n\t}\n\n\tonDidChangeValue = this.onDidChangeValueEmitter.event;\n\n\tonWillAccept = this.onWillAcceptEmitter.event;\n\tonDidAccept = this.onDidAcceptEmitter.event;\n\n\tget items() {\n\t\treturn this._items;\n\t}\n\n\tget scrollTop() {\n\t\treturn this.ui.list.scrollTop;\n\t}\n\n\tprivate set scrollTop(scrollTop: number) {\n\t\tthis.ui.list.scrollTop = scrollTop;\n\t}\n\n\tset items(items: O extends { useSeparators: true } ? Array<T | IQuickPickSeparator> : Array<T>) {\n\t\tthis._items = items;\n\t\tthis.itemsUpdated = true;\n\t\tthis.update();\n\t}\n\n\tget canSelectMany() {\n\t\treturn this._canSelectMany;\n\t}\n\n\tset canSelectMany(canSelectMany: boolean) {\n\t\tthis._canSelectMany = canSelectMany;\n\t\tthis.update();\n\t}\n\n\tget canAcceptInBackground() {\n\t\treturn this._canAcceptInBackground;\n\t}\n\n\tset canAcceptInBackground(canAcceptInBackground: boolean) {\n\t\tthis._canAcceptInBackground = canAcceptInBackground;\n\t}\n\n\tget matchOnDescription() {\n\t\treturn this._matchOnDescription;\n\t}\n\n\tset matchOnDescription(matchOnDescription: boolean) {\n\t\tthis._matchOnDescription = matchOnDescription;\n\t\tthis.update();\n\t}\n\n\tget matchOnDetail() {\n\t\treturn this._matchOnDetail;\n\t}\n\n\tset matchOnDetail(matchOnDetail: boolean) {\n\t\tthis._matchOnDetail = matchOnDetail;\n\t\tthis.update();\n\t}\n\n\tget matchOnLabel() {\n\t\treturn this._matchOnLabel;\n\t}\n\n\tset matchOnLabel(matchOnLabel: boolean) {\n\t\tthis._matchOnLabel = matchOnLabel;\n\t\tthis.update();\n\t}\n\n\tget matchOnLabelMode() {\n\t\treturn this._matchOnLabelMode;\n\t}\n\n\tset matchOnLabelMode(matchOnLabelMode: 'fuzzy' | 'contiguous') {\n\t\tthis._matchOnLabelMode = matchOnLabelMode;\n\t\tthis.update();\n\t}\n\n\tget sortByLabel() {\n\t\treturn this._sortByLabel;\n\t}\n\n\tset sortByLabel(sortByLabel: boolean) {\n\t\tthis._sortByLabel = sortByLabel;\n\t\tthis.update();\n\t}\n\n\tget keepScrollPosition() {\n\t\treturn this._keepScrollPosition;\n\t}\n\n\tset keepScrollPosition(keepScrollPosition: boolean) {\n\t\tthis._keepScrollPosition = keepScrollPosition;\n\t}\n\n\tget itemActivation() {\n\t\treturn this._itemActivation;\n\t}\n\n\tset itemActivation(itemActivation: ItemActivation) {\n\t\tthis._itemActivation = itemActivation;\n\t}\n\n\tget activeItems() {\n\t\treturn this._activeItems;\n\t}\n\n\tset activeItems(activeItems: T[]) {\n\t\tthis._activeItems = activeItems;\n\t\tthis.activeItemsUpdated = true;\n\t\tthis.update();\n\t}\n\n\tonDidChangeActive = this.onDidChangeActiveEmitter.event;\n\n\tget selectedItems() {\n\t\treturn this._selectedItems;\n\t}\n\n\tset selectedItems(selectedItems: T[]) {\n\t\tthis._selectedItems = selectedItems;\n\t\tthis.selectedItemsUpdated = true;\n\t\tthis.update();\n\t}\n\n\tget keyMods() {\n\t\tif (this._quickNavigate) {\n\t\t\t// Disable keyMods when quick navigate is enabled\n\t\t\t// because in this model the interaction is purely\n\t\t\t// keyboard driven and Ctrl/Alt are typically\n\t\t\t// pressed and hold during this interaction.\n\t\t\treturn NO_KEY_MODS;\n\t\t}\n\t\treturn this.ui.keyMods;\n\t}\n\n\tget valueSelection() {\n\t\tconst selection = this.ui.inputBox.getSelection();\n\t\tif (!selection) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn [selection.start, selection.end];\n\t}\n\n\tset valueSelection(valueSelection: Readonly<[number, number]> | undefined) {\n\t\tthis._valueSelection = valueSelection;\n\t\tthis.valueSelectionUpdated = true;\n\t\tthis.update();\n\t}\n\n\tget customButton() {\n\t\treturn this._customButton;\n\t}\n\n\tset customButton(showCustomButton: boolean) {\n\t\tthis._customButton = showCustomButton;\n\t\tthis.update();\n\t}\n\n\tget customLabel() {\n\t\treturn this._customButtonLabel;\n\t}\n\n\tset customLabel(label: string | undefined) {\n\t\tthis._customButtonLabel = label;\n\t\tthis.update();\n\t}\n\n\tget customHover() {\n\t\treturn this._customButtonHover;\n\t}\n\n\tset customHover(hover: string | undefined) {\n\t\tthis._customButtonHover = hover;\n\t\tthis.update();\n\t}\n\n\tget ok() {\n\t\treturn this._ok;\n\t}\n\n\tset ok(showOkButton: boolean | 'default') {\n\t\tthis._ok = showOkButton;\n\t\tthis.update();\n\t}\n\n\tget okLabel() {\n\t\treturn this._okLabel ?? localize('ok', \"OK\");\n\t}\n\n\tset okLabel(okLabel: string | undefined) {\n\t\tthis._okLabel = okLabel;\n\t\tthis.update();\n\t}\n\n\tget hideInput() {\n\t\treturn !!this._hideInput;\n\t}\n\n\tset hideInput(hideInput: boolean) {\n\t\tthis._hideInput = hideInput;\n\t\tthis.update();\n\t}\n\n\tonDidChangeSelection = this.onDidChangeSelectionEmitter.event;\n\n\tonDidTriggerItemButton = this.onDidTriggerItemButtonEmitter.event;\n\n\tonDidTriggerSeparatorButton = this.onDidTriggerSeparatorButtonEmitter.event;\n\n\tprivate trySelectFirst() {\n\t\tif (!this.canSelectMany) {\n\t\t\tthis.ui.list.focus(QuickPickFocus.First);\n\t\t}\n\t}\n\n\toverride show() {\n\t\tif (!this.visible) {\n\t\t\tthis.visibleDisposables.add(\n\t\t\t\tthis.ui.inputBox.onDidChange(value => {\n\t\t\t\t\tthis.doSetValue(value, true /* skip update since this originates from the UI */);\n\t\t\t\t}));\n\t\t\tthis.visibleDisposables.add(this.ui.onDidAccept(() => {\n\t\t\t\tif (this.canSelectMany) {\n\t\t\t\t\t// if there are no checked elements, it means that an onDidChangeSelection never fired to overwrite\n\t\t\t\t\t// `_selectedItems`. In that case, we should emit one with an empty array to ensure that\n\t\t\t\t\t// `.selectedItems` is up to date.\n\t\t\t\t\tif (!this.ui.list.getCheckedElements().length) {\n\t\t\t\t\t\tthis._selectedItems = [];\n\t\t\t\t\t\tthis.onDidChangeSelectionEmitter.fire(this.selectedItems);\n\t\t\t\t\t}\n\t\t\t\t} else if (this.activeItems[0]) {\n\t\t\t\t\t// For single-select, we set `selectedItems` to the item that was accepted.\n\t\t\t\t\tthis._selectedItems = [this.activeItems[0]];\n\t\t\t\t\tthis.onDidChangeSelectionEmitter.fire(this.selectedItems);\n\t\t\t\t}\n\t\t\t\tthis.handleAccept(false);\n\t\t\t}));\n\t\t\tthis.visibleDisposables.add(this.ui.onDidCustom(() => {\n\t\t\t\tthis.onDidCustomEmitter.fire();\n\t\t\t}));\n\t\t\tthis.visibleDisposables.add(this._focusEventBufferer.wrapEvent(\n\t\t\t\tthis.ui.list.onDidChangeFocus,\n\t\t\t\t// Only fire the last event\n\t\t\t\t(_, e) => e\n\t\t\t)(focusedItems => {\n\t\t\t\tif (this.activeItemsUpdated) {\n\t\t\t\t\treturn; // Expect another event.\n\t\t\t\t}\n\t\t\t\tif (this.activeItemsToConfirm !== this._activeItems && equals(focusedItems, this._activeItems, (a, b) => a === b)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis._activeItems = focusedItems as T[];\n\t\t\t\tthis.onDidChangeActiveEmitter.fire(focusedItems as T[]);\n\t\t\t}));\n\t\t\tthis.visibleDisposables.add(this.ui.list.onDidChangeSelection(({ items: selectedItems, event }) => {\n\t\t\t\tif (this.canSelectMany && !selectedItems.some(i => i.pickable === false)) {\n\t\t\t\t\tif (selectedItems.length) {\n\t\t\t\t\t\tthis.ui.list.setSelectedElements([]);\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (this.selectedItemsToConfirm !== this._selectedItems && equals(selectedItems, this._selectedItems, (a, b) => a === b)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis._selectedItems = selectedItems as T[];\n\t\t\t\tthis.onDidChangeSelectionEmitter.fire(selectedItems as T[]);\n\t\t\t\tif (selectedItems.length) {\n\t\t\t\t\tthis.handleAccept(dom.isMouseEvent(event) && event.button === 1 /* mouse middle click */);\n\t\t\t\t}\n\t\t\t}));\n\t\t\tthis.visibleDisposables.add(this.ui.list.onChangedCheckedElements(checkedItems => {\n\t\t\t\tif (!this.canSelectMany || !this.visible) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (this.selectedItemsToConfirm !== this._selectedItems && equals(checkedItems, this._selectedItems, (a, b) => a === b)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis._selectedItems = checkedItems as T[];\n\t\t\t\tthis.onDidChangeSelectionEmitter.fire(checkedItems as T[]);\n\t\t\t}));\n\t\t\tthis.visibleDisposables.add(this.ui.list.onButtonTriggered(event => this.onDidTriggerItemButtonEmitter.fire(event as IQuickPickItemButtonEvent<T>)));\n\t\t\tthis.visibleDisposables.add(this.ui.list.onSeparatorButtonTriggered(event => this.onDidTriggerSeparatorButtonEmitter.fire(event)));\n\t\t\tthis.visibleDisposables.add(this.registerQuickNavigation());\n\t\t\tthis.valueSelectionUpdated = true;\n\t\t}\n\t\tsuper.show(); // TODO: Why have show() bubble up while update() trickles down?\n\t}\n\n\tprivate handleAccept(inBackground: boolean): void {\n\n\t\t// Figure out veto via `onWillAccept` event\n\t\tlet veto = false;\n\t\tthis.onWillAcceptEmitter.fire({ veto: () => veto = true });\n\n\t\t// Continue with `onDidAccept` if no veto\n\t\tif (!veto) {\n\t\t\tthis.onDidAcceptEmitter.fire({ inBackground });\n\t\t}\n\t}\n\n\tprivate registerQuickNavigation() {\n\t\treturn dom.addDisposableListener(this.ui.container, dom.EventType.KEY_UP, e => {\n\t\t\tif (this.canSelectMany || !this._quickNavigate) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst keyboardEvent: StandardKeyboardEvent = new StandardKeyboardEvent(e);\n\t\t\tconst keyCode = keyboardEvent.keyCode;\n\n\t\t\t// Select element when keys are pressed that signal it\n\t\t\tconst quickNavKeys = this._quickNavigate.keybindings;\n\t\t\tconst wasTriggerKeyPressed = quickNavKeys.some(k => {\n\t\t\t\tconst chords = k.getChords();\n\t\t\t\tif (chords.length > 1) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tif (chords[0].shiftKey && keyCode === KeyCode.Shift) {\n\t\t\t\t\tif (keyboardEvent.ctrlKey || keyboardEvent.altKey || keyboardEvent.metaKey) {\n\t\t\t\t\t\treturn false; // this is an optimistic check for the shift key being used to navigate back in quick input\n\t\t\t\t\t}\n\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tif (chords[0].altKey && keyCode === KeyCode.Alt) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tif (chords[0].ctrlKey && keyCode === KeyCode.Ctrl) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tif (chords[0].metaKey && keyCode === KeyCode.Meta) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t});\n\n\t\t\tif (wasTriggerKeyPressed) {\n\t\t\t\tif (this.activeItems[0]) {\n\t\t\t\t\tthis._selectedItems = [this.activeItems[0]];\n\t\t\t\t\tthis.onDidChangeSelectionEmitter.fire(this.selectedItems);\n\t\t\t\t\tthis.handleAccept(false);\n\t\t\t\t}\n\t\t\t\t// Unset quick navigate after press. It is only valid once\n\t\t\t\t// and should not result in any behaviour change afterwards\n\t\t\t\t// if the picker remains open because there was no active item\n\t\t\t\tthis._quickNavigate = undefined;\n\t\t\t}\n\t\t});\n\t}\n\n\tprotected override update() {\n\t\tif (!this.visible) {\n\t\t\treturn;\n\t\t}\n\t\t// store the scrollTop before it is reset\n\t\tconst scrollTopBefore = this.keepScrollPosition ? this.scrollTop : 0;\n\t\tconst hasDescription = !!this.description;\n\t\tconst visibilities: Visibilities = {\n\t\t\ttitle: !!this.title || !!this.step || !!this.titleButtons.length,\n\t\t\tdescription: hasDescription,\n\t\t\tcheckAll: this.canSelectMany && !this._hideCheckAll,\n\t\t\tcheckBox: this.canSelectMany,\n\t\t\tinputBox: !this._hideInput,\n\t\t\tprogressBar: !this._hideInput || hasDescription,\n\t\t\tvisibleCount: true,\n\t\t\tcount: this.canSelectMany && !this._hideCountBadge,\n\t\t\tok: this.ok === 'default' ? this.canSelectMany : this.ok,\n\t\t\tlist: true,\n\t\t\tmessage: !!this.validationMessage,\n\t\t\tcustomButton: this.customButton\n\t\t};\n\t\tthis.ui.setVisibilities(visibilities);\n\t\tsuper.update();\n\t\tif (this.ui.inputBox.value !== this.value) {\n\t\t\tthis.ui.inputBox.value = this.value;\n\t\t}\n\t\tif (this.valueSelectionUpdated) {\n\t\t\tthis.valueSelectionUpdated = false;\n\t\t\tthis.ui.inputBox.select(this._valueSelection && { start: this._valueSelection[0], end: this._valueSelection[1] });\n\t\t}\n\t\tif (this.ui.inputBox.placeholder !== (this.placeholder || '')) {\n\t\t\tthis.ui.inputBox.placeholder = (this.placeholder || '');\n\t\t}\n\n\t\tlet ariaLabel = this.ariaLabel;\n\t\t// Only set aria label to the input box placeholder if we actually have an input box.\n\t\tif (!ariaLabel && visibilities.inputBox) {\n\t\t\tariaLabel = this.placeholder || QuickPick.DEFAULT_ARIA_LABEL;\n\t\t\t// If we have a title, include it in the aria label.\n\t\t\tif (this.title) {\n\t\t\t\tariaLabel += ` - ${this.title}`;\n\t\t\t}\n\t\t}\n\t\tif (this.ui.list.ariaLabel !== ariaLabel) {\n\t\t\tthis.ui.list.ariaLabel = ariaLabel ?? null;\n\t\t}\n\t\tif (this.ui.inputBox.ariaLabel !== ariaLabel) {\n\t\t\tthis.ui.inputBox.ariaLabel = ariaLabel ?? 'input';\n\t\t}\n\t\tthis.ui.list.matchOnDescription = this.matchOnDescription;\n\t\tthis.ui.list.matchOnDetail = this.matchOnDetail;\n\t\tthis.ui.list.matchOnLabel = this.matchOnLabel;\n\t\tthis.ui.list.matchOnLabelMode = this.matchOnLabelMode;\n\t\tthis.ui.list.sortByLabel = this.sortByLabel;\n\t\tif (this.itemsUpdated) {\n\t\t\tthis.itemsUpdated = false;\n\t\t\tthis._focusEventBufferer.bufferEvents(() => {\n\t\t\t\tthis.ui.list.setElements(this.items);\n\t\t\t\t// We want focus to exist in the list if there are items so that space can be used to toggle\n\t\t\t\tthis.ui.list.shouldLoop = !this.canSelectMany;\n\t\t\t\tthis.ui.list.filter(this.filterValue(this.ui.inputBox.value));\n\t\t\t\tswitch (this._itemActivation) {\n\t\t\t\t\tcase ItemActivation.NONE:\n\t\t\t\t\t\tthis._itemActivation = ItemActivation.FIRST; // only valid once, then unset\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase ItemActivation.SECOND:\n\t\t\t\t\t\tthis.ui.list.focus(QuickPickFocus.Second);\n\t\t\t\t\t\tthis._itemActivation = ItemActivation.FIRST; // only valid once, then unset\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase ItemActivation.LAST:\n\t\t\t\t\t\tthis.ui.list.focus(QuickPickFocus.Last);\n\t\t\t\t\t\tthis._itemActivation = ItemActivation.FIRST; // only valid once, then unset\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthis.trySelectFirst();\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tif (this.ui.container.classList.contains('show-checkboxes') !== !!this.canSelectMany) {\n\t\t\tif (this.canSelectMany) {\n\t\t\t\tthis.ui.list.clearFocus();\n\t\t\t} else {\n\t\t\t\tthis.trySelectFirst();\n\t\t\t}\n\t\t}\n\t\tif (this.activeItemsUpdated) {\n\t\t\tthis.activeItemsUpdated = false;\n\t\t\tthis.activeItemsToConfirm = this._activeItems;\n\t\t\tthis.ui.list.setFocusedElements(this.activeItems);\n\t\t\tif (this.activeItemsToConfirm === this._activeItems) {\n\t\t\t\tthis.activeItemsToConfirm = null;\n\t\t\t}\n\t\t}\n\t\tif (this.selectedItemsUpdated) {\n\t\t\tthis.selectedItemsUpdated = false;\n\t\t\tthis.selectedItemsToConfirm = this._selectedItems;\n\t\t\tif (this.canSelectMany) {\n\t\t\t\tthis.ui.list.setCheckedElements(this.selectedItems);\n\t\t\t} else {\n\t\t\t\tthis.ui.list.setSelectedElements(this.selectedItems);\n\t\t\t}\n\t\t\tif (this.selectedItemsToConfirm === this._selectedItems) {\n\t\t\t\tthis.selectedItemsToConfirm = null;\n\t\t\t}\n\t\t}\n\t\tthis.ui.ok.label = this.okLabel || '';\n\t\tthis.ui.customButton.label = this.customLabel || '';\n\t\tthis.ui.customButton.element.title = this.customHover || '';\n\t\tif (!visibilities.inputBox) {\n\t\t\t// we need to move focus into the tree to detect keybindings\n\t\t\t// properly when the input box is not visible (quick nav)\n\t\t\tthis.ui.list.domFocus();\n\n\t\t\t// Focus the first element in the list if multiselect is enabled\n\t\t\tif (this.canSelectMany) {\n\t\t\t\tthis.ui.list.focus(QuickPickFocus.First);\n\t\t\t}\n\t\t}\n\n\t\t// Set the scroll position to what it was before updating the items\n\t\tif (this.keepScrollPosition) {\n\t\t\tthis.scrollTop = scrollTopBefore;\n\t\t}\n\t}\n\n\tfocus(focus: QuickPickFocus): void {\n\t\tthis.ui.list.focus(focus);\n\t\t// To allow things like space to check/uncheck items\n\t\tif (this.canSelectMany) {\n\t\t\tthis.ui.list.domFocus();\n\t\t}\n\t}\n\n\taccept(inBackground?: boolean | undefined): void {\n\t\tif (inBackground && !this._canAcceptInBackground) {\n\t\t\treturn; // needs to be enabled\n\t\t}\n\n\t\tif (this.activeItems[0]) {\n\t\t\tthis._selectedItems = [this.activeItems[0]];\n\t\t\tthis.onDidChangeSelectionEmitter.fire(this.selectedItems);\n\t\t\tthis.handleAccept(inBackground ?? false);\n\t\t}\n\t}\n}\n\nexport class InputBox extends QuickInput implements IInputBox {\n\tprivate _value = '';\n\tprivate _valueSelection: Readonly<[number, number]> | undefined;\n\tprivate valueSelectionUpdated = true;\n\tprivate _placeholder: string | undefined;\n\tprivate _ariaLabel: string | undefined;\n\tprivate _password = false;\n\tprivate _prompt: string | undefined;\n\tprivate readonly onDidValueChangeEmitter = this._register(new Emitter<string>());\n\tprivate readonly onDidAcceptEmitter = this._register(new Emitter<void>());\n\n\treadonly type = QuickInputType.InputBox;\n\n\tget value() {\n\t\treturn this._value;\n\t}\n\n\tset value(value: string) {\n\t\tthis._value = value || '';\n\t\tthis.update();\n\t}\n\n\tget valueSelection() {\n\t\tconst selection = this.ui.inputBox.getSelection();\n\t\tif (!selection) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn [selection.start, selection.end];\n\t}\n\n\tset valueSelection(valueSelection: Readonly<[number, number]> | undefined) {\n\t\tthis._valueSelection = valueSelection;\n\t\tthis.valueSelectionUpdated = true;\n\t\tthis.update();\n\t}\n\n\tget placeholder() {\n\t\treturn this._placeholder;\n\t}\n\n\tset placeholder(placeholder: string | undefined) {\n\t\tthis._placeholder = placeholder;\n\t\tthis.update();\n\t}\n\n\tget ariaLabel() {\n\t\treturn this._ariaLabel;\n\t}\n\n\tset ariaLabel(ariaLabel: string | undefined) {\n\t\tthis._ariaLabel = ariaLabel;\n\t\tthis.update();\n\t}\n\n\tget password() {\n\t\treturn this._password;\n\t}\n\n\tset password(password: boolean) {\n\t\tthis._password = password;\n\t\tthis.update();\n\t}\n\n\tget prompt() {\n\t\treturn this._prompt;\n\t}\n\n\tset prompt(prompt: string | undefined) {\n\t\tthis._prompt = prompt;\n\t\tthis.noValidationMessage = prompt\n\t\t\t? localize('inputModeEntryDescription', \"{0} (Press 'Enter' to confirm or 'Escape' to cancel)\", prompt)\n\t\t\t: QuickInput.noPromptMessage;\n\t\tthis.update();\n\t}\n\n\treadonly onDidChangeValue = this.onDidValueChangeEmitter.event;\n\n\treadonly onDidAccept = this.onDidAcceptEmitter.event;\n\n\toverride show() {\n\t\tif (!this.visible) {\n\t\t\tthis.visibleDisposables.add(\n\t\t\t\tthis.ui.inputBox.onDidChange(value => {\n\t\t\t\t\tif (value === this.value) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tthis._value = value;\n\t\t\t\t\tthis.onDidValueChangeEmitter.fire(value);\n\t\t\t\t}));\n\t\t\tthis.visibleDisposables.add(this.ui.onDidAccept(() => this.onDidAcceptEmitter.fire()));\n\t\t\tthis.valueSelectionUpdated = true;\n\t\t}\n\t\tsuper.show();\n\t}\n\n\tprotected override update() {\n\t\tif (!this.visible) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.ui.container.classList.remove('hidden-input');\n\t\tconst visibilities: Visibilities = {\n\t\t\ttitle: !!this.title || !!this.step || !!this.titleButtons.length,\n\t\t\tdescription: !!this.description || !!this.step,\n\t\t\tinputBox: true,\n\t\t\tmessage: true,\n\t\t\tprogressBar: true\n\t\t};\n\n\t\tthis.ui.setVisibilities(visibilities);\n\t\tsuper.update();\n\t\tif (this.ui.inputBox.value !== this.value) {\n\t\t\tthis.ui.inputBox.value = this.value;\n\t\t}\n\t\tif (this.valueSelectionUpdated) {\n\t\t\tthis.valueSelectionUpdated = false;\n\t\t\tthis.ui.inputBox.select(this._valueSelection && { start: this._valueSelection[0], end: this._valueSelection[1] });\n\t\t}\n\t\tif (this.ui.inputBox.placeholder !== (this.placeholder || '')) {\n\t\t\tthis.ui.inputBox.placeholder = (this.placeholder || '');\n\t\t}\n\t\tif (this.ui.inputBox.password !== this.password) {\n\t\t\tthis.ui.inputBox.password = this.password;\n\t\t}\n\t\tlet ariaLabel = this.ariaLabel;\n\t\t// Only set aria label to the input box placeholder if we actually have an input box.\n\t\tif (!ariaLabel && visibilities.inputBox) {\n\t\t\tariaLabel = this.placeholder\n\t\t\t\t? this.title\n\t\t\t\t\t? `${this.placeholder} - ${this.title}`\n\t\t\t\t\t: this.placeholder\n\t\t\t\t: this.title\n\t\t\t\t\t? this.title\n\t\t\t\t\t: 'input';\n\t\t}\n\t\tif (this.ui.inputBox.ariaLabel !== ariaLabel) {\n\t\t\tthis.ui.inputBox.ariaLabel = ariaLabel || 'input';\n\t\t}\n\t}\n}\n\nexport class QuickInputHoverDelegate extends WorkbenchHoverDelegate {\n\n\tconstructor(\n\t\t@IConfigurationService configurationService: IConfigurationService,\n\t\t@IHoverService hoverService: IHoverService\n\t) {\n\t\tsuper('element', undefined, (options) => this.getOverrideOptions(options), configurationService, hoverService);\n\t}\n\n\tprivate getOverrideOptions(options: IHoverDelegateOptions): Partial<IHoverOptions> {\n\t\t// Only show the hover hint if the content is of a decent size\n\t\tconst showHoverHint = (\n\t\t\tdom.isHTMLElement(options.content)\n\t\t\t\t? options.content.textContent ?? ''\n\t\t\t\t: typeof options.content === 'string'\n\t\t\t\t\t? options.content\n\t\t\t\t\t: options.content.value\n\t\t).includes('\\n');\n\n\t\treturn {\n\t\t\tpersistence: {\n\t\t\t\thideOnKeyDown: false,\n\t\t\t},\n\t\t\tappearance: {\n\t\t\t\tshowHoverHint,\n\t\t\t\tskipFadeInAnimation: true,\n\t\t\t},\n\t\t};\n\t}\n}\n"]}
1
+ {"version":3,"sources":["vs/platform/quickinput/browser/quickInput.ts"],"names":[],"mappings":"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","file":"quickInput.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 * as dom from '../../../base/browser/dom.js';\nimport { StandardKeyboardEvent } from '../../../base/browser/keyboardEvent.js';\nimport { ActionBar } from '../../../base/browser/ui/actionbar/actionbar.js';\nimport { Button, IButtonStyles } from '../../../base/browser/ui/button/button.js';\nimport { CountBadge, ICountBadgeStyles } from '../../../base/browser/ui/countBadge/countBadge.js';\nimport { IHoverDelegate, IHoverDelegateOptions } from '../../../base/browser/ui/hover/hoverDelegate.js';\nimport { IInputBoxStyles } from '../../../base/browser/ui/inputbox/inputBox.js';\nimport { IKeybindingLabelStyles } from '../../../base/browser/ui/keybindingLabel/keybindingLabel.js';\nimport { IListStyles } from '../../../base/browser/ui/list/listWidget.js';\nimport { IProgressBarStyles, ProgressBar } from '../../../base/browser/ui/progressbar/progressbar.js';\nimport { IToggleStyles, Toggle, TriStateCheckbox } from '../../../base/browser/ui/toggle/toggle.js';\nimport { equals } from '../../../base/common/arrays.js';\nimport { TimeoutTimer } from '../../../base/common/async.js';\nimport { Codicon } from '../../../base/common/codicons.js';\nimport { Emitter, Event, EventBufferer } from '../../../base/common/event.js';\nimport { KeyCode } from '../../../base/common/keyCodes.js';\nimport { Disposable, DisposableStore } from '../../../base/common/lifecycle.js';\nimport { isIOS } from '../../../base/common/platform.js';\nimport Severity from '../../../base/common/severity.js';\nimport { ThemeIcon } from '../../../base/common/themables.js';\nimport './media/quickInput.css';\nimport { localize } from '../../../nls.js';\nimport { IInputBox, IKeyMods, IQuickInput, IQuickInputButton, IQuickInputHideEvent, IQuickInputToggle, IQuickNavigateConfiguration, IQuickPick, IQuickPickDidAcceptEvent, IQuickPickItem, IQuickPickItemButtonEvent, IQuickPickSeparator, IQuickPickSeparatorButtonEvent, IQuickPickWillAcceptEvent, ItemActivation, NO_KEY_MODS, QuickInputButtonLocation, QuickInputHideReason, QuickInputType, QuickPickFocus } from '../common/quickInput.js';\nimport { QuickInputBox } from './quickInputBox.js';\nimport { quickInputButtonToAction, renderQuickInputDescription } from './quickInputUtils.js';\nimport { IConfigurationService } from '../../configuration/common/configuration.js';\nimport { IHoverService, WorkbenchHoverDelegate } from '../../hover/browser/hover.js';\nimport { QuickInputList } from './quickInputList.js';\nimport { IHoverOptions } from '../../../base/browser/ui/hover/hover.js';\nimport { ContextKeyExpr, RawContextKey } from '../../contextkey/common/contextkey.js';\nimport { QuickInputTreeController } from './tree/quickInputTreeController.js';\nimport { observableValue } from '../../../base/common/observable.js';\n\nexport const inQuickInputContextKeyValue = 'inQuickInput';\nexport const InQuickInputContextKey = new RawContextKey<boolean>(inQuickInputContextKeyValue, false, localize('inQuickInput', \"Whether keyboard focus is inside the quick input control\"));\nexport const inQuickInputContext = ContextKeyExpr.has(inQuickInputContextKeyValue);\n\nexport const quickInputAlignmentContextKeyValue = 'quickInputAlignment';\nexport const QuickInputAlignmentContextKey = new RawContextKey<'top' | 'center' | undefined>(quickInputAlignmentContextKeyValue, 'top', localize('quickInputAlignment', \"The alignment of the quick input\"));\n\nexport const quickInputTypeContextKeyValue = 'quickInputType';\nexport const QuickInputTypeContextKey = new RawContextKey<QuickInputType>(quickInputTypeContextKeyValue, undefined, localize('quickInputType', \"The type of the currently visible quick input\"));\n\nexport const endOfQuickInputBoxContextKeyValue = 'cursorAtEndOfQuickInputBox';\nexport const EndOfQuickInputBoxContextKey = new RawContextKey<boolean>(endOfQuickInputBoxContextKeyValue, false, localize('cursorAtEndOfQuickInputBox', \"Whether the cursor in the quick input is at the end of the input box\"));\nexport const endOfQuickInputBoxContext = ContextKeyExpr.has(endOfQuickInputBoxContextKeyValue);\n\nexport interface IQuickInputOptions {\n\tidPrefix: string;\n\tcontainer: HTMLElement;\n\tignoreFocusOut(): boolean;\n\tbackKeybindingLabel(): string | undefined;\n\tsetContextKey(id?: string): void;\n\tlinkOpenerDelegate(content: string): void;\n\treturnFocus(): void;\n\t/**\n\t * @todo With IHover in vs/editor, can we depend on the service directly\n\t * instead of passing it through a hover delegate?\n\t */\n\thoverDelegate: IHoverDelegate;\n\tstyles: IQuickInputStyles;\n}\n\nexport interface IQuickInputStyles {\n\treadonly widget: IQuickInputWidgetStyles;\n\treadonly inputBox: IInputBoxStyles;\n\treadonly toggle: IToggleStyles;\n\treadonly countBadge: ICountBadgeStyles;\n\treadonly button: IButtonStyles;\n\treadonly progressBar: IProgressBarStyles;\n\treadonly keybindingLabel: IKeybindingLabelStyles;\n\treadonly list: IListStyles;\n\treadonly pickerGroup: { pickerGroupBorder: string | undefined; pickerGroupForeground: string | undefined };\n}\n\nexport interface IQuickInputWidgetStyles {\n\treadonly quickInputBackground: string | undefined;\n\treadonly quickInputForeground: string | undefined;\n\treadonly quickInputTitleBackground: string | undefined;\n\treadonly widgetBorder: string | undefined;\n\treadonly widgetShadow: string | undefined;\n}\n\nexport type Writeable<T> = { -readonly [P in keyof T]: T[P] };\n\nexport const backButton = {\n\ticonClass: ThemeIcon.asClassName(Codicon.quickInputBack),\n\ttooltip: localize('quickInput.back', \"Back\"),\n\thandle: -1 // TODO\n};\n\nexport interface QuickInputUI {\n\tcontainer: HTMLElement;\n\tstyleSheet: HTMLStyleElement;\n\tleftActionBar: ActionBar;\n\ttitleBar: HTMLElement;\n\ttitle: HTMLElement;\n\tdescription1: HTMLElement;\n\tdescription2: HTMLElement;\n\twidget: HTMLElement;\n\trightActionBar: ActionBar;\n\tinlineActionBar: ActionBar;\n\tcheckAll: TriStateCheckbox;\n\tinputContainer: HTMLElement;\n\tfilterContainer: HTMLElement;\n\tinputBox: QuickInputBox;\n\tvisibleCountContainer: HTMLElement;\n\tvisibleCount: CountBadge;\n\tcountContainer: HTMLElement;\n\tcount: CountBadge;\n\tokContainer: HTMLElement;\n\tok: Button;\n\tmessage: HTMLElement;\n\tcustomButtonContainer: HTMLElement;\n\tcustomButton: Button;\n\tprogressBar: ProgressBar;\n\tlist: QuickInputList;\n\ttree: QuickInputTreeController;\n\tonDidAccept: Event<void>;\n\tonDidCustom: Event<void>;\n\tonDidTriggerButton: Event<IQuickInputButton>;\n\tignoreFocusOut: boolean;\n\tkeyMods: Writeable<IKeyMods>;\n\tshow(controller: QuickInput): void;\n\tsetVisibilities(visibilities: Visibilities): void;\n\tsetEnabled(enabled: boolean): void;\n\tsetContextKey(contextKey?: string): void;\n\tlinkOpenerDelegate(content: string): void;\n\thide(): void;\n}\n\nexport type Visibilities = {\n\ttitle?: boolean;\n\tdescription?: boolean;\n\tcheckAll?: boolean;\n\tinputBox?: boolean;\n\tcheckBox?: boolean;\n\tvisibleCount?: boolean;\n\tcount?: boolean;\n\tmessage?: boolean;\n\tlist?: boolean;\n\ttree?: boolean;\n\tok?: boolean;\n\tcustomButton?: boolean;\n\tprogressBar?: boolean;\n};\n\nexport abstract class QuickInput extends Disposable implements IQuickInput {\n\tprotected static readonly noPromptMessage = localize('inputModeEntry', \"Press 'Enter' to confirm your input or 'Escape' to cancel\");\n\n\tprotected _visible = observableValue('visible', false);\n\tprivate _title: string | undefined;\n\tprivate _description: string | undefined;\n\tprivate _widget: HTMLElement | undefined;\n\tprivate _widgetUpdated = false;\n\tprivate _steps: number | undefined;\n\tprivate _totalSteps: number | undefined;\n\tprivate _enabled = true;\n\tprivate _contextKey: string | undefined;\n\tprivate _busy = false;\n\tprivate _ignoreFocusOut = false;\n\tprivate _leftButtons: IQuickInputButton[] = [];\n\tprivate _rightButtons: IQuickInputButton[] = [];\n\tprivate _inlineButtons: IQuickInputButton[] = [];\n\tprivate buttonsUpdated = false;\n\tprivate _toggles: IQuickInputToggle[] = [];\n\tprivate togglesUpdated = false;\n\tprotected noValidationMessage = QuickInput.noPromptMessage;\n\tprivate _validationMessage: string | undefined;\n\tprivate _lastValidationMessage: string | undefined;\n\tprivate _severity: Severity = Severity.Ignore;\n\tprivate _lastSeverity: Severity | undefined;\n\tprivate readonly onDidTriggerButtonEmitter = this._register(new Emitter<IQuickInputButton>());\n\tprivate readonly onDidHideEmitter = this._register(new Emitter<IQuickInputHideEvent>());\n\tprivate readonly onWillHideEmitter = this._register(new Emitter<IQuickInputHideEvent>());\n\tprivate readonly onDisposeEmitter = this._register(new Emitter<void>());\n\n\tprotected readonly visibleDisposables = this._register(new DisposableStore());\n\n\tprivate busyDelay: TimeoutTimer | undefined;\n\n\tabstract type: QuickInputType;\n\n\tconstructor(\n\t\tprotected ui: QuickInputUI\n\t) {\n\t\tsuper();\n\t}\n\n\tprotected get visible(): boolean {\n\t\treturn this._visible.get();\n\t}\n\n\tget title() {\n\t\treturn this._title;\n\t}\n\n\tset title(title: string | undefined) {\n\t\tthis._title = title;\n\t\tthis.update();\n\t}\n\n\tget description() {\n\t\treturn this._description;\n\t}\n\n\tset description(description: string | undefined) {\n\t\tthis._description = description;\n\t\tthis.update();\n\t}\n\n\tget step() {\n\t\treturn this._steps;\n\t}\n\n\tset step(step: number | undefined) {\n\t\tthis._steps = step;\n\t\tthis.update();\n\t}\n\n\tget totalSteps() {\n\t\treturn this._totalSteps;\n\t}\n\n\tset totalSteps(totalSteps: number | undefined) {\n\t\tthis._totalSteps = totalSteps;\n\t\tthis.update();\n\t}\n\n\tget enabled() {\n\t\treturn this._enabled;\n\t}\n\n\tset enabled(enabled: boolean) {\n\t\tthis._enabled = enabled;\n\t\tthis.update();\n\t}\n\n\tget contextKey() {\n\t\treturn this._contextKey;\n\t}\n\n\tset contextKey(contextKey: string | undefined) {\n\t\tthis._contextKey = contextKey;\n\t\tthis.update();\n\t}\n\n\tget busy() {\n\t\treturn this._busy;\n\t}\n\n\tset busy(busy: boolean) {\n\t\tthis._busy = busy;\n\t\tthis.update();\n\t}\n\n\tget ignoreFocusOut() {\n\t\treturn this._ignoreFocusOut;\n\t}\n\n\tset ignoreFocusOut(ignoreFocusOut: boolean) {\n\t\tconst shouldUpdate = this._ignoreFocusOut !== ignoreFocusOut && !isIOS;\n\t\tthis._ignoreFocusOut = ignoreFocusOut && !isIOS;\n\t\tif (shouldUpdate) {\n\t\t\tthis.update();\n\t\t}\n\t}\n\n\tprotected get titleButtons() {\n\t\treturn this._leftButtons.length\n\t\t\t? [...this._leftButtons, this._rightButtons]\n\t\t\t: this._rightButtons;\n\t}\n\n\tget buttons() {\n\t\treturn [\n\t\t\t...this._leftButtons,\n\t\t\t...this._rightButtons,\n\t\t\t...this._inlineButtons\n\t\t];\n\t}\n\n\tset buttons(buttons: IQuickInputButton[]) {\n\t\tthis._leftButtons = buttons.filter(b => b === backButton);\n\t\tthis._rightButtons = buttons.filter(b => b !== backButton && b.location !== QuickInputButtonLocation.Inline);\n\t\tthis._inlineButtons = buttons.filter(b => b.location === QuickInputButtonLocation.Inline);\n\t\tthis.buttonsUpdated = true;\n\t\tthis.update();\n\t}\n\n\tget toggles() {\n\t\treturn this._toggles;\n\t}\n\n\tset toggles(toggles: IQuickInputToggle[]) {\n\t\tthis._toggles = toggles ?? [];\n\t\tthis.togglesUpdated = true;\n\t\tthis.update();\n\t}\n\n\tget validationMessage() {\n\t\treturn this._validationMessage;\n\t}\n\n\tset validationMessage(validationMessage: string | undefined) {\n\t\tthis._validationMessage = validationMessage;\n\t\tthis.update();\n\t}\n\n\tget severity() {\n\t\treturn this._severity;\n\t}\n\n\tset severity(severity: Severity) {\n\t\tthis._severity = severity;\n\t\tthis.update();\n\t}\n\n\tshow(): void {\n\t\tif (this.visible) {\n\t\t\treturn;\n\t\t}\n\t\tthis.visibleDisposables.add(\n\t\t\tthis.ui.onDidTriggerButton(button => {\n\t\t\t\tif (this.buttons.indexOf(button) !== -1) {\n\t\t\t\t\tthis.onDidTriggerButtonEmitter.fire(button);\n\t\t\t\t}\n\t\t\t}),\n\t\t);\n\t\tthis.ui.show(this);\n\n\t\t// update properties in the controller that get reset in the ui.show() call\n\t\tthis._visible.set(true, undefined);\n\t\t// This ensures the message/prompt gets rendered\n\t\tthis._lastValidationMessage = undefined;\n\t\t// This ensures the input box has the right severity applied\n\t\tthis._lastSeverity = undefined;\n\t\tif (this.buttons.length) {\n\t\t\t// if there are buttons, the ui.show() clears them out of the UI so we should\n\t\t\t// rerender them.\n\t\t\tthis.buttonsUpdated = true;\n\t\t}\n\t\tif (this.toggles.length) {\n\t\t\t// if there are toggles, the ui.show() clears them out of the UI so we should\n\t\t\t// rerender them.\n\t\t\tthis.togglesUpdated = true;\n\t\t}\n\n\t\tthis.update();\n\t}\n\n\thide(): void {\n\t\tif (!this.visible) {\n\t\t\treturn;\n\t\t}\n\t\tthis.ui.hide();\n\t}\n\n\tdidHide(reason = QuickInputHideReason.Other): void {\n\t\tthis._visible.set(false, undefined);\n\t\tthis.visibleDisposables.clear();\n\t\tthis.onDidHideEmitter.fire({ reason });\n\t}\n\n\treadonly onDidHide = this.onDidHideEmitter.event;\n\n\twillHide(reason = QuickInputHideReason.Other): void {\n\t\tthis.onWillHideEmitter.fire({ reason });\n\t}\n\n\tprotected update() {\n\t\tif (!this.visible) {\n\t\t\treturn;\n\t\t}\n\t\tconst title = this.getTitle();\n\t\tif (title && this.ui.title.textContent !== title) {\n\t\t\tthis.ui.title.textContent = title;\n\t\t} else if (!title && this.ui.title.innerHTML !== '&nbsp;') {\n\t\t\tthis.ui.title.innerText = '\\u00a0';\n\t\t}\n\t\tconst description = this.getDescription();\n\t\tif (this.ui.description1.textContent !== description) {\n\t\t\tthis.ui.description1.textContent = description;\n\t\t}\n\t\tif (this.ui.description2.textContent !== description) {\n\t\t\tthis.ui.description2.textContent = description;\n\t\t}\n\t\tif (this._widgetUpdated) {\n\t\t\tthis._widgetUpdated = false;\n\t\t\tif (this._widget) {\n\t\t\t\tdom.reset(this.ui.widget, this._widget);\n\t\t\t} else {\n\t\t\t\tdom.reset(this.ui.widget);\n\t\t\t}\n\t\t}\n\t\tif (this.busy && !this.busyDelay) {\n\t\t\tthis.busyDelay = new TimeoutTimer();\n\t\t\tthis.busyDelay.setIfNotSet(() => {\n\t\t\t\tif (this.visible) {\n\t\t\t\t\tthis.ui.progressBar.infinite();\n\t\t\t\t}\n\t\t\t}, 800);\n\t\t}\n\t\tif (!this.busy && this.busyDelay) {\n\t\t\tthis.ui.progressBar.stop();\n\t\t\tthis.busyDelay.cancel();\n\t\t\tthis.busyDelay = undefined;\n\t\t}\n\t\tif (this.buttonsUpdated) {\n\t\t\tthis.buttonsUpdated = false;\n\t\t\tthis.ui.leftActionBar.clear();\n\t\t\tconst leftButtons = this._leftButtons\n\t\t\t\t.map((button, index) => quickInputButtonToAction(\n\t\t\t\t\tbutton,\n\t\t\t\t\t`id-${index}`,\n\t\t\t\t\tasync () => this.onDidTriggerButtonEmitter.fire(button)\n\t\t\t\t));\n\t\t\tthis.ui.leftActionBar.push(leftButtons, { icon: true, label: false });\n\t\t\tthis.ui.rightActionBar.clear();\n\t\t\tconst rightButtons = this._rightButtons\n\t\t\t\t.map((button, index) => quickInputButtonToAction(\n\t\t\t\t\tbutton,\n\t\t\t\t\t`id-${index}`,\n\t\t\t\t\tasync () => this.onDidTriggerButtonEmitter.fire(button)\n\t\t\t\t));\n\t\t\tthis.ui.rightActionBar.push(rightButtons, { icon: true, label: false });\n\t\t\tthis.ui.inlineActionBar.clear();\n\t\t\tconst inlineButtons = this._inlineButtons\n\t\t\t\t.map((button, index) => quickInputButtonToAction(\n\t\t\t\t\tbutton,\n\t\t\t\t\t`id-${index}`,\n\t\t\t\t\tasync () => this.onDidTriggerButtonEmitter.fire(button)\n\t\t\t\t));\n\t\t\tthis.ui.inlineActionBar.push(inlineButtons, { icon: true, label: false });\n\t\t}\n\t\tif (this.togglesUpdated) {\n\t\t\tthis.togglesUpdated = false;\n\t\t\t// HACK: Filter out toggles here that are not concrete Toggle objects. This is to workaround\n\t\t\t// a layering issue as quick input's interface is in common but Toggle is in browser and\n\t\t\t// it requires a HTMLElement on its interface\n\t\t\tconst concreteToggles = this.toggles?.filter(opts => opts instanceof Toggle) as Toggle[] ?? [];\n\t\t\tthis.ui.inputBox.toggles = concreteToggles;\n\t\t}\n\t\tthis.ui.ignoreFocusOut = this.ignoreFocusOut;\n\t\tthis.ui.setEnabled(this.enabled);\n\t\tthis.ui.setContextKey(this.contextKey);\n\n\t\tconst validationMessage = this.validationMessage || this.noValidationMessage;\n\t\tif (this._lastValidationMessage !== validationMessage) {\n\t\t\tthis._lastValidationMessage = validationMessage;\n\t\t\tdom.reset(this.ui.message);\n\t\t\trenderQuickInputDescription(validationMessage, this.ui.message, {\n\t\t\t\tcallback: (content) => {\n\t\t\t\t\tthis.ui.linkOpenerDelegate(content);\n\t\t\t\t},\n\t\t\t\tdisposables: this.visibleDisposables,\n\t\t\t});\n\t\t}\n\t\tif (this._lastSeverity !== this.severity) {\n\t\t\tthis._lastSeverity = this.severity;\n\t\t\tthis.showMessageDecoration(this.severity);\n\t\t}\n\t}\n\n\tprivate getTitle() {\n\t\tif (this.title && this.step) {\n\t\t\treturn `${this.title} (${this.getSteps()})`;\n\t\t}\n\t\tif (this.title) {\n\t\t\treturn this.title;\n\t\t}\n\t\tif (this.step) {\n\t\t\treturn this.getSteps();\n\t\t}\n\t\treturn '';\n\t}\n\n\tprivate getDescription() {\n\t\treturn this.description || '';\n\t}\n\n\tprivate getSteps() {\n\t\tif (this.step && this.totalSteps) {\n\t\t\treturn localize('quickInput.steps', \"{0}/{1}\", this.step, this.totalSteps);\n\t\t}\n\t\tif (this.step) {\n\t\t\treturn String(this.step);\n\t\t}\n\t\treturn '';\n\t}\n\n\tprotected showMessageDecoration(severity: Severity) {\n\t\tthis.ui.inputBox.showDecoration(severity);\n\t\tif (severity !== Severity.Ignore) {\n\t\t\tconst styles = this.ui.inputBox.stylesForType(severity);\n\t\t\tthis.ui.message.style.color = styles.foreground ? `${styles.foreground}` : '';\n\t\t\tthis.ui.message.style.backgroundColor = styles.background ? `${styles.background}` : '';\n\t\t\tthis.ui.message.style.border = styles.border ? `1px solid ${styles.border}` : '';\n\t\t\tthis.ui.message.style.marginBottom = '-2px';\n\t\t} else {\n\t\t\tthis.ui.message.style.color = '';\n\t\t\tthis.ui.message.style.backgroundColor = '';\n\t\t\tthis.ui.message.style.border = '';\n\t\t\tthis.ui.message.style.marginBottom = '';\n\t\t}\n\t}\n\n\toverride dispose(): void {\n\t\tthis.hide();\n\t\tthis.onDisposeEmitter.fire();\n\n\t\tsuper.dispose();\n\t}\n}\n\nexport class QuickPick<T extends IQuickPickItem, O extends { useSeparators: boolean } = { useSeparators: false }> extends QuickInput implements IQuickPick<T, O> {\n\n\tprivate static readonly DEFAULT_ARIA_LABEL = localize('quickInputBox.ariaLabel', \"Type to narrow down results.\");\n\n\tprivate _value = '';\n\tprivate _ariaLabel: string | undefined;\n\tprivate _placeholder: string | undefined;\n\tprivate readonly onDidChangeValueEmitter = this._register(new Emitter<string>());\n\tprivate readonly onWillAcceptEmitter = this._register(new Emitter<IQuickPickWillAcceptEvent>());\n\tprivate readonly onDidAcceptEmitter = this._register(new Emitter<IQuickPickDidAcceptEvent>());\n\tprivate readonly onDidCustomEmitter = this._register(new Emitter<void>());\n\tprivate _items: O extends { useSeparators: true } ? Array<T | IQuickPickSeparator> : Array<T> = [];\n\tprivate itemsUpdated = false;\n\tprivate _canSelectMany = false;\n\tprivate _canAcceptInBackground = false;\n\tprivate _matchOnDescription = false;\n\tprivate _matchOnDetail = false;\n\tprivate _matchOnLabel = true;\n\tprivate _matchOnLabelMode: 'fuzzy' | 'contiguous' = 'fuzzy';\n\tprivate _sortByLabel = true;\n\tprivate _keepScrollPosition = false;\n\tprivate _itemActivation = ItemActivation.FIRST;\n\tprivate _activeItems: T[] = [];\n\tprivate activeItemsUpdated = false;\n\tprivate activeItemsToConfirm: T[] | null = [];\n\tprivate readonly onDidChangeActiveEmitter = this._register(new Emitter<T[]>());\n\tprivate _selectedItems: T[] = [];\n\tprivate selectedItemsUpdated = false;\n\tprivate selectedItemsToConfirm: T[] | null = [];\n\tprivate readonly onDidChangeSelectionEmitter = this._register(new Emitter<T[]>());\n\tprivate readonly onDidTriggerItemButtonEmitter = this._register(new Emitter<IQuickPickItemButtonEvent<T>>());\n\tprivate readonly onDidTriggerSeparatorButtonEmitter = this._register(new Emitter<IQuickPickSeparatorButtonEvent>());\n\tprivate _valueSelection: Readonly<[number, number]> | undefined;\n\tprivate valueSelectionUpdated = true;\n\tprivate _ok: boolean | 'default' = 'default';\n\tprivate _okLabel: string | undefined;\n\tprivate _customButton = false;\n\tprivate _customButtonLabel: string | undefined;\n\tprivate _customButtonHover: string | undefined;\n\tprivate _quickNavigate: IQuickNavigateConfiguration | undefined;\n\tprivate _hideInput: boolean | undefined;\n\tprivate _hideCountBadge: boolean | undefined;\n\tprivate _hideCheckAll: boolean | undefined;\n\tprivate _focusEventBufferer = new EventBufferer();\n\n\treadonly type = QuickInputType.QuickPick;\n\n\tget quickNavigate() {\n\t\treturn this._quickNavigate;\n\t}\n\n\tset quickNavigate(quickNavigate: IQuickNavigateConfiguration | undefined) {\n\t\tthis._quickNavigate = quickNavigate;\n\t\tthis.update();\n\t}\n\n\tget value() {\n\t\treturn this._value;\n\t}\n\n\tset value(value: string) {\n\t\tthis.doSetValue(value);\n\t}\n\n\tprivate doSetValue(value: string, skipUpdate?: boolean): void {\n\t\tif (this._value !== value) {\n\t\t\tthis._value = value;\n\t\t\tif (!skipUpdate) {\n\t\t\t\tthis.update();\n\t\t\t}\n\t\t\tif (this.visible) {\n\t\t\t\tconst didFilter = this.ui.list.filter(this.filterValue(this._value));\n\t\t\t\tif (didFilter) {\n\t\t\t\t\tthis.trySelectFirst();\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.onDidChangeValueEmitter.fire(this._value);\n\t\t}\n\t}\n\n\tfilterValue = (value: string) => value;\n\n\tset ariaLabel(ariaLabel: string | undefined) {\n\t\tthis._ariaLabel = ariaLabel;\n\t\tthis.update();\n\t}\n\n\tget ariaLabel() {\n\t\treturn this._ariaLabel;\n\t}\n\n\tget placeholder() {\n\t\treturn this._placeholder;\n\t}\n\n\tset placeholder(placeholder: string | undefined) {\n\t\tthis._placeholder = placeholder;\n\t\tthis.update();\n\t}\n\n\tonDidChangeValue = this.onDidChangeValueEmitter.event;\n\n\tonWillAccept = this.onWillAcceptEmitter.event;\n\tonDidAccept = this.onDidAcceptEmitter.event;\n\n\tget items() {\n\t\treturn this._items;\n\t}\n\n\tget scrollTop() {\n\t\treturn this.ui.list.scrollTop;\n\t}\n\n\tprivate set scrollTop(scrollTop: number) {\n\t\tthis.ui.list.scrollTop = scrollTop;\n\t}\n\n\tset items(items: O extends { useSeparators: true } ? Array<T | IQuickPickSeparator> : Array<T>) {\n\t\tthis._items = items;\n\t\tthis.itemsUpdated = true;\n\t\tthis.update();\n\t}\n\n\tget canSelectMany() {\n\t\treturn this._canSelectMany;\n\t}\n\n\tset canSelectMany(canSelectMany: boolean) {\n\t\tthis._canSelectMany = canSelectMany;\n\t\tthis.update();\n\t}\n\n\tget canAcceptInBackground() {\n\t\treturn this._canAcceptInBackground;\n\t}\n\n\tset canAcceptInBackground(canAcceptInBackground: boolean) {\n\t\tthis._canAcceptInBackground = canAcceptInBackground;\n\t}\n\n\tget matchOnDescription() {\n\t\treturn this._matchOnDescription;\n\t}\n\n\tset matchOnDescription(matchOnDescription: boolean) {\n\t\tthis._matchOnDescription = matchOnDescription;\n\t\tthis.update();\n\t}\n\n\tget matchOnDetail() {\n\t\treturn this._matchOnDetail;\n\t}\n\n\tset matchOnDetail(matchOnDetail: boolean) {\n\t\tthis._matchOnDetail = matchOnDetail;\n\t\tthis.update();\n\t}\n\n\tget matchOnLabel() {\n\t\treturn this._matchOnLabel;\n\t}\n\n\tset matchOnLabel(matchOnLabel: boolean) {\n\t\tthis._matchOnLabel = matchOnLabel;\n\t\tthis.update();\n\t}\n\n\tget matchOnLabelMode() {\n\t\treturn this._matchOnLabelMode;\n\t}\n\n\tset matchOnLabelMode(matchOnLabelMode: 'fuzzy' | 'contiguous') {\n\t\tthis._matchOnLabelMode = matchOnLabelMode;\n\t\tthis.update();\n\t}\n\n\tget sortByLabel() {\n\t\treturn this._sortByLabel;\n\t}\n\n\tset sortByLabel(sortByLabel: boolean) {\n\t\tthis._sortByLabel = sortByLabel;\n\t\tthis.update();\n\t}\n\n\tget keepScrollPosition() {\n\t\treturn this._keepScrollPosition;\n\t}\n\n\tset keepScrollPosition(keepScrollPosition: boolean) {\n\t\tthis._keepScrollPosition = keepScrollPosition;\n\t}\n\n\tget itemActivation() {\n\t\treturn this._itemActivation;\n\t}\n\n\tset itemActivation(itemActivation: ItemActivation) {\n\t\tthis._itemActivation = itemActivation;\n\t}\n\n\tget activeItems() {\n\t\treturn this._activeItems;\n\t}\n\n\tset activeItems(activeItems: T[]) {\n\t\tthis._activeItems = activeItems;\n\t\tthis.activeItemsUpdated = true;\n\t\tthis.update();\n\t}\n\n\tonDidChangeActive = this.onDidChangeActiveEmitter.event;\n\n\tget selectedItems() {\n\t\treturn this._selectedItems;\n\t}\n\n\tset selectedItems(selectedItems: T[]) {\n\t\tthis._selectedItems = selectedItems;\n\t\tthis.selectedItemsUpdated = true;\n\t\tthis.update();\n\t}\n\n\tget keyMods() {\n\t\tif (this._quickNavigate) {\n\t\t\t// Disable keyMods when quick navigate is enabled\n\t\t\t// because in this model the interaction is purely\n\t\t\t// keyboard driven and Ctrl/Alt are typically\n\t\t\t// pressed and hold during this interaction.\n\t\t\treturn NO_KEY_MODS;\n\t\t}\n\t\treturn this.ui.keyMods;\n\t}\n\n\tget valueSelection() {\n\t\tconst selection = this.ui.inputBox.getSelection();\n\t\tif (!selection) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn [selection.start, selection.end];\n\t}\n\n\tset valueSelection(valueSelection: Readonly<[number, number]> | undefined) {\n\t\tthis._valueSelection = valueSelection;\n\t\tthis.valueSelectionUpdated = true;\n\t\tthis.update();\n\t}\n\n\tget customButton() {\n\t\treturn this._customButton;\n\t}\n\n\tset customButton(showCustomButton: boolean) {\n\t\tthis._customButton = showCustomButton;\n\t\tthis.update();\n\t}\n\n\tget customLabel() {\n\t\treturn this._customButtonLabel;\n\t}\n\n\tset customLabel(label: string | undefined) {\n\t\tthis._customButtonLabel = label;\n\t\tthis.update();\n\t}\n\n\tget customHover() {\n\t\treturn this._customButtonHover;\n\t}\n\n\tset customHover(hover: string | undefined) {\n\t\tthis._customButtonHover = hover;\n\t\tthis.update();\n\t}\n\n\tget ok() {\n\t\treturn this._ok;\n\t}\n\n\tset ok(showOkButton: boolean | 'default') {\n\t\tthis._ok = showOkButton;\n\t\tthis.update();\n\t}\n\n\tget okLabel() {\n\t\treturn this._okLabel ?? localize('ok', \"OK\");\n\t}\n\n\tset okLabel(okLabel: string | undefined) {\n\t\tthis._okLabel = okLabel;\n\t\tthis.update();\n\t}\n\n\tget hideInput() {\n\t\treturn !!this._hideInput;\n\t}\n\n\tset hideInput(hideInput: boolean) {\n\t\tthis._hideInput = hideInput;\n\t\tthis.update();\n\t}\n\n\tonDidChangeSelection = this.onDidChangeSelectionEmitter.event;\n\n\tonDidTriggerItemButton = this.onDidTriggerItemButtonEmitter.event;\n\n\tonDidTriggerSeparatorButton = this.onDidTriggerSeparatorButtonEmitter.event;\n\n\tprivate trySelectFirst() {\n\t\tif (!this.canSelectMany) {\n\t\t\tthis.ui.list.focus(QuickPickFocus.First);\n\t\t}\n\t}\n\n\toverride show() {\n\t\tif (!this.visible) {\n\t\t\tthis.visibleDisposables.add(\n\t\t\t\tthis.ui.inputBox.onDidChange(value => {\n\t\t\t\t\tthis.doSetValue(value, true /* skip update since this originates from the UI */);\n\t\t\t\t}));\n\t\t\tthis.visibleDisposables.add(this.ui.onDidAccept(() => {\n\t\t\t\tif (this.canSelectMany) {\n\t\t\t\t\t// if there are no checked elements, it means that an onDidChangeSelection never fired to overwrite\n\t\t\t\t\t// `_selectedItems`. In that case, we should emit one with an empty array to ensure that\n\t\t\t\t\t// `.selectedItems` is up to date.\n\t\t\t\t\tif (!this.ui.list.getCheckedElements().length) {\n\t\t\t\t\t\tthis._selectedItems = [];\n\t\t\t\t\t\tthis.onDidChangeSelectionEmitter.fire(this.selectedItems);\n\t\t\t\t\t}\n\t\t\t\t} else if (this.activeItems[0]) {\n\t\t\t\t\t// For single-select, we set `selectedItems` to the item that was accepted.\n\t\t\t\t\tthis._selectedItems = [this.activeItems[0]];\n\t\t\t\t\tthis.onDidChangeSelectionEmitter.fire(this.selectedItems);\n\t\t\t\t}\n\t\t\t\tthis.handleAccept(false);\n\t\t\t}));\n\t\t\tthis.visibleDisposables.add(this.ui.onDidCustom(() => {\n\t\t\t\tthis.onDidCustomEmitter.fire();\n\t\t\t}));\n\t\t\tthis.visibleDisposables.add(this._focusEventBufferer.wrapEvent(\n\t\t\t\tthis.ui.list.onDidChangeFocus,\n\t\t\t\t// Only fire the last event\n\t\t\t\t(_, e) => e\n\t\t\t)(focusedItems => {\n\t\t\t\tif (this.activeItemsUpdated) {\n\t\t\t\t\treturn; // Expect another event.\n\t\t\t\t}\n\t\t\t\tif (this.activeItemsToConfirm !== this._activeItems && equals(focusedItems, this._activeItems, (a, b) => a === b)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis._activeItems = focusedItems as T[];\n\t\t\t\tthis.onDidChangeActiveEmitter.fire(focusedItems as T[]);\n\t\t\t}));\n\t\t\tthis.visibleDisposables.add(this.ui.list.onDidChangeSelection(({ items: selectedItems, event }) => {\n\t\t\t\tif (this.canSelectMany && !selectedItems.some(i => i.pickable === false)) {\n\t\t\t\t\tif (selectedItems.length) {\n\t\t\t\t\t\tthis.ui.list.setSelectedElements([]);\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (this.selectedItemsToConfirm !== this._selectedItems && equals(selectedItems, this._selectedItems, (a, b) => a === b)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis._selectedItems = selectedItems as T[];\n\t\t\t\tthis.onDidChangeSelectionEmitter.fire(selectedItems as T[]);\n\t\t\t\tif (selectedItems.length) {\n\t\t\t\t\tthis.handleAccept(dom.isMouseEvent(event) && event.button === 1 /* mouse middle click */);\n\t\t\t\t}\n\t\t\t}));\n\t\t\tthis.visibleDisposables.add(this.ui.list.onChangedCheckedElements(checkedItems => {\n\t\t\t\tif (!this.canSelectMany || !this.visible) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (this.selectedItemsToConfirm !== this._selectedItems && equals(checkedItems, this._selectedItems, (a, b) => a === b)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis._selectedItems = checkedItems as T[];\n\t\t\t\tthis.onDidChangeSelectionEmitter.fire(checkedItems as T[]);\n\t\t\t}));\n\t\t\tthis.visibleDisposables.add(this.ui.list.onButtonTriggered(event => this.onDidTriggerItemButtonEmitter.fire(event as IQuickPickItemButtonEvent<T>)));\n\t\t\tthis.visibleDisposables.add(this.ui.list.onSeparatorButtonTriggered(event => this.onDidTriggerSeparatorButtonEmitter.fire(event)));\n\t\t\tthis.visibleDisposables.add(this.registerQuickNavigation());\n\t\t\tthis.valueSelectionUpdated = true;\n\t\t}\n\t\tsuper.show(); // TODO: Why have show() bubble up while update() trickles down?\n\t}\n\n\tprivate handleAccept(inBackground: boolean): void {\n\n\t\t// Figure out veto via `onWillAccept` event\n\t\tlet veto = false;\n\t\tthis.onWillAcceptEmitter.fire({ veto: () => veto = true });\n\n\t\t// Continue with `onDidAccept` if no veto\n\t\tif (!veto) {\n\t\t\tthis.onDidAcceptEmitter.fire({ inBackground });\n\t\t}\n\t}\n\n\tprivate registerQuickNavigation() {\n\t\treturn dom.addDisposableListener(this.ui.container, dom.EventType.KEY_UP, e => {\n\t\t\tif (this.canSelectMany || !this._quickNavigate) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst keyboardEvent: StandardKeyboardEvent = new StandardKeyboardEvent(e);\n\t\t\tconst keyCode = keyboardEvent.keyCode;\n\n\t\t\t// Select element when keys are pressed that signal it\n\t\t\tconst quickNavKeys = this._quickNavigate.keybindings;\n\t\t\tconst wasTriggerKeyPressed = quickNavKeys.some(k => {\n\t\t\t\tconst chords = k.getChords();\n\t\t\t\tif (chords.length > 1) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tif (chords[0].shiftKey && keyCode === KeyCode.Shift) {\n\t\t\t\t\tif (keyboardEvent.ctrlKey || keyboardEvent.altKey || keyboardEvent.metaKey) {\n\t\t\t\t\t\treturn false; // this is an optimistic check for the shift key being used to navigate back in quick input\n\t\t\t\t\t}\n\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tif (chords[0].altKey && keyCode === KeyCode.Alt) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tif (chords[0].ctrlKey && keyCode === KeyCode.Ctrl) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tif (chords[0].metaKey && keyCode === KeyCode.Meta) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t});\n\n\t\t\tif (wasTriggerKeyPressed) {\n\t\t\t\tif (this.activeItems[0]) {\n\t\t\t\t\tthis._selectedItems = [this.activeItems[0]];\n\t\t\t\t\tthis.onDidChangeSelectionEmitter.fire(this.selectedItems);\n\t\t\t\t\tthis.handleAccept(false);\n\t\t\t\t}\n\t\t\t\t// Unset quick navigate after press. It is only valid once\n\t\t\t\t// and should not result in any behaviour change afterwards\n\t\t\t\t// if the picker remains open because there was no active item\n\t\t\t\tthis._quickNavigate = undefined;\n\t\t\t}\n\t\t});\n\t}\n\n\tprotected override update() {\n\t\tif (!this.visible) {\n\t\t\treturn;\n\t\t}\n\t\t// store the scrollTop before it is reset\n\t\tconst scrollTopBefore = this.keepScrollPosition ? this.scrollTop : 0;\n\t\tconst hasDescription = !!this.description;\n\t\tconst visibilities: Visibilities = {\n\t\t\ttitle: !!this.title || !!this.step || !!this.titleButtons.length,\n\t\t\tdescription: hasDescription,\n\t\t\tcheckAll: this.canSelectMany && !this._hideCheckAll,\n\t\t\tcheckBox: this.canSelectMany,\n\t\t\tinputBox: !this._hideInput,\n\t\t\tprogressBar: !this._hideInput || hasDescription,\n\t\t\tvisibleCount: true,\n\t\t\tcount: this.canSelectMany && !this._hideCountBadge,\n\t\t\tok: this.ok === 'default' ? this.canSelectMany : this.ok,\n\t\t\tlist: true,\n\t\t\tmessage: !!this.validationMessage,\n\t\t\tcustomButton: this.customButton\n\t\t};\n\t\tthis.ui.setVisibilities(visibilities);\n\t\tsuper.update();\n\t\tif (this.ui.inputBox.value !== this.value) {\n\t\t\tthis.ui.inputBox.value = this.value;\n\t\t}\n\t\tif (this.valueSelectionUpdated) {\n\t\t\tthis.valueSelectionUpdated = false;\n\t\t\tthis.ui.inputBox.select(this._valueSelection && { start: this._valueSelection[0], end: this._valueSelection[1] });\n\t\t}\n\t\tif (this.ui.inputBox.placeholder !== (this.placeholder || '')) {\n\t\t\tthis.ui.inputBox.placeholder = (this.placeholder || '');\n\t\t}\n\n\t\tlet ariaLabel = this.ariaLabel;\n\t\t// Only set aria label to the input box placeholder if we actually have an input box.\n\t\tif (!ariaLabel && visibilities.inputBox) {\n\t\t\tariaLabel = this.placeholder;\n\t\t\t// If we have a title, include it in the aria label.\n\t\t\tif (this.title) {\n\t\t\t\tariaLabel = ariaLabel\n\t\t\t\t\t? `${ariaLabel} - ${this.title}`\n\t\t\t\t\t: this.title;\n\t\t\t}\n\t\t\tif (!ariaLabel) {\n\t\t\t\tariaLabel = QuickPick.DEFAULT_ARIA_LABEL;\n\t\t\t}\n\t\t}\n\t\tif (this.ui.list.ariaLabel !== ariaLabel) {\n\t\t\tthis.ui.list.ariaLabel = ariaLabel ?? null;\n\t\t}\n\t\tif (this.ui.inputBox.ariaLabel !== ariaLabel) {\n\t\t\tthis.ui.inputBox.ariaLabel = ariaLabel ?? 'input';\n\t\t}\n\t\tthis.ui.list.matchOnDescription = this.matchOnDescription;\n\t\tthis.ui.list.matchOnDetail = this.matchOnDetail;\n\t\tthis.ui.list.matchOnLabel = this.matchOnLabel;\n\t\tthis.ui.list.matchOnLabelMode = this.matchOnLabelMode;\n\t\tthis.ui.list.sortByLabel = this.sortByLabel;\n\t\tif (this.itemsUpdated) {\n\t\t\tthis.itemsUpdated = false;\n\t\t\tthis._focusEventBufferer.bufferEvents(() => {\n\t\t\t\tthis.ui.list.setElements(this.items);\n\t\t\t\t// We want focus to exist in the list if there are items so that space can be used to toggle\n\t\t\t\tthis.ui.list.shouldLoop = !this.canSelectMany;\n\t\t\t\tthis.ui.list.filter(this.filterValue(this.ui.inputBox.value));\n\t\t\t\tswitch (this._itemActivation) {\n\t\t\t\t\tcase ItemActivation.NONE:\n\t\t\t\t\t\tthis._itemActivation = ItemActivation.FIRST; // only valid once, then unset\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase ItemActivation.SECOND:\n\t\t\t\t\t\tthis.ui.list.focus(QuickPickFocus.Second);\n\t\t\t\t\t\tthis._itemActivation = ItemActivation.FIRST; // only valid once, then unset\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase ItemActivation.LAST:\n\t\t\t\t\t\tthis.ui.list.focus(QuickPickFocus.Last);\n\t\t\t\t\t\tthis._itemActivation = ItemActivation.FIRST; // only valid once, then unset\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthis.trySelectFirst();\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tif (this.ui.container.classList.contains('show-checkboxes') !== !!this.canSelectMany) {\n\t\t\tif (this.canSelectMany) {\n\t\t\t\tthis.ui.list.clearFocus();\n\t\t\t} else {\n\t\t\t\tthis.trySelectFirst();\n\t\t\t}\n\t\t}\n\t\tif (this.activeItemsUpdated) {\n\t\t\tthis.activeItemsUpdated = false;\n\t\t\tthis.activeItemsToConfirm = this._activeItems;\n\t\t\tthis.ui.list.setFocusedElements(this.activeItems);\n\t\t\tif (this.activeItemsToConfirm === this._activeItems) {\n\t\t\t\tthis.activeItemsToConfirm = null;\n\t\t\t}\n\t\t}\n\t\tif (this.selectedItemsUpdated) {\n\t\t\tthis.selectedItemsUpdated = false;\n\t\t\tthis.selectedItemsToConfirm = this._selectedItems;\n\t\t\tif (this.canSelectMany) {\n\t\t\t\tthis.ui.list.setCheckedElements(this.selectedItems);\n\t\t\t} else {\n\t\t\t\tthis.ui.list.setSelectedElements(this.selectedItems);\n\t\t\t}\n\t\t\tif (this.selectedItemsToConfirm === this._selectedItems) {\n\t\t\t\tthis.selectedItemsToConfirm = null;\n\t\t\t}\n\t\t}\n\t\tthis.ui.ok.label = this.okLabel || '';\n\t\tthis.ui.customButton.label = this.customLabel || '';\n\t\tthis.ui.customButton.element.title = this.customHover || '';\n\t\tif (!visibilities.inputBox) {\n\t\t\t// we need to move focus into the tree to detect keybindings\n\t\t\t// properly when the input box is not visible (quick nav)\n\t\t\tthis.ui.list.domFocus();\n\n\t\t\t// Focus the first element in the list if multiselect is enabled\n\t\t\tif (this.canSelectMany) {\n\t\t\t\tthis.ui.list.focus(QuickPickFocus.First);\n\t\t\t}\n\t\t}\n\n\t\t// Set the scroll position to what it was before updating the items\n\t\tif (this.keepScrollPosition) {\n\t\t\tthis.scrollTop = scrollTopBefore;\n\t\t}\n\t}\n\n\tfocus(focus: QuickPickFocus): void {\n\t\tthis.ui.list.focus(focus);\n\t\t// To allow things like space to check/uncheck items\n\t\tif (this.canSelectMany) {\n\t\t\tthis.ui.list.domFocus();\n\t\t}\n\t}\n\n\taccept(inBackground?: boolean | undefined): void {\n\t\tif (inBackground && !this._canAcceptInBackground) {\n\t\t\treturn; // needs to be enabled\n\t\t}\n\n\t\tif (this.activeItems[0]) {\n\t\t\tthis._selectedItems = [this.activeItems[0]];\n\t\t\tthis.onDidChangeSelectionEmitter.fire(this.selectedItems);\n\t\t\tthis.handleAccept(inBackground ?? false);\n\t\t}\n\t}\n}\n\nexport class InputBox extends QuickInput implements IInputBox {\n\tprivate _value = '';\n\tprivate _valueSelection: Readonly<[number, number]> | undefined;\n\tprivate valueSelectionUpdated = true;\n\tprivate _placeholder: string | undefined;\n\tprivate _ariaLabel: string | undefined;\n\tprivate _password = false;\n\tprivate _prompt: string | undefined;\n\tprivate readonly onDidValueChangeEmitter = this._register(new Emitter<string>());\n\tprivate readonly onDidAcceptEmitter = this._register(new Emitter<void>());\n\n\treadonly type = QuickInputType.InputBox;\n\n\tget value() {\n\t\treturn this._value;\n\t}\n\n\tset value(value: string) {\n\t\tthis._value = value || '';\n\t\tthis.update();\n\t}\n\n\tget valueSelection() {\n\t\tconst selection = this.ui.inputBox.getSelection();\n\t\tif (!selection) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn [selection.start, selection.end];\n\t}\n\n\tset valueSelection(valueSelection: Readonly<[number, number]> | undefined) {\n\t\tthis._valueSelection = valueSelection;\n\t\tthis.valueSelectionUpdated = true;\n\t\tthis.update();\n\t}\n\n\tget placeholder() {\n\t\treturn this._placeholder;\n\t}\n\n\tset placeholder(placeholder: string | undefined) {\n\t\tthis._placeholder = placeholder;\n\t\tthis.update();\n\t}\n\n\tget ariaLabel() {\n\t\treturn this._ariaLabel;\n\t}\n\n\tset ariaLabel(ariaLabel: string | undefined) {\n\t\tthis._ariaLabel = ariaLabel;\n\t\tthis.update();\n\t}\n\n\tget password() {\n\t\treturn this._password;\n\t}\n\n\tset password(password: boolean) {\n\t\tthis._password = password;\n\t\tthis.update();\n\t}\n\n\tget prompt() {\n\t\treturn this._prompt;\n\t}\n\n\tset prompt(prompt: string | undefined) {\n\t\tthis._prompt = prompt;\n\t\tthis.noValidationMessage = prompt\n\t\t\t? localize('inputModeEntryDescription', \"{0} (Press 'Enter' to confirm or 'Escape' to cancel)\", prompt)\n\t\t\t: QuickInput.noPromptMessage;\n\t\tthis.update();\n\t}\n\n\treadonly onDidChangeValue = this.onDidValueChangeEmitter.event;\n\n\treadonly onDidAccept = this.onDidAcceptEmitter.event;\n\n\toverride show() {\n\t\tif (!this.visible) {\n\t\t\tthis.visibleDisposables.add(\n\t\t\t\tthis.ui.inputBox.onDidChange(value => {\n\t\t\t\t\tif (value === this.value) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tthis._value = value;\n\t\t\t\t\tthis.onDidValueChangeEmitter.fire(value);\n\t\t\t\t}));\n\t\t\tthis.visibleDisposables.add(this.ui.onDidAccept(() => this.onDidAcceptEmitter.fire()));\n\t\t\tthis.valueSelectionUpdated = true;\n\t\t}\n\t\tsuper.show();\n\t}\n\n\taccept(): void {\n\t\tthis.onDidAcceptEmitter.fire();\n\t}\n\n\tprotected override update() {\n\t\tif (!this.visible) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.ui.container.classList.remove('hidden-input');\n\t\tconst visibilities: Visibilities = {\n\t\t\ttitle: !!this.title || !!this.step || !!this.titleButtons.length,\n\t\t\tdescription: !!this.description || !!this.step,\n\t\t\tinputBox: true,\n\t\t\tmessage: true,\n\t\t\tprogressBar: true\n\t\t};\n\n\t\tthis.ui.setVisibilities(visibilities);\n\t\tsuper.update();\n\t\tif (this.ui.inputBox.value !== this.value) {\n\t\t\tthis.ui.inputBox.value = this.value;\n\t\t}\n\t\tif (this.valueSelectionUpdated) {\n\t\t\tthis.valueSelectionUpdated = false;\n\t\t\tthis.ui.inputBox.select(this._valueSelection && { start: this._valueSelection[0], end: this._valueSelection[1] });\n\t\t}\n\t\tif (this.ui.inputBox.placeholder !== (this.placeholder || '')) {\n\t\t\tthis.ui.inputBox.placeholder = (this.placeholder || '');\n\t\t}\n\t\tif (this.ui.inputBox.password !== this.password) {\n\t\t\tthis.ui.inputBox.password = this.password;\n\t\t}\n\t\tlet ariaLabel = this.ariaLabel;\n\t\t// Only set aria label to the input box placeholder if we actually have an input box.\n\t\tif (!ariaLabel && visibilities.inputBox) {\n\t\t\tariaLabel = this.placeholder\n\t\t\t\t? this.title\n\t\t\t\t\t? `${this.placeholder} - ${this.title}`\n\t\t\t\t\t: this.placeholder\n\t\t\t\t: this.title\n\t\t\t\t\t? this.title\n\t\t\t\t\t: 'input';\n\t\t}\n\t\tif (this.ui.inputBox.ariaLabel !== ariaLabel) {\n\t\t\tthis.ui.inputBox.ariaLabel = ariaLabel || 'input';\n\t\t}\n\t}\n}\n\nexport class QuickInputHoverDelegate extends WorkbenchHoverDelegate {\n\n\tconstructor(\n\t\t@IConfigurationService configurationService: IConfigurationService,\n\t\t@IHoverService hoverService: IHoverService\n\t) {\n\t\tsuper('mouse', undefined, (options) => this.getOverrideOptions(options), configurationService, hoverService);\n\t}\n\n\tprivate getOverrideOptions(options: IHoverDelegateOptions): Partial<IHoverOptions> {\n\t\t// Only show the hover hint if the content is of a decent size\n\t\tconst showHoverHint = (\n\t\t\tdom.isHTMLElement(options.content)\n\t\t\t\t? options.content.textContent ?? ''\n\t\t\t\t: typeof options.content === 'string'\n\t\t\t\t\t? options.content\n\t\t\t\t\t: options.content.value\n\t\t).includes('\\n');\n\n\t\treturn {\n\t\t\tpersistence: {\n\t\t\t\thideOnKeyDown: false,\n\t\t\t},\n\t\t\tappearance: {\n\t\t\t\tshowHoverHint,\n\t\t\t\tskipFadeInAnimation: true,\n\t\t\t},\n\t\t};\n\t}\n}\n"]}
@@ -9,14 +9,22 @@ import { InputFocusedContext } from '../../contextkey/common/contextkeys.js';
9
9
  import { KeybindingsRegistry } from '../../keybinding/common/keybindingsRegistry.js';
10
10
  import { endOfQuickInputBoxContext, inQuickInputContext, quickInputTypeContextKeyValue } from './quickInput.js';
11
11
  import { IQuickInputService, QuickPickFocus } from '../common/quickInput.js';
12
- const defaultCommandAndKeybindingRule = {
13
- weight: 200 /* KeybindingWeight.WorkbenchContrib */,
14
- when: ContextKeyExpr.and(ContextKeyExpr.or(ContextKeyExpr.equals(quickInputTypeContextKeyValue, "quickPick" /* QuickInputType.QuickPick */), ContextKeyExpr.equals(quickInputTypeContextKeyValue, "quickTree" /* QuickInputType.QuickTree */)), inQuickInputContext),
15
- metadata: { description: localize(1738, "Used while in the context of the quick pick. If you change one keybinding for this command, you should change all of the other keybindings (modifier variants) of this command as well.") }
16
- };
12
+ function registerQuickInputCommandAndKeybindingRule(rule, options = {}) {
13
+ KeybindingsRegistry.registerCommandAndKeybindingRule({
14
+ weight: 200 /* KeybindingWeight.WorkbenchContrib */,
15
+ when: inQuickInputContext,
16
+ metadata: { description: localize(1739, "Used while in the context of any kind of quick input. If you change one keybinding for this command, you should change all of the other keybindings (modifier variants) of this command as well.") },
17
+ ...rule,
18
+ secondary: getSecondary(rule.primary, rule.secondary ?? [], options)
19
+ });
20
+ }
17
21
  function registerQuickPickCommandAndKeybindingRule(rule, options = {}) {
18
22
  KeybindingsRegistry.registerCommandAndKeybindingRule({
19
- ...defaultCommandAndKeybindingRule,
23
+ weight: 200 /* KeybindingWeight.WorkbenchContrib */,
24
+ when: ContextKeyExpr.and(ContextKeyExpr.or(
25
+ // Only things that use Tree widgets
26
+ ContextKeyExpr.equals(quickInputTypeContextKeyValue, "quickPick" /* QuickInputType.QuickPick */), ContextKeyExpr.equals(quickInputTypeContextKeyValue, "quickTree" /* QuickInputType.QuickTree */)), inQuickInputContext),
27
+ metadata: { description: localize(1740, "Used while in the context of the quick pick. If you change one keybinding for this command, you should change all of the other keybindings (modifier variants) of this command as well.") },
20
28
  ...rule,
21
29
  secondary: getSecondary(rule.primary, rule.secondary ?? [], options)
22
30
  });
@@ -71,8 +79,8 @@ registerQuickPickCommandAndKeybindingRule({ id: 'quickInput.previous', primary:
71
79
  // In this case, we want that modifier key+up/down to navigate to the next/previous item, not the next/previous separator.
72
80
  // To handle this, we have a separate command for navigating to the next/previous separator when we are not in quick access mode.
73
81
  // If, however, we are in quick access mode, and you hold down an additional modifier key, we will navigate to the next/previous separator.
74
- const nextSeparatorFallbackDesc = localize(1739, "If we're in quick access mode, this will navigate to the next item. If we are not in quick access mode, this will navigate to the next separator.");
75
- const prevSeparatorFallbackDesc = localize(1740, "If we're in quick access mode, this will navigate to the previous item. If we are not in quick access mode, this will navigate to the previous separator.");
82
+ const nextSeparatorFallbackDesc = localize(1741, "If we're in quick access mode, this will navigate to the next item. If we are not in quick access mode, this will navigate to the next separator.");
83
+ const prevSeparatorFallbackDesc = localize(1742, "If we're in quick access mode, this will navigate to the previous item. If we are not in quick access mode, this will navigate to the previous separator.");
76
84
  if (isMacintosh) {
77
85
  registerQuickPickCommandAndKeybindingRule({
78
86
  id: 'quickInput.nextSeparatorWithQuickAccessFallback',
@@ -129,6 +137,21 @@ else {
129
137
  }
130
138
  //#endregion
131
139
  //#region Accept
140
+ KeybindingsRegistry.registerCommandAndKeybindingRule({
141
+ id: 'quickInput.accept',
142
+ primary: 3 /* KeyCode.Enter */,
143
+ weight: 200 /* KeybindingWeight.WorkbenchContrib */,
144
+ when: ContextKeyExpr.and(
145
+ // All other kinds of Quick things handle Accept, except Widget. In other words, Accepting is a detail on the things
146
+ // that extend IQuickInput
147
+ ContextKeyExpr.notEquals(quickInputTypeContextKeyValue, "quickWidget" /* QuickInputType.QuickWidget */), inQuickInputContext),
148
+ metadata: { description: localize(1743, "Used while in the context of some quick input. If you change one keybinding for this command, you should change all of the other keybindings (modifier variants) of this command as well.") },
149
+ handler: (accessor) => {
150
+ const currentQuickPick = accessor.get(IQuickInputService).currentQuickInput;
151
+ currentQuickPick?.accept();
152
+ },
153
+ secondary: getSecondary(3 /* KeyCode.Enter */, [], { withAltMod: true, withCtrlMod: true, withCmdMod: true })
154
+ });
132
155
  registerQuickPickCommandAndKeybindingRule({
133
156
  id: 'quickInput.acceptInBackground',
134
157
  // If we are in the quick pick but the input box is not focused or our cursor is at the end of the input box
@@ -142,6 +165,17 @@ registerQuickPickCommandAndKeybindingRule({
142
165
  currentQuickPick?.accept(true);
143
166
  },
144
167
  }, { withAltMod: true, withCtrlMod: true, withCmdMod: true });
168
+ //#endregion
169
+ //#region Hide
170
+ registerQuickInputCommandAndKeybindingRule({
171
+ id: 'quickInput.hide',
172
+ primary: 9 /* KeyCode.Escape */,
173
+ handler: (accessor) => {
174
+ const currentQuickPick = accessor.get(IQuickInputService).currentQuickInput;
175
+ currentQuickPick?.hide();
176
+ }
177
+ }, { withAltMod: true, withCtrlMod: true, withCmdMod: true });
178
+ //#endregion
145
179
  //#region Toggle Hover
146
180
  registerQuickPickCommandAndKeybindingRule({
147
181
  id: 'quickInput.toggleHover',
@@ -1 +1 @@
1
- {"version":3,"sources":["vs/platform/quickinput/browser/quickInputActions.ts"],"names":[],"mappings":"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","file":"quickInputActions.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 { KeyCode, KeyMod } from '../../../base/common/keyCodes.js';\nimport { isMacintosh } from '../../../base/common/platform.js';\nimport { PartialExcept } from '../../../base/common/types.js';\nimport { localize } from '../../../nls.js';\nimport { ICommandHandler } from '../../commands/common/commands.js';\nimport { ContextKeyExpr } from '../../contextkey/common/contextkey.js';\nimport { InputFocusedContext } from '../../contextkey/common/contextkeys.js';\nimport { ICommandAndKeybindingRule, KeybindingWeight, KeybindingsRegistry } from '../../keybinding/common/keybindingsRegistry.js';\nimport { endOfQuickInputBoxContext, inQuickInputContext, quickInputTypeContextKeyValue } from './quickInput.js';\nimport { IQuickInputService, IQuickPick, IQuickTree, QuickInputType, QuickPickFocus } from '../common/quickInput.js';\n\nconst defaultCommandAndKeybindingRule = {\n\tweight: KeybindingWeight.WorkbenchContrib,\n\twhen: ContextKeyExpr.and(\n\t\tContextKeyExpr.or(\n\t\t\tContextKeyExpr.equals(quickInputTypeContextKeyValue, QuickInputType.QuickPick),\n\t\t\tContextKeyExpr.equals(quickInputTypeContextKeyValue, QuickInputType.QuickTree),\n\t\t),\n\t\tinQuickInputContext\n\t),\n\tmetadata: { description: localize('quickPick', \"Used while in the context of the quick pick. If you change one keybinding for this command, you should change all of the other keybindings (modifier variants) of this command as well.\") }\n};\nfunction registerQuickPickCommandAndKeybindingRule(rule: PartialExcept<ICommandAndKeybindingRule, 'id' | 'handler'>, options: { withAltMod?: boolean; withCtrlMod?: boolean; withCmdMod?: boolean } = {}) {\n\tKeybindingsRegistry.registerCommandAndKeybindingRule({\n\t\t...defaultCommandAndKeybindingRule,\n\t\t...rule,\n\t\tsecondary: getSecondary(rule.primary!, rule.secondary ?? [], options)\n\t});\n}\n\nconst ctrlKeyMod = isMacintosh ? KeyMod.WinCtrl : KeyMod.CtrlCmd;\n\n// This function will generate all the combinations of keybindings for the given primary keybinding\nfunction getSecondary(primary: number, secondary: number[], options: { withAltMod?: boolean; withCtrlMod?: boolean; withCmdMod?: boolean } = {}): number[] {\n\tif (options.withAltMod) {\n\t\tsecondary.push(KeyMod.Alt + primary);\n\t}\n\tif (options.withCtrlMod) {\n\t\tsecondary.push(ctrlKeyMod + primary);\n\t\tif (options.withAltMod) {\n\t\t\tsecondary.push(KeyMod.Alt + ctrlKeyMod + primary);\n\t\t}\n\t}\n\n\tif (options.withCmdMod && isMacintosh) {\n\t\tsecondary.push(KeyMod.CtrlCmd + primary);\n\t\tif (options.withCtrlMod) {\n\t\t\tsecondary.push(KeyMod.CtrlCmd + KeyMod.WinCtrl + primary);\n\t\t}\n\t\tif (options.withAltMod) {\n\t\t\tsecondary.push(KeyMod.CtrlCmd + KeyMod.Alt + primary);\n\t\t\tif (options.withCtrlMod) {\n\t\t\t\tsecondary.push(KeyMod.CtrlCmd + KeyMod.Alt + KeyMod.WinCtrl + primary);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn secondary;\n}\n\n//#region Navigation\n\nfunction focusHandler(focus: QuickPickFocus, focusOnQuickNatigate?: QuickPickFocus): ICommandHandler {\n\treturn accessor => {\n\t\t// Assuming this is a quick pick due to above when clause\n\t\tconst currentQuickPick = accessor.get(IQuickInputService).currentQuickInput as IQuickPick<any> | IQuickTree<any> | undefined;\n\t\tif (!currentQuickPick) {\n\t\t\treturn;\n\t\t}\n\t\tif (focusOnQuickNatigate && (currentQuickPick as IQuickPick<any>).quickNavigate) {\n\t\t\treturn currentQuickPick.focus(focusOnQuickNatigate);\n\t\t}\n\t\treturn currentQuickPick.focus(focus);\n\t};\n}\n\nregisterQuickPickCommandAndKeybindingRule(\n\t{ id: 'quickInput.pageNext', primary: KeyCode.PageDown, handler: focusHandler(QuickPickFocus.NextPage) },\n\t{ withAltMod: true, withCtrlMod: true, withCmdMod: true }\n);\nregisterQuickPickCommandAndKeybindingRule(\n\t{ id: 'quickInput.pagePrevious', primary: KeyCode.PageUp, handler: focusHandler(QuickPickFocus.PreviousPage) },\n\t{ withAltMod: true, withCtrlMod: true, withCmdMod: true }\n);\nregisterQuickPickCommandAndKeybindingRule(\n\t{ id: 'quickInput.first', primary: ctrlKeyMod + KeyCode.Home, handler: focusHandler(QuickPickFocus.First) },\n\t{ withAltMod: true, withCmdMod: true }\n);\nregisterQuickPickCommandAndKeybindingRule(\n\t{ id: 'quickInput.last', primary: ctrlKeyMod + KeyCode.End, handler: focusHandler(QuickPickFocus.Last) },\n\t{ withAltMod: true, withCmdMod: true }\n);\nregisterQuickPickCommandAndKeybindingRule(\n\t{ id: 'quickInput.next', primary: KeyCode.DownArrow, handler: focusHandler(QuickPickFocus.Next) },\n\t{ withCtrlMod: true }\n);\nregisterQuickPickCommandAndKeybindingRule(\n\t{ id: 'quickInput.previous', primary: KeyCode.UpArrow, handler: focusHandler(QuickPickFocus.Previous) },\n\t{ withCtrlMod: true }\n);\n\n// The next & previous separator commands are interesting because if we are in quick access mode, we are already holding a modifier key down.\n// In this case, we want that modifier key+up/down to navigate to the next/previous item, not the next/previous separator.\n// To handle this, we have a separate command for navigating to the next/previous separator when we are not in quick access mode.\n// If, however, we are in quick access mode, and you hold down an additional modifier key, we will navigate to the next/previous separator.\n\nconst nextSeparatorFallbackDesc = localize('quickInput.nextSeparatorWithQuickAccessFallback', \"If we're in quick access mode, this will navigate to the next item. If we are not in quick access mode, this will navigate to the next separator.\");\nconst prevSeparatorFallbackDesc = localize('quickInput.previousSeparatorWithQuickAccessFallback', \"If we're in quick access mode, this will navigate to the previous item. If we are not in quick access mode, this will navigate to the previous separator.\");\nif (isMacintosh) {\n\tregisterQuickPickCommandAndKeybindingRule(\n\t\t{\n\t\t\tid: 'quickInput.nextSeparatorWithQuickAccessFallback',\n\t\t\tprimary: KeyMod.CtrlCmd + KeyCode.DownArrow,\n\t\t\thandler: focusHandler(QuickPickFocus.NextSeparator, QuickPickFocus.Next),\n\t\t\tmetadata: { description: nextSeparatorFallbackDesc }\n\t\t},\n\t);\n\tregisterQuickPickCommandAndKeybindingRule(\n\t\t{\n\t\t\tid: 'quickInput.nextSeparator',\n\t\t\tprimary: KeyMod.CtrlCmd + KeyMod.Alt + KeyCode.DownArrow,\n\t\t\t// Since macOS has the cmd key as the primary modifier, we need to add this additional\n\t\t\t// keybinding to capture cmd+ctrl+upArrow\n\t\t\tsecondary: [KeyMod.CtrlCmd + KeyMod.WinCtrl + KeyCode.DownArrow],\n\t\t\thandler: focusHandler(QuickPickFocus.NextSeparator)\n\t\t},\n\t\t{ withCtrlMod: true }\n\t);\n\n\tregisterQuickPickCommandAndKeybindingRule(\n\t\t{\n\t\t\tid: 'quickInput.previousSeparatorWithQuickAccessFallback',\n\t\t\tprimary: KeyMod.CtrlCmd + KeyCode.UpArrow,\n\t\t\thandler: focusHandler(QuickPickFocus.PreviousSeparator, QuickPickFocus.Previous),\n\t\t\tmetadata: { description: prevSeparatorFallbackDesc }\n\t\t},\n\t);\n\tregisterQuickPickCommandAndKeybindingRule(\n\t\t{\n\t\t\tid: 'quickInput.previousSeparator',\n\t\t\tprimary: KeyMod.CtrlCmd + KeyMod.Alt + KeyCode.UpArrow,\n\t\t\t// Since macOS has the cmd key as the primary modifier, we need to add this additional\n\t\t\t// keybinding to capture cmd+ctrl+upArrow\n\t\t\tsecondary: [KeyMod.CtrlCmd + KeyMod.WinCtrl + KeyCode.UpArrow],\n\t\t\thandler: focusHandler(QuickPickFocus.PreviousSeparator)\n\t\t},\n\t\t{ withCtrlMod: true }\n\t);\n} else {\n\tregisterQuickPickCommandAndKeybindingRule(\n\t\t{\n\t\t\tid: 'quickInput.nextSeparatorWithQuickAccessFallback',\n\t\t\tprimary: KeyMod.Alt + KeyCode.DownArrow,\n\t\t\thandler: focusHandler(QuickPickFocus.NextSeparator, QuickPickFocus.Next),\n\t\t\tmetadata: { description: nextSeparatorFallbackDesc }\n\t\t},\n\t);\n\tregisterQuickPickCommandAndKeybindingRule(\n\t\t{\n\t\t\tid: 'quickInput.nextSeparator',\n\t\t\tprimary: KeyMod.CtrlCmd + KeyMod.Alt + KeyCode.DownArrow,\n\t\t\thandler: focusHandler(QuickPickFocus.NextSeparator)\n\t\t},\n\t);\n\n\tregisterQuickPickCommandAndKeybindingRule(\n\t\t{\n\t\t\tid: 'quickInput.previousSeparatorWithQuickAccessFallback',\n\t\t\tprimary: KeyMod.Alt + KeyCode.UpArrow,\n\t\t\thandler: focusHandler(QuickPickFocus.PreviousSeparator, QuickPickFocus.Previous),\n\t\t\tmetadata: { description: prevSeparatorFallbackDesc }\n\t\t},\n\t);\n\tregisterQuickPickCommandAndKeybindingRule(\n\t\t{\n\t\t\tid: 'quickInput.previousSeparator',\n\t\t\tprimary: KeyMod.CtrlCmd + KeyMod.Alt + KeyCode.UpArrow,\n\t\t\thandler: focusHandler(QuickPickFocus.PreviousSeparator)\n\t\t},\n\t);\n}\n\n//#endregion\n\n//#region Accept\n\nregisterQuickPickCommandAndKeybindingRule(\n\t{\n\t\tid: 'quickInput.acceptInBackground',\n\t\t// If we are in the quick pick but the input box is not focused or our cursor is at the end of the input box\n\t\twhen: ContextKeyExpr.and(\n\t\t\tinQuickInputContext,\n\t\t\tContextKeyExpr.equals(quickInputTypeContextKeyValue, QuickInputType.QuickPick),\n\t\t\tContextKeyExpr.or(InputFocusedContext.negate(), endOfQuickInputBoxContext)\n\t\t),\n\t\tprimary: KeyCode.RightArrow,\n\t\t// Need a little extra weight to ensure this keybinding is preferred over the default cmd+alt+right arrow keybinding\n\t\t// https://github.com/microsoft/vscode/blob/1451e4fbbbf074a4355cc537c35b547b80ce1c52/src/vs/workbench/browser/parts/editor/editorActions.ts#L1178-L1195\n\t\tweight: KeybindingWeight.WorkbenchContrib + 50,\n\t\thandler: (accessor) => {\n\t\t\tconst currentQuickPick = accessor.get(IQuickInputService).currentQuickInput as IQuickPick<any>;\n\t\t\tcurrentQuickPick?.accept(true);\n\t\t},\n\t},\n\t{ withAltMod: true, withCtrlMod: true, withCmdMod: true }\n);\n\n//#region Toggle Hover\n\nregisterQuickPickCommandAndKeybindingRule(\n\t{\n\t\tid: 'quickInput.toggleHover',\n\t\tprimary: ctrlKeyMod | KeyCode.Space,\n\t\thandler: accessor => {\n\t\t\tconst quickInputService = accessor.get(IQuickInputService);\n\t\t\tquickInputService.toggleHover();\n\t\t}\n\t}\n);\n\n//#endregion\n"]}
1
+ {"version":3,"sources":["vs/platform/quickinput/browser/quickInputActions.ts"],"names":[],"mappings":"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","file":"quickInputActions.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 { KeyCode, KeyMod } from '../../../base/common/keyCodes.js';\nimport { isMacintosh } from '../../../base/common/platform.js';\nimport { PartialExcept } from '../../../base/common/types.js';\nimport { localize } from '../../../nls.js';\nimport { ICommandHandler } from '../../commands/common/commands.js';\nimport { ContextKeyExpr } from '../../contextkey/common/contextkey.js';\nimport { InputFocusedContext } from '../../contextkey/common/contextkeys.js';\nimport { ICommandAndKeybindingRule, KeybindingWeight, KeybindingsRegistry } from '../../keybinding/common/keybindingsRegistry.js';\nimport { endOfQuickInputBoxContext, inQuickInputContext, quickInputTypeContextKeyValue } from './quickInput.js';\nimport { IInputBox, IQuickInputService, IQuickPick, IQuickTree, QuickInputType, QuickPickFocus } from '../common/quickInput.js';\n\nfunction registerQuickInputCommandAndKeybindingRule(rule: PartialExcept<ICommandAndKeybindingRule, 'id' | 'handler'>, options: { withAltMod?: boolean; withCtrlMod?: boolean; withCmdMod?: boolean } = {}) {\n\tKeybindingsRegistry.registerCommandAndKeybindingRule({\n\t\tweight: KeybindingWeight.WorkbenchContrib,\n\t\twhen: inQuickInputContext,\n\t\tmetadata: { description: localize('quickInput', \"Used while in the context of any kind of quick input. If you change one keybinding for this command, you should change all of the other keybindings (modifier variants) of this command as well.\") },\n\t\t...rule,\n\t\tsecondary: getSecondary(rule.primary!, rule.secondary ?? [], options)\n\t});\n}\n\nfunction registerQuickPickCommandAndKeybindingRule(rule: PartialExcept<ICommandAndKeybindingRule, 'id' | 'handler'>, options: { withAltMod?: boolean; withCtrlMod?: boolean; withCmdMod?: boolean } = {}) {\n\tKeybindingsRegistry.registerCommandAndKeybindingRule({\n\t\tweight: KeybindingWeight.WorkbenchContrib,\n\t\twhen: ContextKeyExpr.and(\n\t\t\tContextKeyExpr.or(\n\t\t\t\t// Only things that use Tree widgets\n\t\t\t\tContextKeyExpr.equals(quickInputTypeContextKeyValue, QuickInputType.QuickPick),\n\t\t\t\tContextKeyExpr.equals(quickInputTypeContextKeyValue, QuickInputType.QuickTree),\n\t\t\t),\n\t\t\tinQuickInputContext\n\t\t),\n\t\tmetadata: { description: localize('quickPick', \"Used while in the context of the quick pick. If you change one keybinding for this command, you should change all of the other keybindings (modifier variants) of this command as well.\") },\n\t\t...rule,\n\t\tsecondary: getSecondary(rule.primary!, rule.secondary ?? [], options)\n\t});\n}\n\nconst ctrlKeyMod = isMacintosh ? KeyMod.WinCtrl : KeyMod.CtrlCmd;\n\n// This function will generate all the combinations of keybindings for the given primary keybinding\nfunction getSecondary(primary: number, secondary: number[], options: { withAltMod?: boolean; withCtrlMod?: boolean; withCmdMod?: boolean } = {}): number[] {\n\tif (options.withAltMod) {\n\t\tsecondary.push(KeyMod.Alt + primary);\n\t}\n\tif (options.withCtrlMod) {\n\t\tsecondary.push(ctrlKeyMod + primary);\n\t\tif (options.withAltMod) {\n\t\t\tsecondary.push(KeyMod.Alt + ctrlKeyMod + primary);\n\t\t}\n\t}\n\n\tif (options.withCmdMod && isMacintosh) {\n\t\tsecondary.push(KeyMod.CtrlCmd + primary);\n\t\tif (options.withCtrlMod) {\n\t\t\tsecondary.push(KeyMod.CtrlCmd + KeyMod.WinCtrl + primary);\n\t\t}\n\t\tif (options.withAltMod) {\n\t\t\tsecondary.push(KeyMod.CtrlCmd + KeyMod.Alt + primary);\n\t\t\tif (options.withCtrlMod) {\n\t\t\t\tsecondary.push(KeyMod.CtrlCmd + KeyMod.Alt + KeyMod.WinCtrl + primary);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn secondary;\n}\n\n//#region Navigation\n\nfunction focusHandler(focus: QuickPickFocus, focusOnQuickNatigate?: QuickPickFocus): ICommandHandler {\n\treturn accessor => {\n\t\t// Assuming this is a quick pick due to above when clause\n\t\tconst currentQuickPick = accessor.get(IQuickInputService).currentQuickInput as IQuickPick<any> | IQuickTree<any> | undefined;\n\t\tif (!currentQuickPick) {\n\t\t\treturn;\n\t\t}\n\t\tif (focusOnQuickNatigate && (currentQuickPick as IQuickPick<any>).quickNavigate) {\n\t\t\treturn currentQuickPick.focus(focusOnQuickNatigate);\n\t\t}\n\t\treturn currentQuickPick.focus(focus);\n\t};\n}\n\nregisterQuickPickCommandAndKeybindingRule(\n\t{ id: 'quickInput.pageNext', primary: KeyCode.PageDown, handler: focusHandler(QuickPickFocus.NextPage) },\n\t{ withAltMod: true, withCtrlMod: true, withCmdMod: true }\n);\nregisterQuickPickCommandAndKeybindingRule(\n\t{ id: 'quickInput.pagePrevious', primary: KeyCode.PageUp, handler: focusHandler(QuickPickFocus.PreviousPage) },\n\t{ withAltMod: true, withCtrlMod: true, withCmdMod: true }\n);\nregisterQuickPickCommandAndKeybindingRule(\n\t{ id: 'quickInput.first', primary: ctrlKeyMod + KeyCode.Home, handler: focusHandler(QuickPickFocus.First) },\n\t{ withAltMod: true, withCmdMod: true }\n);\nregisterQuickPickCommandAndKeybindingRule(\n\t{ id: 'quickInput.last', primary: ctrlKeyMod + KeyCode.End, handler: focusHandler(QuickPickFocus.Last) },\n\t{ withAltMod: true, withCmdMod: true }\n);\nregisterQuickPickCommandAndKeybindingRule(\n\t{ id: 'quickInput.next', primary: KeyCode.DownArrow, handler: focusHandler(QuickPickFocus.Next) },\n\t{ withCtrlMod: true }\n);\nregisterQuickPickCommandAndKeybindingRule(\n\t{ id: 'quickInput.previous', primary: KeyCode.UpArrow, handler: focusHandler(QuickPickFocus.Previous) },\n\t{ withCtrlMod: true }\n);\n\n// The next & previous separator commands are interesting because if we are in quick access mode, we are already holding a modifier key down.\n// In this case, we want that modifier key+up/down to navigate to the next/previous item, not the next/previous separator.\n// To handle this, we have a separate command for navigating to the next/previous separator when we are not in quick access mode.\n// If, however, we are in quick access mode, and you hold down an additional modifier key, we will navigate to the next/previous separator.\n\nconst nextSeparatorFallbackDesc = localize('quickInput.nextSeparatorWithQuickAccessFallback', \"If we're in quick access mode, this will navigate to the next item. If we are not in quick access mode, this will navigate to the next separator.\");\nconst prevSeparatorFallbackDesc = localize('quickInput.previousSeparatorWithQuickAccessFallback', \"If we're in quick access mode, this will navigate to the previous item. If we are not in quick access mode, this will navigate to the previous separator.\");\nif (isMacintosh) {\n\tregisterQuickPickCommandAndKeybindingRule(\n\t\t{\n\t\t\tid: 'quickInput.nextSeparatorWithQuickAccessFallback',\n\t\t\tprimary: KeyMod.CtrlCmd + KeyCode.DownArrow,\n\t\t\thandler: focusHandler(QuickPickFocus.NextSeparator, QuickPickFocus.Next),\n\t\t\tmetadata: { description: nextSeparatorFallbackDesc }\n\t\t},\n\t);\n\tregisterQuickPickCommandAndKeybindingRule(\n\t\t{\n\t\t\tid: 'quickInput.nextSeparator',\n\t\t\tprimary: KeyMod.CtrlCmd + KeyMod.Alt + KeyCode.DownArrow,\n\t\t\t// Since macOS has the cmd key as the primary modifier, we need to add this additional\n\t\t\t// keybinding to capture cmd+ctrl+upArrow\n\t\t\tsecondary: [KeyMod.CtrlCmd + KeyMod.WinCtrl + KeyCode.DownArrow],\n\t\t\thandler: focusHandler(QuickPickFocus.NextSeparator)\n\t\t},\n\t\t{ withCtrlMod: true }\n\t);\n\n\tregisterQuickPickCommandAndKeybindingRule(\n\t\t{\n\t\t\tid: 'quickInput.previousSeparatorWithQuickAccessFallback',\n\t\t\tprimary: KeyMod.CtrlCmd + KeyCode.UpArrow,\n\t\t\thandler: focusHandler(QuickPickFocus.PreviousSeparator, QuickPickFocus.Previous),\n\t\t\tmetadata: { description: prevSeparatorFallbackDesc }\n\t\t},\n\t);\n\tregisterQuickPickCommandAndKeybindingRule(\n\t\t{\n\t\t\tid: 'quickInput.previousSeparator',\n\t\t\tprimary: KeyMod.CtrlCmd + KeyMod.Alt + KeyCode.UpArrow,\n\t\t\t// Since macOS has the cmd key as the primary modifier, we need to add this additional\n\t\t\t// keybinding to capture cmd+ctrl+upArrow\n\t\t\tsecondary: [KeyMod.CtrlCmd + KeyMod.WinCtrl + KeyCode.UpArrow],\n\t\t\thandler: focusHandler(QuickPickFocus.PreviousSeparator)\n\t\t},\n\t\t{ withCtrlMod: true }\n\t);\n} else {\n\tregisterQuickPickCommandAndKeybindingRule(\n\t\t{\n\t\t\tid: 'quickInput.nextSeparatorWithQuickAccessFallback',\n\t\t\tprimary: KeyMod.Alt + KeyCode.DownArrow,\n\t\t\thandler: focusHandler(QuickPickFocus.NextSeparator, QuickPickFocus.Next),\n\t\t\tmetadata: { description: nextSeparatorFallbackDesc }\n\t\t},\n\t);\n\tregisterQuickPickCommandAndKeybindingRule(\n\t\t{\n\t\t\tid: 'quickInput.nextSeparator',\n\t\t\tprimary: KeyMod.CtrlCmd + KeyMod.Alt + KeyCode.DownArrow,\n\t\t\thandler: focusHandler(QuickPickFocus.NextSeparator)\n\t\t},\n\t);\n\n\tregisterQuickPickCommandAndKeybindingRule(\n\t\t{\n\t\t\tid: 'quickInput.previousSeparatorWithQuickAccessFallback',\n\t\t\tprimary: KeyMod.Alt + KeyCode.UpArrow,\n\t\t\thandler: focusHandler(QuickPickFocus.PreviousSeparator, QuickPickFocus.Previous),\n\t\t\tmetadata: { description: prevSeparatorFallbackDesc }\n\t\t},\n\t);\n\tregisterQuickPickCommandAndKeybindingRule(\n\t\t{\n\t\t\tid: 'quickInput.previousSeparator',\n\t\t\tprimary: KeyMod.CtrlCmd + KeyMod.Alt + KeyCode.UpArrow,\n\t\t\thandler: focusHandler(QuickPickFocus.PreviousSeparator)\n\t\t},\n\t);\n}\n\n//#endregion\n\n//#region Accept\n\nKeybindingsRegistry.registerCommandAndKeybindingRule({\n\tid: 'quickInput.accept',\n\tprimary: KeyCode.Enter,\n\tweight: KeybindingWeight.WorkbenchContrib,\n\twhen: ContextKeyExpr.and(\n\t\t// All other kinds of Quick things handle Accept, except Widget. In other words, Accepting is a detail on the things\n\t\t// that extend IQuickInput\n\t\tContextKeyExpr.notEquals(quickInputTypeContextKeyValue, QuickInputType.QuickWidget),\n\t\tinQuickInputContext\n\t),\n\tmetadata: { description: localize('nonQuickWidget', \"Used while in the context of some quick input. If you change one keybinding for this command, you should change all of the other keybindings (modifier variants) of this command as well.\") },\n\thandler: (accessor) => {\n\t\tconst currentQuickPick = accessor.get(IQuickInputService).currentQuickInput as IQuickPick<any> | IQuickTree<any> | IInputBox;\n\t\tcurrentQuickPick?.accept();\n\t},\n\tsecondary: getSecondary(KeyCode.Enter, [], { withAltMod: true, withCtrlMod: true, withCmdMod: true })\n});\n\nregisterQuickPickCommandAndKeybindingRule(\n\t{\n\t\tid: 'quickInput.acceptInBackground',\n\t\t// If we are in the quick pick but the input box is not focused or our cursor is at the end of the input box\n\t\twhen: ContextKeyExpr.and(\n\t\t\tinQuickInputContext,\n\t\t\tContextKeyExpr.equals(quickInputTypeContextKeyValue, QuickInputType.QuickPick),\n\t\t\tContextKeyExpr.or(InputFocusedContext.negate(), endOfQuickInputBoxContext)\n\t\t),\n\t\tprimary: KeyCode.RightArrow,\n\t\t// Need a little extra weight to ensure this keybinding is preferred over the default cmd+alt+right arrow keybinding\n\t\t// https://github.com/microsoft/vscode/blob/1451e4fbbbf074a4355cc537c35b547b80ce1c52/src/vs/workbench/browser/parts/editor/editorActions.ts#L1178-L1195\n\t\tweight: KeybindingWeight.WorkbenchContrib + 50,\n\t\thandler: (accessor) => {\n\t\t\tconst currentQuickPick = accessor.get(IQuickInputService).currentQuickInput as IQuickPick<any>;\n\t\t\tcurrentQuickPick?.accept(true);\n\t\t},\n\t},\n\t{ withAltMod: true, withCtrlMod: true, withCmdMod: true }\n);\n\n//#endregion\n\n//#region Hide\n\nregisterQuickInputCommandAndKeybindingRule(\n\t{\n\t\tid: 'quickInput.hide',\n\t\tprimary: KeyCode.Escape,\n\t\thandler: (accessor) => {\n\t\t\tconst currentQuickPick = accessor.get(IQuickInputService).currentQuickInput;\n\t\t\tcurrentQuickPick?.hide();\n\t\t}\n\t},\n\t{ withAltMod: true, withCtrlMod: true, withCmdMod: true }\n);\n\n//#endregion\n\n//#region Toggle Hover\n\nregisterQuickPickCommandAndKeybindingRule(\n\t{\n\t\tid: 'quickInput.toggleHover',\n\t\tprimary: ctrlKeyMod | KeyCode.Space,\n\t\thandler: accessor => {\n\t\t\tconst quickInputService = accessor.get(IQuickInputService);\n\t\t\tquickInputService.toggleHover();\n\t\t}\n\t}\n);\n\n//#endregion\n"]}