monaco-editor-core 0.56.0-dev-20251219 → 0.56.0-dev-20251220

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 (189) hide show
  1. package/esm/nls.keys.json +1 -1
  2. package/esm/nls.messages.cs.js +2 -2
  3. package/esm/nls.messages.de.js +2 -2
  4. package/esm/nls.messages.es.js +2 -2
  5. package/esm/nls.messages.fr.js +2 -2
  6. package/esm/nls.messages.it.js +2 -2
  7. package/esm/nls.messages.ja.js +2 -2
  8. package/esm/nls.messages.js +1 -1
  9. package/esm/nls.messages.json +1 -1
  10. package/esm/nls.messages.ko.js +2 -2
  11. package/esm/nls.messages.pl.js +2 -2
  12. package/esm/nls.messages.pt-br.js +2 -2
  13. package/esm/nls.messages.ru.js +2 -2
  14. package/esm/nls.messages.tr.js +2 -2
  15. package/esm/nls.messages.zh-cn.js +2 -2
  16. package/esm/nls.messages.zh-tw.js +2 -2
  17. package/esm/nls.metadata.json +0 -2
  18. package/esm/vs/editor/common/core/editorColorRegistry.js +33 -34
  19. package/esm/vs/editor/common/core/editorColorRegistry.js.map +1 -1
  20. package/esm/vs/editor/common/editorContextKeys.js +47 -47
  21. package/esm/vs/editor/common/languages/modesRegistry.js +1 -1
  22. package/esm/vs/editor/common/languages.js +56 -56
  23. package/esm/vs/editor/common/model/editStack.js +1 -1
  24. package/esm/vs/editor/common/standaloneStrings.js +11 -11
  25. package/esm/vs/editor/common/viewLayout/viewLineRenderer.js +2 -2
  26. package/esm/vs/editor/contrib/anchorSelect/browser/anchorSelect.js +6 -6
  27. package/esm/vs/editor/contrib/bracketMatching/browser/bracketMatching.js +9 -18
  28. package/esm/vs/editor/contrib/bracketMatching/browser/bracketMatching.js.map +1 -1
  29. package/esm/vs/editor/contrib/caretOperations/browser/caretOperations.js +2 -2
  30. package/esm/vs/editor/contrib/caretOperations/browser/transpose.js +1 -1
  31. package/esm/vs/editor/contrib/clipboard/browser/clipboard.js +17 -17
  32. package/esm/vs/editor/contrib/codeAction/browser/codeAction.js +1 -1
  33. package/esm/vs/editor/contrib/codeAction/browser/codeActionCommands.js +29 -29
  34. package/esm/vs/editor/contrib/codeAction/browser/codeActionContributions.js +3 -3
  35. package/esm/vs/editor/contrib/codeAction/browser/codeActionController.js +3 -3
  36. package/esm/vs/editor/contrib/codeAction/browser/codeActionMenu.js +8 -8
  37. package/esm/vs/editor/contrib/codeAction/browser/lightBulbWidget.js +9 -9
  38. package/esm/vs/editor/contrib/codelens/browser/codelensController.js +2 -2
  39. package/esm/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerCloseButton.js +1 -1
  40. package/esm/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerHeader.js +1 -1
  41. package/esm/vs/editor/contrib/colorPicker/browser/hoverColorPicker/hoverColorPickerParticipant.js +1 -1
  42. package/esm/vs/editor/contrib/colorPicker/browser/standaloneColorPicker/standaloneColorPickerActions.js +7 -7
  43. package/esm/vs/editor/contrib/comment/browser/comment.js +6 -6
  44. package/esm/vs/editor/contrib/contextmenu/browser/contextmenu.js +10 -10
  45. package/esm/vs/editor/contrib/cursorUndo/browser/cursorUndo.js +2 -2
  46. package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js +4 -4
  47. package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js +9 -9
  48. package/esm/vs/editor/contrib/dropOrPasteInto/browser/defaultProviders.js +8 -8
  49. package/esm/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController.js +3 -3
  50. package/esm/vs/editor/contrib/dropOrPasteInto/browser/postEditWidget.js +2 -2
  51. package/esm/vs/editor/contrib/editorState/browser/keybindingCancellation.js +1 -1
  52. package/esm/vs/editor/contrib/find/browser/findController.js +16 -16
  53. package/esm/vs/editor/contrib/find/browser/findWidget.js +26 -26
  54. package/esm/vs/editor/contrib/folding/browser/folding.js +20 -20
  55. package/esm/vs/editor/contrib/folding/browser/folding.js.map +1 -1
  56. package/esm/vs/editor/contrib/folding/browser/foldingDecorations.js +9 -9
  57. package/esm/vs/editor/contrib/fontZoom/browser/fontZoom.js +3 -3
  58. package/esm/vs/editor/contrib/format/browser/formatActions.js +2 -2
  59. package/esm/vs/editor/contrib/gotoError/browser/gotoError.js +8 -8
  60. package/esm/vs/editor/contrib/gotoError/browser/gotoErrorWidget.js +14 -14
  61. package/esm/vs/editor/contrib/gotoSymbol/browser/goToCommands.js +39 -39
  62. package/esm/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js +1 -1
  63. package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesController.js +3 -3
  64. package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesTree.js +3 -3
  65. package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget.js +3 -3
  66. package/esm/vs/editor/contrib/gotoSymbol/browser/referencesModel.js +8 -8
  67. package/esm/vs/editor/contrib/gotoSymbol/browser/symbolNavigation.js +3 -3
  68. package/esm/vs/editor/contrib/gpu/browser/gpuActions.js +4 -4
  69. package/esm/vs/editor/contrib/hover/browser/hoverActionIds.js +2 -2
  70. package/esm/vs/editor/contrib/hover/browser/hoverActions.js +24 -24
  71. package/esm/vs/editor/contrib/hover/browser/hoverCopyButton.js +2 -2
  72. package/esm/vs/editor/contrib/hover/browser/markdownHoverParticipant.js +9 -9
  73. package/esm/vs/editor/contrib/hover/browser/markerHoverParticipant.js +5 -5
  74. package/esm/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace.js +2 -2
  75. package/esm/vs/editor/contrib/indentation/browser/indentation.js +20 -20
  76. package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsHover.js +8 -8
  77. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/commands.js +21 -21
  78. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionContextKeys.js +13 -13
  79. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js +1 -1
  80. package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/hoverParticipant.js +2 -2
  81. package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/inlineCompletionsHintsWidget.js +5 -5
  82. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js +2 -1
  83. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js.map +1 -1
  84. package/esm/vs/editor/contrib/inlineCompletions/browser/model/renameSymbolProcessor.js +2 -2
  85. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorMenu.js +6 -6
  86. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js +7 -7
  87. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js.map +1 -1
  88. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsModel.js +1 -1
  89. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsModel.js.map +1 -1
  90. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsView.js +13 -11
  91. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsView.js.map +1 -1
  92. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsCustomView.js +5 -7
  93. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsCustomView.js.map +1 -1
  94. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsDeletionView.js +6 -5
  95. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsDeletionView.js.map +1 -1
  96. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsInsertionView.js +6 -5
  97. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsInsertionView.js.map +1 -1
  98. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsLineReplacementView.js +9 -7
  99. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsLineReplacementView.js.map +1 -1
  100. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsSideBySideView.js +14 -9
  101. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsSideBySideView.js.map +1 -1
  102. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsWordReplacementView.js +12 -10
  103. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsWordReplacementView.js.map +1 -1
  104. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/inlineEditsLongDistanceHint.js +5 -4
  105. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/inlineEditsLongDistanceHint.js.map +1 -1
  106. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/originalEditorInlineDiffView.js +2 -1
  107. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/originalEditorInlineDiffView.js.map +1 -1
  108. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/theme.js +40 -21
  109. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/theme.js.map +1 -1
  110. package/esm/vs/editor/contrib/insertFinalNewLine/browser/insertFinalNewLine.js +1 -1
  111. package/esm/vs/editor/contrib/lineSelection/browser/lineSelection.js +1 -1
  112. package/esm/vs/editor/contrib/linesOperations/browser/linesOperations.js +31 -31
  113. package/esm/vs/editor/contrib/linkedEditing/browser/linkedEditing.js +2 -2
  114. package/esm/vs/editor/contrib/links/browser/links.js +10 -10
  115. package/esm/vs/editor/contrib/message/browser/messageController.js +1 -1
  116. package/esm/vs/editor/contrib/multicursor/browser/multicursor.js +22 -22
  117. package/esm/vs/editor/contrib/parameterHints/browser/parameterHints.js +1 -1
  118. package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +4 -4
  119. package/esm/vs/editor/contrib/peekView/browser/peekView.js +18 -18
  120. package/esm/vs/editor/contrib/placeholderText/browser/placeholderText.contribution.js +1 -1
  121. package/esm/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js +11 -11
  122. package/esm/vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess.js +32 -32
  123. package/esm/vs/editor/contrib/readOnlyMessage/browser/contribution.js +2 -2
  124. package/esm/vs/editor/contrib/rename/browser/rename.js +11 -11
  125. package/esm/vs/editor/contrib/rename/browser/renameWidget.js +7 -7
  126. package/esm/vs/editor/contrib/smartSelect/browser/smartSelect.js +4 -4
  127. package/esm/vs/editor/contrib/snippet/browser/snippetController2.js +4 -4
  128. package/esm/vs/editor/contrib/snippet/browser/snippetVariables.js +4 -4
  129. package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollActions.js +11 -11
  130. package/esm/vs/editor/contrib/suggest/browser/suggest.js +9 -9
  131. package/esm/vs/editor/contrib/suggest/browser/suggestController.js +11 -11
  132. package/esm/vs/editor/contrib/suggest/browser/suggestWidget.js +17 -17
  133. package/esm/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js +2 -2
  134. package/esm/vs/editor/contrib/suggest/browser/suggestWidgetRenderer.js +2 -2
  135. package/esm/vs/editor/contrib/suggest/browser/wordContextKey.js +1 -1
  136. package/esm/vs/editor/contrib/symbolIcons/browser/symbolIcons.js +33 -33
  137. package/esm/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js +4 -4
  138. package/esm/vs/editor/contrib/tokenization/browser/tokenization.js +1 -1
  139. package/esm/vs/editor/contrib/unicodeHighlighter/browser/bannerController.js +1 -1
  140. package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +24 -24
  141. package/esm/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js +5 -5
  142. package/esm/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.js +9 -9
  143. package/esm/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js +3 -3
  144. package/esm/vs/editor/contrib/wordOperations/browser/wordOperations.js +3 -3
  145. package/esm/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js +62 -62
  146. package/esm/vs/platform/action/common/actionCommonCategories.js +6 -6
  147. package/esm/vs/platform/actionWidget/browser/actionList.js +4 -4
  148. package/esm/vs/platform/actionWidget/browser/actionWidget.js +7 -7
  149. package/esm/vs/platform/actions/browser/menuEntryActionViewItem.js +5 -5
  150. package/esm/vs/platform/actions/browser/toolbar.js +2 -2
  151. package/esm/vs/platform/actions/common/menuService.js +2 -2
  152. package/esm/vs/platform/configuration/common/configurationRegistry.js +10 -10
  153. package/esm/vs/platform/contextkey/browser/contextKeyService.js +1 -1
  154. package/esm/vs/platform/contextkey/common/contextkey.js +9 -9
  155. package/esm/vs/platform/contextkey/common/contextkeys.js +9 -9
  156. package/esm/vs/platform/contextkey/common/scanner.js +5 -5
  157. package/esm/vs/platform/history/browser/contextScopedHistoryWidget.js +1 -1
  158. package/esm/vs/platform/hover/browser/hoverWidget.js +1 -1
  159. package/esm/vs/platform/hover/browser/updatableHoverWidget.js +1 -1
  160. package/esm/vs/platform/keybinding/common/abstractKeybindingService.js +4 -4
  161. package/esm/vs/platform/list/browser/listService.js +27 -27
  162. package/esm/vs/platform/markers/common/markerService.js +2 -2
  163. package/esm/vs/platform/markers/common/markers.js +6 -6
  164. package/esm/vs/platform/quickinput/browser/commandsQuickAccess.js +8 -8
  165. package/esm/vs/platform/quickinput/browser/helpQuickAccess.js +1 -1
  166. package/esm/vs/platform/quickinput/browser/quickInput.js +13 -47
  167. package/esm/vs/platform/quickinput/browser/quickInput.js.map +1 -1
  168. package/esm/vs/platform/quickinput/browser/quickInputActions.js +5 -5
  169. package/esm/vs/platform/quickinput/browser/quickInputController.js +7 -6
  170. package/esm/vs/platform/quickinput/browser/quickInputController.js.map +1 -1
  171. package/esm/vs/platform/quickinput/browser/quickInputList.js +1 -1
  172. package/esm/vs/platform/quickinput/browser/quickInputUtils.js +1 -1
  173. package/esm/vs/platform/quickinput/browser/tree/quickInputTreeAccessibilityProvider.js +1 -1
  174. package/esm/vs/platform/quickinput/common/quickInput.js.map +1 -1
  175. package/esm/vs/platform/theme/common/colorUtils.js +2 -2
  176. package/esm/vs/platform/theme/common/colors/baseColors.js +18 -18
  177. package/esm/vs/platform/theme/common/colors/chartsColors.js +8 -8
  178. package/esm/vs/platform/theme/common/colors/editorColors.js +95 -95
  179. package/esm/vs/platform/theme/common/colors/inputColors.js +47 -47
  180. package/esm/vs/platform/theme/common/colors/listColors.js +36 -36
  181. package/esm/vs/platform/theme/common/colors/menuColors.js +7 -7
  182. package/esm/vs/platform/theme/common/colors/minimapColors.js +11 -11
  183. package/esm/vs/platform/theme/common/colors/miscColors.js +16 -16
  184. package/esm/vs/platform/theme/common/colors/quickpickColors.js +9 -9
  185. package/esm/vs/platform/theme/common/colors/searchColors.js +3 -3
  186. package/esm/vs/platform/theme/common/iconRegistry.js +6 -6
  187. package/esm/vs/platform/undoRedo/common/undoRedoService.js +20 -20
  188. package/esm/vs/platform/workspace/common/workspace.js +1 -1
  189. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/platform/quickinput/common/quickInput.ts","vs/platform/quickinput/common/quickInput.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAIhG,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AA8G9E,MAAM,CAAC,MAAM,WAAW,GAAa,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AAiIpE,MAAM,CAAN,IAAY,oBAgBX;AAhBD,WAAY,oBAAoB;IAE/B;;OAEG;IACH,+DAAQ,CAAA;IAER;;OAEG;IACH,qEAAO,CAAA;IAEP;;OAEG;IACH,iEAAK,CAAA;AACN,CAAC,EAhBW,oBAAoB,KAApB,oBAAoB,QAgB/B;AAuGD;;;GAGG;AACH,MAAM,CAAN,IAAY,cAiBX;AAjBD,WAAY,cAAc;IACzB;;OAEG;IACH,mDAAI,CAAA;IACJ;;OAEG;IACH,qDAAK,CAAA;IACL;;OAEG;IACH,uDAAM,CAAA;IACN;;OAEG;IACH,mDAAI,CAAA;AACL,CAAC,EAjBW,cAAc,KAAd,cAAc,QAiBzB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,cAqCX;AArCD,WAAY,cAAc;IACzB;;OAEG;IACH,qDAAS,CAAA;IACT;;OAEG;IACH,uDAAM,CAAA;IACN;;OAEG;IACH,mDAAI,CAAA;IACJ;;OAEG;IACH,mDAAI,CAAA;IACJ;;OAEG;IACH,2DAAQ,CAAA;IACR;;OAEG;IACH,2DAAQ,CAAA;IACR;;OAEG;IACH,mEAAY,CAAA;IACZ;;OAEG;IACH,qEAAa,CAAA;IACb;;OAEG;IACH,6EAAiB,CAAA;AAClB,CAAC,EArCW,cAAc,KAAd,cAAc,QAqCzB;AA6ND,MAAM,CAAN,IAAY,wBAgBX;AAhBD,WAAY,wBAAwB;IACnC;;OAEG;IACH,yEAAS,CAAA;IAET;;OAEG;IACH,2EAAU,CAAA;IAEV;;;OAGG;IACH,yEAAS,CAAA;AACV,CAAC,EAhBW,wBAAwB,KAAxB,wBAAwB,QAgBnC;AAqFD,MAAM,OAAO,2BAA2B;IAEvC,YAAoB,OAA2D;QAA3D,YAAO,GAAP,OAAO,CAAoD;IAAI,CAAC;CACpF;AAED,MAAM,CAAC,MAAM,2BAA2B,GAAG,IAAI,2BAA2B,EAAE,CAAC;AAE7E,YAAY;AAEZ,MAAM,CAAC,MAAM,kBAAkB,GAAG,eAAe,CAAqB,mBAAmB,CAAC,CAAC;AA2H3F,YAAY","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 { CancellationToken } from '../../../base/common/cancellation.js';\nimport { Event } from '../../../base/common/event.js';\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nimport { IQuickAccessController } from './quickAccess.js';\nimport { IMatch } from '../../../base/common/filters.js';\nimport { IItemAccessor } from '../../../base/common/fuzzyScorer.js';\nimport { ResolvedKeybinding } from '../../../base/common/keybindings.js';\nimport { IDisposable } from '../../../base/common/lifecycle.js';\nimport Severity from '../../../base/common/severity.js';\nimport { URI } from '../../../base/common/uri.js';\nimport { IMarkdownString } from '../../../base/common/htmlContent.js';\n\nexport interface IQuickItemHighlights {\n\tlabel?: IMatch[];\n\tdescription?: IMatch[];\n}\n\nexport interface IQuickPickItemHighlights extends IQuickItemHighlights {\n\tdetail?: IMatch[];\n}\n\nexport type QuickPickItem = IQuickPickSeparator | IQuickPickItem;\n\n/**\n * Base properties for a quick pick and quick tree item.\n */\nexport interface IQuickItem {\n\tid?: string;\n\tlabel: string;\n\tariaLabel?: string;\n\tdescription?: string;\n\t/**\n\t * Whether the item is displayed in italics.\n\t */\n\titalic?: boolean;\n\t/**\n\t * Whether the item is displayed with a strikethrough.\n\t */\n\tstrikethrough?: boolean;\n\t/**\n\t * Icon classes to be passed on as `IIconLabelValueOptions`\n\t * to the underlying `IconLabel` widget.\n\t */\n\ticonClasses?: readonly string[];\n\ticonPath?: { dark: URI; light?: URI };\n\t/**\n\t * Icon class to be assigned to the quick item container\n\t * directly.\n\t */\n\ticonClass?: string;\n\tbuttons?: readonly IQuickInputButton[];\n\t/**\n\t * Used when we're in multi-select mode. Renders a disabled checkbox.\n\t */\n\tdisabled?: boolean;\n}\n\n/**\n * Represents a quick pick item used in the quick pick UI.\n */\nexport interface IQuickPickItem extends IQuickItem {\n\t/**\n\t * The type of the quick pick item. Used to distinguish between 'item' and 'separator'\n\t */\n\ttype?: 'item';\n\t/**\n\t * The detail text of the quick pick item. Shown as the second line.\n\t */\n\tdetail?: string;\n\t/**\n\t * The tooltip for the quick pick item.\n\t */\n\ttooltip?: string | IMarkdownString;\n\thighlights?: IQuickPickItemHighlights;\n\t/**\n\t * Allows to show a keybinding next to the item to indicate\n\t * how the item can be triggered outside of the picker using\n\t * keyboard shortcut.\n\t */\n\tkeybinding?: ResolvedKeybinding;\n\t/**\n\t * Whether the item is picked by default when the Quick Pick is shown.\n\t */\n\tpicked?: boolean;\n\t/**\n\t * Whether the item is always shown in the Quick Pick regardless of filtering.\n\t */\n\talwaysShow?: boolean;\n\t/**\n\t * Defaults to true with `IQuickPick.canSelectMany`, can be false to disable picks for a single item\n\t */\n\tpickable?: boolean;\n}\n\nexport interface IQuickPickSeparator {\n\t/**\n\t * The type of the quick pick item. Used to distinguish between 'item' and 'separator'\n\t */\n\ttype: 'separator';\n\tid?: string;\n\tlabel?: string;\n\tdescription?: string;\n\tariaLabel?: string;\n\tbuttons?: readonly IQuickInputButton[];\n\ttooltip?: string | IMarkdownString;\n}\n\nexport interface IKeyMods {\n\treadonly ctrlCmd: boolean;\n\treadonly alt: boolean;\n}\n\nexport const NO_KEY_MODS: IKeyMods = { ctrlCmd: false, alt: false };\n\nexport interface IQuickNavigateConfiguration {\n\tkeybindings: readonly ResolvedKeybinding[];\n}\n\nexport interface IPickOptions<T extends IQuickPickItem> {\n\n\t/**\n\t * an optional string to show as the title of the quick input\n\t */\n\ttitle?: string;\n\n\t/**\n\t * the value to prefill in the input box\n\t */\n\tvalue?: string;\n\n\t/**\n\t * an optional string to show as placeholder in the input box to guide the user what she picks on\n\t */\n\tplaceHolder?: string;\n\n\t/**\n\t * the text to display underneath the input box\n\t */\n\tprompt?: string;\n\n\t/**\n\t * an optional flag to include the description when filtering the picks\n\t */\n\tmatchOnDescription?: boolean;\n\n\t/**\n\t * an optional flag to include the detail when filtering the picks\n\t */\n\tmatchOnDetail?: boolean;\n\n\t/**\n\t * an optional flag to filter the picks based on label. Defaults to true.\n\t */\n\tmatchOnLabel?: boolean;\n\n\t/**\n\t * an optional flag to sort the picks based by the label.\n\t */\n\tsortByLabel?: boolean;\n\n\t/**\n\t * an optional flag to not close the picker on focus lost\n\t */\n\tignoreFocusLost?: boolean;\n\n\t/**\n\t * an optional flag to make this picker multi-select\n\t */\n\tcanPickMany?: boolean;\n\n\t/**\n\t * enables quick navigate in the picker to open an element without typing\n\t */\n\tquickNavigate?: IQuickNavigateConfiguration;\n\n\t/**\n\t * Hides the input box from the picker UI. This is typically used\n\t * in combination with quick-navigation where no search UI should\n\t * be presented.\n\t */\n\thideInput?: boolean;\n\n\t/**\n\t * a context key to set when this picker is active\n\t */\n\tcontextKey?: string;\n\n\t/**\n\t * an optional property for the item to focus initially.\n\t */\n\tactiveItem?: Promise<T> | T;\n\n\tonKeyMods?: (keyMods: IKeyMods) => void;\n\tonDidFocus?: (entry: T) => void;\n\tonDidTriggerItemButton?: (context: IQuickPickItemButtonContext<T>) => void;\n\tonDidTriggerSeparatorButton?: (context: IQuickPickSeparatorButtonEvent) => void;\n}\n\nexport interface IInputOptions {\n\n\t/**\n\t * an optional string to show as the title of the quick input\n\t */\n\ttitle?: string;\n\n\t/**\n\t * the value to prefill in the input box\n\t */\n\tvalue?: string;\n\n\t/**\n\t * the selection of value, default to the whole prefilled value\n\t */\n\tvalueSelection?: readonly [number, number];\n\n\t/**\n\t * the text to display underneath the input box\n\t */\n\tprompt?: string;\n\n\t/**\n\t * an optional string to show as placeholder in the input box to guide the user what to type\n\t */\n\tplaceHolder?: string;\n\n\t/**\n\t * Controls if a password input is shown. Password input hides the typed text.\n\t */\n\tpassword?: boolean;\n\n\t/**\n\t * an optional flag to not close the input on focus lost\n\t */\n\tignoreFocusLost?: boolean;\n\n\t/**\n\t * an optional function that is used to validate user input.\n\t */\n\tvalidateInput?: (input: string) => Promise<string | null | undefined | { content: string; severity: Severity }>;\n}\n\nexport enum QuickInputHideReason {\n\n\t/**\n\t * Focus moved away from the quick input.\n\t */\n\tBlur = 1,\n\n\t/**\n\t * An explicit user gesture, e.g. pressing Escape key.\n\t */\n\tGesture,\n\n\t/**\n\t * Anything else.\n\t */\n\tOther\n}\n\nexport interface IQuickInputHideEvent {\n\treason: QuickInputHideReason;\n}\n\n/**\n * A collection of the different types of QuickInput\n */\nexport const enum QuickInputType {\n\tQuickPick = 'quickPick',\n\tInputBox = 'inputBox',\n\tQuickWidget = 'quickWidget',\n\tQuickTree = 'quickTree'\n}\n\n/**\n * Represents a quick input control that allows users to make selections or provide input quickly.\n */\nexport interface IQuickInput extends IDisposable {\n\n\t/**\n\t * The type of the quick input.\n\t */\n\treadonly type: QuickInputType;\n\n\t/**\n\t * An event that is fired when the quick input is hidden.\n\t */\n\treadonly onDidHide: Event<IQuickInputHideEvent>;\n\n\t/**\n\t * The title of the quick input.\n\t */\n\ttitle: string | undefined;\n\n\t/**\n\t * The buttons displayed in the quick input titlebar.\n\t */\n\tbuttons: ReadonlyArray<IQuickInputButton>;\n\n\t/**\n\t * An event that is fired when a button in the quick input is triggered.\n\t */\n\treadonly onDidTriggerButton: Event<IQuickInputButton>;\n\n\t/**\n\t * The context key associated with the quick input.\n\t */\n\tcontextKey: string | undefined;\n\n\t/**\n\t * Indicates whether the quick input is busy. Renders a progress bar if true.\n\t */\n\tbusy: boolean;\n\n\t/**\n\t * Indicates whether the quick input should be hidden when it loses focus.\n\t */\n\tignoreFocusOut: boolean;\n\n\t/**\n\t * Shows the quick input.\n\t */\n\tshow(): void;\n\n\t/**\n\t * Hides the quick input.\n\t */\n\thide(): void;\n\n\t/**\n\t * Notifies that the quick input has been hidden.\n\t * @param reason The reason why the quick input was hidden.\n\t */\n\tdidHide(reason?: QuickInputHideReason): void;\n\n\t/**\n\t * Notifies that the quick input will be hidden.\n\t * @param reason The reason why the quick input will be hidden.\n\t */\n\twillHide(reason?: QuickInputHideReason): void;\n}\n\nexport interface IQuickPickWillAcceptEvent {\n\n\t/**\n\t * Allows to disable the default accept handling\n\t * of the picker. If `veto` is called, the picker\n\t * will not trigger the `onDidAccept` event.\n\t */\n\tveto(): void;\n}\n\nexport interface IQuickPickDidAcceptEvent {\n\n\t/**\n\t * Signals if the picker item is to be accepted\n\t * in the background while keeping the picker open.\n\t */\n\tinBackground: boolean;\n}\n\n/**\n * Represents the activation behavior for items in a quick input. This means which item will be\n * \"active\" (aka focused).\n */\nexport enum ItemActivation {\n\t/**\n\t * No item will be active.\n\t */\n\tNONE,\n\t/**\n\t * First item will be active.\n\t */\n\tFIRST,\n\t/**\n\t * Second item will be active.\n\t */\n\tSECOND,\n\t/**\n\t * Last item will be active.\n\t */\n\tLAST\n}\n\n/**\n * Represents the focus options for a quick pick.\n */\nexport enum QuickPickFocus {\n\t/**\n\t * Focus the first item in the list.\n\t */\n\tFirst = 1,\n\t/**\n\t * Focus the second item in the list.\n\t */\n\tSecond,\n\t/**\n\t * Focus the last item in the list.\n\t */\n\tLast,\n\t/**\n\t * Focus the next item in the list.\n\t */\n\tNext,\n\t/**\n\t * Focus the previous item in the list.\n\t */\n\tPrevious,\n\t/**\n\t * Focus the next page in the list.\n\t */\n\tNextPage,\n\t/**\n\t * Focus the previous page in the list.\n\t */\n\tPreviousPage,\n\t/**\n\t * Focus the first item under the next separator.\n\t */\n\tNextSeparator,\n\t/**\n\t * Focus the first item under the current separator.\n\t */\n\tPreviousSeparator\n}\n\n/**\n * Represents a quick pick control that allows the user to select an item from a list of options.\n */\nexport interface IQuickPick<T extends IQuickPickItem, O extends { useSeparators: boolean } = { useSeparators: false }> extends IQuickInput {\n\n\t/**\n\t * The current value of the quick pick input.\n\t */\n\tvalue: string;\n\n\t/**\n\t * A method that allows to massage the value used for filtering, e.g, to remove certain parts.\n\t * @param value The value to be filtered.\n\t * @returns The filtered value.\n\t */\n\tfilterValue: (value: string) => string;\n\n\t/**\n\t * The ARIA label for the quick pick input.\n\t */\n\tariaLabel: string | undefined;\n\n\t/**\n\t * The placeholder text for the quick pick input.\n\t */\n\tplaceholder: string | undefined;\n\n\t/**\n\t * Text shown below the quick pick input.\n\t */\n\tprompt: string | undefined;\n\n\t/**\n\t * An event that is fired when the value of the quick pick input changes.\n\t */\n\treadonly onDidChangeValue: Event<string>;\n\n\t/**\n\t * An event that is fired when the quick pick is about to accept the selected item.\n\t */\n\treadonly onWillAccept: Event<IQuickPickWillAcceptEvent>;\n\n\t/**\n\t * An event that is fired when the quick pick has accepted the selected item.\n\t */\n\treadonly onDidAccept: Event<IQuickPickDidAcceptEvent>;\n\n\t/**\n\t * If enabled, the `onDidAccept` event will be fired when pressing the arrow-right key to accept the selected item without closing the picker.\n\t */\n\tcanAcceptInBackground: boolean;\n\n\t/**\n\t * An event that is fired when an item button is triggered.\n\t */\n\treadonly onDidTriggerItemButton: Event<IQuickPickItemButtonEvent<T>>;\n\n\t/**\n\t * An event that is fired when a separator button is triggered.\n\t */\n\treadonly onDidTriggerSeparatorButton: Event<IQuickPickSeparatorButtonEvent>;\n\n\t/**\n\t * The items to be displayed in the quick pick.\n\t */\n\titems: O extends { useSeparators: true } ? ReadonlyArray<T | IQuickPickSeparator> : ReadonlyArray<T>;\n\n\t/**\n\t * Whether multiple items can be selected. If so, checkboxes will be rendered.\n\t */\n\tcanSelectMany: boolean;\n\n\t/**\n\t * Whether to match on the description of the items.\n\t */\n\tmatchOnDescription: boolean;\n\n\t/**\n\t * Whether to match on the detail of the items.\n\t */\n\tmatchOnDetail: boolean;\n\n\t/**\n\t * Whether to match on the label of the items.\n\t */\n\tmatchOnLabel: boolean;\n\n\t/**\n\t * Whether to sort the items by label.\n\t */\n\tsortByLabel: boolean;\n\n\t/**\n\t * Whether to keep the scroll position when the quick pick input is updated.\n\t */\n\tkeepScrollPosition: boolean;\n\n\t/**\n\t * The configuration for quick navigation.\n\t */\n\tquickNavigate: IQuickNavigateConfiguration | undefined;\n\n\t/**\n\t * The currently active items.\n\t */\n\tactiveItems: ReadonlyArray<T>;\n\n\t/**\n\t * An event that is fired when the active items change.\n\t */\n\treadonly onDidChangeActive: Event<T[]>;\n\n\t/**\n\t * The item activation behavior for the next time `items` is set. Item activation means which\n\t * item is \"active\" (aka focused) when the quick pick is opened or when `items` is set.\n\t */\n\titemActivation: ItemActivation;\n\n\t/**\n\t * The currently selected items.\n\t */\n\tselectedItems: ReadonlyArray<T>;\n\n\t/**\n\t * An event that is fired when the selected items change.\n\t */\n\treadonly onDidChangeSelection: Event<T[]>;\n\n\t/**\n\t * The key modifiers.\n\t */\n\treadonly keyMods: IKeyMods;\n\n\t/**\n\t * The selection range for the value in the input.\n\t */\n\tvalueSelection: Readonly<[number, number]> | undefined;\n\n\t/**\n\t * Hides the input box from the picker UI. This is typically used in combination with quick-navigation where no search UI should be presented.\n\t */\n\thideInput: boolean;\n\n\t/**\n\t * Focus a particular item in the list. Used internally for keyboard navigation.\n\t * @param focus The focus behavior.\n\t */\n\tfocus(focus: QuickPickFocus): void;\n\n\t/**\n\t * Programmatically accepts an item. Used internally for keyboard navigation.\n\t * @param inBackground Whether you are accepting an item in the background and keeping the picker open.\n\t */\n\taccept(inBackground?: boolean): void;\n}\n\n/**\n * Represents a toggle for quick input.\n */\nexport interface IQuickInputToggle {\n}\n\n/**\n * Represents an input box in a quick input dialog.\n */\nexport interface IInputBox extends IQuickInput {\n\n\t/**\n\t * Value shown in the input box.\n\t */\n\tvalue: string;\n\n\t/**\n\t * Provide start and end values to be selected in the input box.\n\t */\n\tvalueSelection: Readonly<[number, number]> | undefined;\n\n\t/**\n\t * Value shown as example for input.\n\t */\n\tplaceholder: string | undefined;\n\n\t/**\n\t * Determines if the input value should be hidden while typing.\n\t */\n\tpassword: boolean;\n\n\t/**\n\t * Event called when the input value changes.\n\t */\n\treadonly onDidChangeValue: Event<string>;\n\n\t/**\n\t * Event called when the user submits the input.\n\t */\n\treadonly onDidAccept: Event<void>;\n\n\t/**\n\t * Text show below the input box.\n\t */\n\tprompt: string | undefined;\n\n\t/**\n\t * An optional validation message indicating a problem with the current input value.\n\t * Returning undefined clears the validation message.\n\t */\n\tvalidationMessage: string | undefined;\n\n\t/**\n\t * Severity of the input validation message.\n\t */\n\tseverity: Severity;\n\n\t/**\n\t * Programmatically accepts an item. Used internally for keyboard navigation.\n\t */\n\taccept(): void;\n}\n\nexport enum QuickInputButtonLocation {\n\t/**\n\t * In the title bar.\n\t */\n\tTitle = 1,\n\n\t/**\n\t * To the right of the input box.\n\t */\n\tInline = 2,\n\n\t/**\n\t * At the far end inside the input box.\n\t * Used by the public API to create toggles.\n\t */\n\tInput = 3,\n}\n\n/**\n * Represents a button in the quick input UI.\n */\nexport interface IQuickInputButton {\n\t/**\n\t * The path to the icon for the button.\n\t * Either `iconPath` or `iconClass` is required.\n\t */\n\ticonPath?: { dark: URI; light?: URI };\n\t/**\n\t * The CSS class for the icon of the button.\n\t * Either `iconPath` or `iconClass` is required.\n\t */\n\ticonClass?: string;\n\t/**\n\t * The tooltip text for the button.\n\t */\n\ttooltip?: string;\n\t/**\n\t * Whether to always show the button.\n\t * By default, buttons are only visible when hovering over them with the mouse.\n\t */\n\talwaysVisible?: boolean;\n\t/**\n\t * Where the button should be rendered. The default is {@link QuickInputButtonLocation.Title}.\n\t * @note This property is ignored if the button was added to a QuickPickItem.\n\t */\n\tlocation?: QuickInputButtonLocation;\n\t/**\n\t * When present, indicates that the button is a toggle button that can be checked or unchecked.\n\t * The `checked` property indicates the current state of the toggle and will be updated\n\t * when the button is clicked.\n\t */\n\treadonly toggle?: { checked: boolean };\n}\n\n/**\n * Represents an event that occurs when a button associated with a quick pick item is clicked.\n * @template T - The type of the quick pick item.\n */\nexport interface IQuickPickItemButtonEvent<T extends IQuickPickItem> {\n\t/**\n\t * The button that was clicked.\n\t */\n\tbutton: IQuickInputButton;\n\t/**\n\t * The quick pick item associated with the button.\n\t */\n\titem: T;\n}\n\n/**\n * Represents an event that occurs when a separator button is clicked in a quick pick.\n */\nexport interface IQuickPickSeparatorButtonEvent {\n\t/**\n\t * The button that was clicked.\n\t */\n\tbutton: IQuickInputButton;\n\t/**\n\t * The separator associated with the button.\n\t */\n\tseparator: IQuickPickSeparator;\n}\n\n/**\n * Represents a context for a button associated with a quick pick item.\n * @template T - The type of the quick pick item.\n */\nexport interface IQuickPickItemButtonContext<T extends IQuickPickItem> extends IQuickPickItemButtonEvent<T> {\n\t/**\n\t * Removes the associated item from the quick pick.\n\t */\n\tremoveItem(): void;\n}\n\nexport type QuickPickInput<T = IQuickPickItem> = T | IQuickPickSeparator;\n\n\n//#region Fuzzy Scorer Support\n\nexport type IQuickPickItemWithResource = IQuickPickItem & { resource?: URI };\n\nexport class QuickPickItemScorerAccessor implements IItemAccessor<IQuickPickItemWithResource> {\n\n\tconstructor(private options?: { skipDescription?: boolean; skipPath?: boolean }) { }\n}\n\nexport const quickPickItemScorerAccessor = new QuickPickItemScorerAccessor();\n\n//#endregion\n\nexport const IQuickInputService = createDecorator<IQuickInputService>('quickInputService');\n\nexport type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;\n\nexport interface IQuickInputService {\n\n\treadonly _serviceBrand: undefined;\n\n\t/**\n\t * Provides access to the quick access providers.\n\t */\n\treadonly quickAccess: IQuickAccessController;\n\n\t/**\n\t * Opens the quick input box for selecting items and returns a promise\n\t * with the user selected item(s) if any.\n\t */\n\tpick<T extends IQuickPickItem>(picks: Promise<QuickPickInput<T>[]> | QuickPickInput<T>[], options?: IPickOptions<T> & { canPickMany: true }, token?: CancellationToken): Promise<T[] | undefined>;\n\tpick<T extends IQuickPickItem>(picks: Promise<QuickPickInput<T>[]> | QuickPickInput<T>[], options?: IPickOptions<T> & { canPickMany: false }, token?: CancellationToken): Promise<T | undefined>;\n\tpick<T extends IQuickPickItem>(picks: Promise<QuickPickInput<T>[]> | QuickPickInput<T>[], options?: Omit<IPickOptions<T>, 'canPickMany'>, token?: CancellationToken): Promise<T | undefined>;\n\n\t/**\n\t * Opens the quick input box for text input and returns a promise with the user typed value if any.\n\t */\n\tinput(options?: IInputOptions, token?: CancellationToken): Promise<string | undefined>;\n\n\t/**\n\t * Provides raw access to the quick pick controller.\n\t */\n\tcreateQuickPick<T extends IQuickPickItem>(options: { useSeparators: true }): IQuickPick<T, { useSeparators: true }>;\n\tcreateQuickPick<T extends IQuickPickItem>(options?: { useSeparators: boolean }): IQuickPick<T, { useSeparators: false }>;\n\n\t/**\n\t * Provides raw access to the input box controller.\n\t */\n\tcreateInputBox(): IInputBox;\n\n\t/**\n\t * Toggles hover for the current quick input item\n\t */\n\ttoggleHover(): void;\n\n\t/**\n\t * The current quick pick that is visible. Undefined if none is open.\n\t */\n\tcurrentQuickInput: IQuickInput | undefined;\n}\n\n//#region Quick Tree\n\n/**\n * Represents a quick tree control that displays hierarchical data with checkboxes.\n */\nexport interface IQuickTree<T extends IQuickTreeItem> extends IQuickInput {\n\n\t/**\n\t * Focus a particular item in the list. Used internally for keyboard navigation.\n\t * @param focus The focus behavior.\n\t */\n\tfocus(focus: QuickPickFocus): void;\n\n\t/**\n\t * Programmatically accepts an item. Used internally for keyboard navigation.\n\t * @param inBackground Whether you are accepting an item in the background and keeping the picker open.\n\t */\n\taccept(inBackground?: boolean): void;\n}\n\n/**\n * Represents a tree item in the quick tree.\n */\nexport interface IQuickTreeItem extends IQuickItem {\n\t/**\n\t * The checked state of the item. Can be true, false, or 'mixed' for tri-state.\n\t * When canSelectMany is false, this is ignored and the item is treated as a single selection.\n\t * When canSelectMany is true, this indicates the checkbox state of the item.\n\t * If undefined, the item is unchecked by default.\n\t */\n\tchecked?: boolean | 'mixed';\n\n\t/**\n\t * The children of this tree item.\n\t */\n\tchildren?: readonly IQuickTreeItem[];\n\n\t/**\n\t * Defaults to true, can be false to disable picks for a single item.\n\t * When false, the item is not selectable and does not respond to mouse/keyboard activation.\n\t */\n\tpickable?: boolean;\n}\n\n/**\n * Represents an event that occurs when the checkbox state of a tree item changes.\n * @template T - The type of the tree item.\n */\nexport interface IQuickTreeCheckboxEvent<T extends IQuickTreeItem> {\n\t/**\n\t * The tree item whose checkbox state changed.\n\t */\n\titem: T;\n\n\t/**\n\t * The new checked state.\n\t */\n\tchecked: boolean | 'mixed';\n}\n\n/**\n * Represents an event that occurs when a button associated with a quick tree item is clicked.\n * @template T - The type of the quick tree item.\n */\nexport interface IQuickTreeItemButtonEvent<T extends IQuickTreeItem> {\n\t/**\n\t * The button that was clicked.\n\t */\n\tbutton: IQuickInputButton;\n\t/**\n\t * The quick tree item associated with the button.\n\t */\n\titem: T;\n}\n\n//#endregion\n","/*---------------------------------------------------------------------------------------------\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 { CancellationToken } from '../../../base/common/cancellation.js';\nimport { Event } from '../../../base/common/event.js';\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nimport { IQuickAccessController } from './quickAccess.js';\nimport { IMatch } from '../../../base/common/filters.js';\nimport { IItemAccessor } from '../../../base/common/fuzzyScorer.js';\nimport { ResolvedKeybinding } from '../../../base/common/keybindings.js';\nimport { IDisposable } from '../../../base/common/lifecycle.js';\nimport Severity from '../../../base/common/severity.js';\nimport { URI } from '../../../base/common/uri.js';\nimport { IMarkdownString } from '../../../base/common/htmlContent.js';\n\nexport interface IQuickItemHighlights {\n\tlabel?: IMatch[];\n\tdescription?: IMatch[];\n}\n\nexport interface IQuickPickItemHighlights extends IQuickItemHighlights {\n\tdetail?: IMatch[];\n}\n\nexport type QuickPickItem = IQuickPickSeparator | IQuickPickItem;\n\n/**\n * Base properties for a quick pick and quick tree item.\n */\nexport interface IQuickItem {\n\tid?: string;\n\tlabel: string;\n\tariaLabel?: string;\n\tdescription?: string;\n\t/**\n\t * Whether the item is displayed in italics.\n\t */\n\titalic?: boolean;\n\t/**\n\t * Whether the item is displayed with a strikethrough.\n\t */\n\tstrikethrough?: boolean;\n\t/**\n\t * Icon classes to be passed on as `IIconLabelValueOptions`\n\t * to the underlying `IconLabel` widget.\n\t */\n\ticonClasses?: readonly string[];\n\ticonPath?: { dark: URI; light?: URI };\n\t/**\n\t * Icon class to be assigned to the quick item container\n\t * directly.\n\t */\n\ticonClass?: string;\n\tbuttons?: readonly IQuickInputButton[];\n\t/**\n\t * Used when we're in multi-select mode. Renders a disabled checkbox.\n\t */\n\tdisabled?: boolean;\n}\n\n/**\n * Represents a quick pick item used in the quick pick UI.\n */\nexport interface IQuickPickItem extends IQuickItem {\n\t/**\n\t * The type of the quick pick item. Used to distinguish between 'item' and 'separator'\n\t */\n\ttype?: 'item';\n\t/**\n\t * The detail text of the quick pick item. Shown as the second line.\n\t */\n\tdetail?: string;\n\t/**\n\t * The tooltip for the quick pick item.\n\t */\n\ttooltip?: string | IMarkdownString;\n\thighlights?: IQuickPickItemHighlights;\n\t/**\n\t * Allows to show a keybinding next to the item to indicate\n\t * how the item can be triggered outside of the picker using\n\t * keyboard shortcut.\n\t */\n\tkeybinding?: ResolvedKeybinding;\n\t/**\n\t * Whether the item is picked by default when the Quick Pick is shown.\n\t */\n\tpicked?: boolean;\n\t/**\n\t * Whether the item is always shown in the Quick Pick regardless of filtering.\n\t */\n\talwaysShow?: boolean;\n\t/**\n\t * Defaults to true with `IQuickPick.canSelectMany`, can be false to disable picks for a single item\n\t */\n\tpickable?: boolean;\n}\n\nexport interface IQuickPickSeparator {\n\t/**\n\t * The type of the quick pick item. Used to distinguish between 'item' and 'separator'\n\t */\n\ttype: 'separator';\n\tid?: string;\n\tlabel?: string;\n\tdescription?: string;\n\tariaLabel?: string;\n\tbuttons?: readonly IQuickInputButton[];\n\ttooltip?: string | IMarkdownString;\n}\n\nexport interface IKeyMods {\n\treadonly ctrlCmd: boolean;\n\treadonly alt: boolean;\n}\n\nexport const NO_KEY_MODS: IKeyMods = { ctrlCmd: false, alt: false };\n\nexport interface IQuickNavigateConfiguration {\n\tkeybindings: readonly ResolvedKeybinding[];\n}\n\nexport interface IPickOptions<T extends IQuickPickItem> {\n\n\t/**\n\t * an optional string to show as the title of the quick input\n\t */\n\ttitle?: string;\n\n\t/**\n\t * the value to prefill in the input box\n\t */\n\tvalue?: string;\n\n\t/**\n\t * an optional string to show as placeholder in the input box to guide the user what she picks on\n\t */\n\tplaceHolder?: string;\n\n\t/**\n\t * the text to display underneath the input box\n\t */\n\tprompt?: string;\n\n\t/**\n\t * an optional flag to include the description when filtering the picks\n\t */\n\tmatchOnDescription?: boolean;\n\n\t/**\n\t * an optional flag to include the detail when filtering the picks\n\t */\n\tmatchOnDetail?: boolean;\n\n\t/**\n\t * an optional flag to filter the picks based on label. Defaults to true.\n\t */\n\tmatchOnLabel?: boolean;\n\n\t/**\n\t * an optional flag to sort the picks based by the label.\n\t */\n\tsortByLabel?: boolean;\n\n\t/**\n\t * an optional flag to not close the picker on focus lost\n\t */\n\tignoreFocusLost?: boolean;\n\n\t/**\n\t * an optional flag to make this picker multi-select\n\t */\n\tcanPickMany?: boolean;\n\n\t/**\n\t * enables quick navigate in the picker to open an element without typing\n\t */\n\tquickNavigate?: IQuickNavigateConfiguration;\n\n\t/**\n\t * Hides the input box from the picker UI. This is typically used\n\t * in combination with quick-navigation where no search UI should\n\t * be presented.\n\t */\n\thideInput?: boolean;\n\n\t/**\n\t * a context key to set when this picker is active\n\t */\n\tcontextKey?: string;\n\n\t/**\n\t * an optional property for the item to focus initially.\n\t */\n\tactiveItem?: Promise<T> | T;\n\n\tonKeyMods?: (keyMods: IKeyMods) => void;\n\tonDidFocus?: (entry: T) => void;\n\tonDidTriggerItemButton?: (context: IQuickPickItemButtonContext<T>) => void;\n\tonDidTriggerSeparatorButton?: (context: IQuickPickSeparatorButtonEvent) => void;\n}\n\nexport interface IInputOptions {\n\n\t/**\n\t * an optional string to show as the title of the quick input\n\t */\n\ttitle?: string;\n\n\t/**\n\t * the value to prefill in the input box\n\t */\n\tvalue?: string;\n\n\t/**\n\t * the selection of value, default to the whole prefilled value\n\t */\n\tvalueSelection?: readonly [number, number];\n\n\t/**\n\t * the text to display underneath the input box\n\t */\n\tprompt?: string;\n\n\t/**\n\t * an optional string to show as placeholder in the input box to guide the user what to type\n\t */\n\tplaceHolder?: string;\n\n\t/**\n\t * Controls if a password input is shown. Password input hides the typed text.\n\t */\n\tpassword?: boolean;\n\n\t/**\n\t * an optional flag to not close the input on focus lost\n\t */\n\tignoreFocusLost?: boolean;\n\n\t/**\n\t * an optional function that is used to validate user input.\n\t */\n\tvalidateInput?: (input: string) => Promise<string | null | undefined | { content: string; severity: Severity }>;\n}\n\nexport enum QuickInputHideReason {\n\n\t/**\n\t * Focus moved away from the quick input.\n\t */\n\tBlur = 1,\n\n\t/**\n\t * An explicit user gesture, e.g. pressing Escape key.\n\t */\n\tGesture,\n\n\t/**\n\t * Anything else.\n\t */\n\tOther\n}\n\nexport interface IQuickInputHideEvent {\n\treason: QuickInputHideReason;\n}\n\n/**\n * A collection of the different types of QuickInput\n */\nexport const enum QuickInputType {\n\tQuickPick = 'quickPick',\n\tInputBox = 'inputBox',\n\tQuickWidget = 'quickWidget',\n\tQuickTree = 'quickTree'\n}\n\n/**\n * Represents a quick input control that allows users to make selections or provide input quickly.\n */\nexport interface IQuickInput extends IDisposable {\n\n\t/**\n\t * The type of the quick input.\n\t */\n\treadonly type: QuickInputType;\n\n\t/**\n\t * An event that is fired when the quick input is hidden.\n\t */\n\treadonly onDidHide: Event<IQuickInputHideEvent>;\n\n\t/**\n\t * The title of the quick input.\n\t */\n\ttitle: string | undefined;\n\n\t/**\n\t * The buttons displayed in the quick input titlebar.\n\t */\n\tbuttons: ReadonlyArray<IQuickInputButton>;\n\n\t/**\n\t * An event that is fired when a button in the quick input is triggered.\n\t */\n\treadonly onDidTriggerButton: Event<IQuickInputButton>;\n\n\t/**\n\t * The context key associated with the quick input.\n\t */\n\tcontextKey: string | undefined;\n\n\t/**\n\t * Indicates whether the quick input is busy. Renders a progress bar if true.\n\t */\n\tbusy: boolean;\n\n\t/**\n\t * Indicates whether the quick input should be hidden when it loses focus.\n\t */\n\tignoreFocusOut: boolean;\n\n\t/**\n\t * Shows the quick input.\n\t */\n\tshow(): void;\n\n\t/**\n\t * Hides the quick input.\n\t */\n\thide(): void;\n\n\t/**\n\t * Notifies that the quick input has been hidden.\n\t * @param reason The reason why the quick input was hidden.\n\t */\n\tdidHide(reason?: QuickInputHideReason): void;\n\n\t/**\n\t * Notifies that the quick input will be hidden.\n\t * @param reason The reason why the quick input will be hidden.\n\t */\n\twillHide(reason?: QuickInputHideReason): void;\n}\n\nexport interface IQuickPickWillAcceptEvent {\n\n\t/**\n\t * Allows to disable the default accept handling\n\t * of the picker. If `veto` is called, the picker\n\t * will not trigger the `onDidAccept` event.\n\t */\n\tveto(): void;\n}\n\nexport interface IQuickPickDidAcceptEvent {\n\n\t/**\n\t * Signals if the picker item is to be accepted\n\t * in the background while keeping the picker open.\n\t */\n\tinBackground: boolean;\n}\n\n/**\n * Represents the activation behavior for items in a quick input. This means which item will be\n * \"active\" (aka focused).\n */\nexport enum ItemActivation {\n\t/**\n\t * No item will be active.\n\t */\n\tNONE,\n\t/**\n\t * First item will be active.\n\t */\n\tFIRST,\n\t/**\n\t * Second item will be active.\n\t */\n\tSECOND,\n\t/**\n\t * Last item will be active.\n\t */\n\tLAST\n}\n\n/**\n * Represents the focus options for a quick pick.\n */\nexport enum QuickPickFocus {\n\t/**\n\t * Focus the first item in the list.\n\t */\n\tFirst = 1,\n\t/**\n\t * Focus the second item in the list.\n\t */\n\tSecond,\n\t/**\n\t * Focus the last item in the list.\n\t */\n\tLast,\n\t/**\n\t * Focus the next item in the list.\n\t */\n\tNext,\n\t/**\n\t * Focus the previous item in the list.\n\t */\n\tPrevious,\n\t/**\n\t * Focus the next page in the list.\n\t */\n\tNextPage,\n\t/**\n\t * Focus the previous page in the list.\n\t */\n\tPreviousPage,\n\t/**\n\t * Focus the first item under the next separator.\n\t */\n\tNextSeparator,\n\t/**\n\t * Focus the first item under the current separator.\n\t */\n\tPreviousSeparator\n}\n\n/**\n * Represents a quick pick control that allows the user to select an item from a list of options.\n */\nexport interface IQuickPick<T extends IQuickPickItem, O extends { useSeparators: boolean } = { useSeparators: false }> extends IQuickInput {\n\n\t/**\n\t * The current value of the quick pick input.\n\t */\n\tvalue: string;\n\n\t/**\n\t * A method that allows to massage the value used for filtering, e.g, to remove certain parts.\n\t * @param value The value to be filtered.\n\t * @returns The filtered value.\n\t */\n\tfilterValue: (value: string) => string;\n\n\t/**\n\t * The ARIA label for the quick pick input.\n\t */\n\tariaLabel: string | undefined;\n\n\t/**\n\t * The placeholder text for the quick pick input.\n\t */\n\tplaceholder: string | undefined;\n\n\t/**\n\t * Text shown below the quick pick input.\n\t */\n\tprompt: string | undefined;\n\n\t/**\n\t * An event that is fired when the value of the quick pick input changes.\n\t */\n\treadonly onDidChangeValue: Event<string>;\n\n\t/**\n\t * An event that is fired when the quick pick is about to accept the selected item.\n\t */\n\treadonly onWillAccept: Event<IQuickPickWillAcceptEvent>;\n\n\t/**\n\t * An event that is fired when the quick pick has accepted the selected item.\n\t */\n\treadonly onDidAccept: Event<IQuickPickDidAcceptEvent>;\n\n\t/**\n\t * If enabled, the `onDidAccept` event will be fired when pressing the arrow-right key to accept the selected item without closing the picker.\n\t */\n\tcanAcceptInBackground: boolean;\n\n\t/**\n\t * An event that is fired when an item button is triggered.\n\t */\n\treadonly onDidTriggerItemButton: Event<IQuickPickItemButtonEvent<T>>;\n\n\t/**\n\t * An event that is fired when a separator button is triggered.\n\t */\n\treadonly onDidTriggerSeparatorButton: Event<IQuickPickSeparatorButtonEvent>;\n\n\t/**\n\t * The items to be displayed in the quick pick.\n\t */\n\titems: O extends { useSeparators: true } ? ReadonlyArray<T | IQuickPickSeparator> : ReadonlyArray<T>;\n\n\t/**\n\t * Whether multiple items can be selected. If so, checkboxes will be rendered.\n\t */\n\tcanSelectMany: boolean;\n\n\t/**\n\t * Whether to match on the description of the items.\n\t */\n\tmatchOnDescription: boolean;\n\n\t/**\n\t * Whether to match on the detail of the items.\n\t */\n\tmatchOnDetail: boolean;\n\n\t/**\n\t * Whether to match on the label of the items.\n\t */\n\tmatchOnLabel: boolean;\n\n\t/**\n\t * Whether to sort the items by label.\n\t */\n\tsortByLabel: boolean;\n\n\t/**\n\t * Whether to keep the scroll position when the quick pick input is updated.\n\t */\n\tkeepScrollPosition: boolean;\n\n\t/**\n\t * The configuration for quick navigation.\n\t */\n\tquickNavigate: IQuickNavigateConfiguration | undefined;\n\n\t/**\n\t * The currently active items.\n\t */\n\tactiveItems: ReadonlyArray<T>;\n\n\t/**\n\t * An event that is fired when the active items change.\n\t */\n\treadonly onDidChangeActive: Event<T[]>;\n\n\t/**\n\t * The item activation behavior for the next time `items` is set. Item activation means which\n\t * item is \"active\" (aka focused) when the quick pick is opened or when `items` is set.\n\t */\n\titemActivation: ItemActivation;\n\n\t/**\n\t * The currently selected items.\n\t */\n\tselectedItems: ReadonlyArray<T>;\n\n\t/**\n\t * An event that is fired when the selected items change.\n\t */\n\treadonly onDidChangeSelection: Event<T[]>;\n\n\t/**\n\t * The key modifiers.\n\t */\n\treadonly keyMods: IKeyMods;\n\n\t/**\n\t * The selection range for the value in the input.\n\t */\n\tvalueSelection: Readonly<[number, number]> | undefined;\n\n\t/**\n\t * Hides the input box from the picker UI. This is typically used in combination with quick-navigation where no search UI should be presented.\n\t */\n\thideInput: boolean;\n\n\t/**\n\t * Focus a particular item in the list. Used internally for keyboard navigation.\n\t * @param focus The focus behavior.\n\t */\n\tfocus(focus: QuickPickFocus): void;\n\n\t/**\n\t * Programmatically accepts an item. Used internally for keyboard navigation.\n\t * @param inBackground Whether you are accepting an item in the background and keeping the picker open.\n\t */\n\taccept(inBackground?: boolean): void;\n}\n\n/**\n * Represents a toggle for quick input.\n */\nexport interface IQuickInputToggle {\n}\n\n/**\n * Represents an input box in a quick input dialog.\n */\nexport interface IInputBox extends IQuickInput {\n\n\t/**\n\t * Value shown in the input box.\n\t */\n\tvalue: string;\n\n\t/**\n\t * Provide start and end values to be selected in the input box.\n\t */\n\tvalueSelection: Readonly<[number, number]> | undefined;\n\n\t/**\n\t * Value shown as example for input.\n\t */\n\tplaceholder: string | undefined;\n\n\t/**\n\t * Determines if the input value should be hidden while typing.\n\t */\n\tpassword: boolean;\n\n\t/**\n\t * Event called when the input value changes.\n\t */\n\treadonly onDidChangeValue: Event<string>;\n\n\t/**\n\t * Event called when the user submits the input.\n\t */\n\treadonly onDidAccept: Event<void>;\n\n\t/**\n\t * Text show below the input box.\n\t */\n\tprompt: string | undefined;\n\n\t/**\n\t * An optional validation message indicating a problem with the current input value.\n\t * Returning undefined clears the validation message.\n\t */\n\tvalidationMessage: string | undefined;\n\n\t/**\n\t * Severity of the input validation message.\n\t */\n\tseverity: Severity;\n\n\t/**\n\t * Programmatically accepts an item. Used internally for keyboard navigation.\n\t */\n\taccept(): void;\n}\n\nexport enum QuickInputButtonLocation {\n\t/**\n\t * In the title bar.\n\t */\n\tTitle = 1,\n\n\t/**\n\t * To the right of the input box.\n\t */\n\tInline = 2,\n\n\t/**\n\t * At the far end inside the input box.\n\t * Used by the public API to create toggles.\n\t */\n\tInput = 3,\n}\n\n/**\n * Represents a button in the quick input UI.\n */\nexport interface IQuickInputButton {\n\t/**\n\t * The path to the icon for the button.\n\t * Either `iconPath` or `iconClass` is required.\n\t */\n\ticonPath?: { dark: URI; light?: URI };\n\t/**\n\t * The CSS class for the icon of the button.\n\t * Either `iconPath` or `iconClass` is required.\n\t */\n\ticonClass?: string;\n\t/**\n\t * The tooltip text for the button.\n\t */\n\ttooltip?: string;\n\t/**\n\t * Whether to always show the button.\n\t * By default, buttons are only visible when hovering over them with the mouse.\n\t */\n\talwaysVisible?: boolean;\n\t/**\n\t * Where the button should be rendered. The default is {@link QuickInputButtonLocation.Title}.\n\t * @note This property is ignored if the button was added to a QuickPickItem.\n\t */\n\tlocation?: QuickInputButtonLocation;\n\t/**\n\t * When present, indicates that the button is a toggle button that can be checked or unchecked.\n\t * The `checked` property indicates the current state of the toggle and will be updated\n\t * when the button is clicked.\n\t */\n\treadonly toggle?: { checked: boolean };\n}\n\n/**\n * Represents an event that occurs when a button associated with a quick pick item is clicked.\n * @template T - The type of the quick pick item.\n */\nexport interface IQuickPickItemButtonEvent<T extends IQuickPickItem> {\n\t/**\n\t * The button that was clicked.\n\t */\n\tbutton: IQuickInputButton;\n\t/**\n\t * The quick pick item associated with the button.\n\t */\n\titem: T;\n}\n\n/**\n * Represents an event that occurs when a separator button is clicked in a quick pick.\n */\nexport interface IQuickPickSeparatorButtonEvent {\n\t/**\n\t * The button that was clicked.\n\t */\n\tbutton: IQuickInputButton;\n\t/**\n\t * The separator associated with the button.\n\t */\n\tseparator: IQuickPickSeparator;\n}\n\n/**\n * Represents a context for a button associated with a quick pick item.\n * @template T - The type of the quick pick item.\n */\nexport interface IQuickPickItemButtonContext<T extends IQuickPickItem> extends IQuickPickItemButtonEvent<T> {\n\t/**\n\t * Removes the associated item from the quick pick.\n\t */\n\tremoveItem(): void;\n}\n\nexport type QuickPickInput<T = IQuickPickItem> = T | IQuickPickSeparator;\n\n\n//#region Fuzzy Scorer Support\n\nexport type IQuickPickItemWithResource = IQuickPickItem & { resource?: URI };\n\nexport class QuickPickItemScorerAccessor implements IItemAccessor<IQuickPickItemWithResource> {\n\n\tconstructor(private options?: { skipDescription?: boolean; skipPath?: boolean }) { }\n}\n\nexport const quickPickItemScorerAccessor = new QuickPickItemScorerAccessor();\n\n//#endregion\n\nexport const IQuickInputService = createDecorator<IQuickInputService>('quickInputService');\n\nexport type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;\n\nexport interface IQuickInputService {\n\n\treadonly _serviceBrand: undefined;\n\n\t/**\n\t * Provides access to the quick access providers.\n\t */\n\treadonly quickAccess: IQuickAccessController;\n\n\t/**\n\t * Opens the quick input box for selecting items and returns a promise\n\t * with the user selected item(s) if any.\n\t */\n\tpick<T extends IQuickPickItem>(picks: Promise<QuickPickInput<T>[]> | QuickPickInput<T>[], options?: IPickOptions<T> & { canPickMany: true }, token?: CancellationToken): Promise<T[] | undefined>;\n\tpick<T extends IQuickPickItem>(picks: Promise<QuickPickInput<T>[]> | QuickPickInput<T>[], options?: IPickOptions<T> & { canPickMany: false }, token?: CancellationToken): Promise<T | undefined>;\n\tpick<T extends IQuickPickItem>(picks: Promise<QuickPickInput<T>[]> | QuickPickInput<T>[], options?: Omit<IPickOptions<T>, 'canPickMany'>, token?: CancellationToken): Promise<T | undefined>;\n\n\t/**\n\t * Opens the quick input box for text input and returns a promise with the user typed value if any.\n\t */\n\tinput(options?: IInputOptions, token?: CancellationToken): Promise<string | undefined>;\n\n\t/**\n\t * Provides raw access to the quick pick controller.\n\t */\n\tcreateQuickPick<T extends IQuickPickItem>(options: { useSeparators: true }): IQuickPick<T, { useSeparators: true }>;\n\tcreateQuickPick<T extends IQuickPickItem>(options?: { useSeparators: boolean }): IQuickPick<T, { useSeparators: false }>;\n\n\t/**\n\t * Provides raw access to the input box controller.\n\t */\n\tcreateInputBox(): IInputBox;\n\n\t/**\n\t * Toggles hover for the current quick input item\n\t */\n\ttoggleHover(): void;\n\n\t/**\n\t * The current quick pick that is visible. Undefined if none is open.\n\t */\n\tcurrentQuickInput: IQuickInput | undefined;\n}\n\n//#region Quick Tree\n\n/**\n * Represents a quick tree control that displays hierarchical data with checkboxes.\n */\nexport interface IQuickTree<T extends IQuickTreeItem> extends IQuickInput {\n\n\t/**\n\t * Focus a particular item in the list. Used internally for keyboard navigation.\n\t * @param focus The focus behavior.\n\t */\n\tfocus(focus: QuickPickFocus): void;\n\n\t/**\n\t * Programmatically accepts an item. Used internally for keyboard navigation.\n\t * @param inBackground Whether you are accepting an item in the background and keeping the picker open.\n\t */\n\taccept(inBackground?: boolean): void;\n}\n\n/**\n * Represents a tree item in the quick tree.\n */\nexport interface IQuickTreeItem extends IQuickItem {\n\t/**\n\t * The checked state of the item. Can be true, false, or 'mixed' for tri-state.\n\t * When canSelectMany is false, this is ignored and the item is treated as a single selection.\n\t * When canSelectMany is true, this indicates the checkbox state of the item.\n\t * If undefined, the item is unchecked by default.\n\t */\n\tchecked?: boolean | 'mixed';\n\n\t/**\n\t * The children of this tree item.\n\t */\n\tchildren?: readonly IQuickTreeItem[];\n\n\t/**\n\t * Defaults to true, can be false to disable picks for a single item.\n\t * When false, the item is not selectable and does not respond to mouse/keyboard activation.\n\t */\n\tpickable?: boolean;\n}\n\n/**\n * Represents an event that occurs when the checkbox state of a tree item changes.\n * @template T - The type of the tree item.\n */\nexport interface IQuickTreeCheckboxEvent<T extends IQuickTreeItem> {\n\t/**\n\t * The tree item whose checkbox state changed.\n\t */\n\titem: T;\n\n\t/**\n\t * The new checked state.\n\t */\n\tchecked: boolean | 'mixed';\n}\n\n/**\n * Represents an event that occurs when a button associated with a quick tree item is clicked.\n * @template T - The type of the quick tree item.\n */\nexport interface IQuickTreeItemButtonEvent<T extends IQuickTreeItem> {\n\t/**\n\t * The button that was clicked.\n\t */\n\tbutton: IQuickInputButton;\n\t/**\n\t * The quick tree item associated with the button.\n\t */\n\titem: T;\n}\n\n//#endregion\n"]}
1
+ {"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/platform/quickinput/common/quickInput.ts","vs/platform/quickinput/common/quickInput.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAIhG,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AA8G9E,MAAM,CAAC,MAAM,WAAW,GAAa,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AAiIpE,MAAM,CAAN,IAAY,oBAgBX;AAhBD,WAAY,oBAAoB;IAE/B;;OAEG;IACH,+DAAQ,CAAA;IAER;;OAEG;IACH,qEAAO,CAAA;IAEP;;OAEG;IACH,iEAAK,CAAA;AACN,CAAC,EAhBW,oBAAoB,KAApB,oBAAoB,QAgB/B;AAuGD;;;GAGG;AACH,MAAM,CAAN,IAAY,cAiBX;AAjBD,WAAY,cAAc;IACzB;;OAEG;IACH,mDAAI,CAAA;IACJ;;OAEG;IACH,qDAAK,CAAA;IACL;;OAEG;IACH,uDAAM,CAAA;IACN;;OAEG;IACH,mDAAI,CAAA;AACL,CAAC,EAjBW,cAAc,KAAd,cAAc,QAiBzB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,cAqCX;AArCD,WAAY,cAAc;IACzB;;OAEG;IACH,qDAAS,CAAA;IACT;;OAEG;IACH,uDAAM,CAAA;IACN;;OAEG;IACH,mDAAI,CAAA;IACJ;;OAEG;IACH,mDAAI,CAAA;IACJ;;OAEG;IACH,2DAAQ,CAAA;IACR;;OAEG;IACH,2DAAQ,CAAA;IACR;;OAEG;IACH,mEAAY,CAAA;IACZ;;OAEG;IACH,qEAAa,CAAA;IACb;;OAEG;IACH,6EAAiB,CAAA;AAClB,CAAC,EArCW,cAAc,KAAd,cAAc,QAqCzB;AAuND,MAAM,CAAN,IAAY,wBAgBX;AAhBD,WAAY,wBAAwB;IACnC;;OAEG;IACH,yEAAS,CAAA;IAET;;OAEG;IACH,2EAAU,CAAA;IAEV;;;OAGG;IACH,yEAAS,CAAA;AACV,CAAC,EAhBW,wBAAwB,KAAxB,wBAAwB,QAgBnC;AAqFD,MAAM,OAAO,2BAA2B;IAEvC,YAAoB,OAA2D;QAA3D,YAAO,GAAP,OAAO,CAAoD;IAAI,CAAC;CACpF;AAED,MAAM,CAAC,MAAM,2BAA2B,GAAG,IAAI,2BAA2B,EAAE,CAAC;AAE7E,YAAY;AAEZ,MAAM,CAAC,MAAM,kBAAkB,GAAG,eAAe,CAAqB,mBAAmB,CAAC,CAAC;AA2H3F,YAAY","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 { CancellationToken } from '../../../base/common/cancellation.js';\nimport { Event } from '../../../base/common/event.js';\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nimport { IQuickAccessController } from './quickAccess.js';\nimport { IMatch } from '../../../base/common/filters.js';\nimport { IItemAccessor } from '../../../base/common/fuzzyScorer.js';\nimport { ResolvedKeybinding } from '../../../base/common/keybindings.js';\nimport { IDisposable } from '../../../base/common/lifecycle.js';\nimport Severity from '../../../base/common/severity.js';\nimport { URI } from '../../../base/common/uri.js';\nimport { IMarkdownString } from '../../../base/common/htmlContent.js';\n\nexport interface IQuickItemHighlights {\n\tlabel?: IMatch[];\n\tdescription?: IMatch[];\n}\n\nexport interface IQuickPickItemHighlights extends IQuickItemHighlights {\n\tdetail?: IMatch[];\n}\n\nexport type QuickPickItem = IQuickPickSeparator | IQuickPickItem;\n\n/**\n * Base properties for a quick pick and quick tree item.\n */\nexport interface IQuickItem {\n\tid?: string;\n\tlabel: string;\n\tariaLabel?: string;\n\tdescription?: string;\n\t/**\n\t * Whether the item is displayed in italics.\n\t */\n\titalic?: boolean;\n\t/**\n\t * Whether the item is displayed with a strikethrough.\n\t */\n\tstrikethrough?: boolean;\n\t/**\n\t * Icon classes to be passed on as `IIconLabelValueOptions`\n\t * to the underlying `IconLabel` widget.\n\t */\n\ticonClasses?: readonly string[];\n\ticonPath?: { dark: URI; light?: URI };\n\t/**\n\t * Icon class to be assigned to the quick item container\n\t * directly.\n\t */\n\ticonClass?: string;\n\tbuttons?: readonly IQuickInputButton[];\n\t/**\n\t * Used when we're in multi-select mode. Renders a disabled checkbox.\n\t */\n\tdisabled?: boolean;\n}\n\n/**\n * Represents a quick pick item used in the quick pick UI.\n */\nexport interface IQuickPickItem extends IQuickItem {\n\t/**\n\t * The type of the quick pick item. Used to distinguish between 'item' and 'separator'\n\t */\n\ttype?: 'item';\n\t/**\n\t * The detail text of the quick pick item. Shown as the second line.\n\t */\n\tdetail?: string;\n\t/**\n\t * The tooltip for the quick pick item.\n\t */\n\ttooltip?: string | IMarkdownString;\n\thighlights?: IQuickPickItemHighlights;\n\t/**\n\t * Allows to show a keybinding next to the item to indicate\n\t * how the item can be triggered outside of the picker using\n\t * keyboard shortcut.\n\t */\n\tkeybinding?: ResolvedKeybinding;\n\t/**\n\t * Whether the item is picked by default when the Quick Pick is shown.\n\t */\n\tpicked?: boolean;\n\t/**\n\t * Whether the item is always shown in the Quick Pick regardless of filtering.\n\t */\n\talwaysShow?: boolean;\n\t/**\n\t * Defaults to true with `IQuickPick.canSelectMany`, can be false to disable picks for a single item\n\t */\n\tpickable?: boolean;\n}\n\nexport interface IQuickPickSeparator {\n\t/**\n\t * The type of the quick pick item. Used to distinguish between 'item' and 'separator'\n\t */\n\ttype: 'separator';\n\tid?: string;\n\tlabel?: string;\n\tdescription?: string;\n\tariaLabel?: string;\n\tbuttons?: readonly IQuickInputButton[];\n\ttooltip?: string | IMarkdownString;\n}\n\nexport interface IKeyMods {\n\treadonly ctrlCmd: boolean;\n\treadonly alt: boolean;\n}\n\nexport const NO_KEY_MODS: IKeyMods = { ctrlCmd: false, alt: false };\n\nexport interface IQuickNavigateConfiguration {\n\tkeybindings: readonly ResolvedKeybinding[];\n}\n\nexport interface IPickOptions<T extends IQuickPickItem> {\n\n\t/**\n\t * an optional string to show as the title of the quick input\n\t */\n\ttitle?: string;\n\n\t/**\n\t * the value to prefill in the input box\n\t */\n\tvalue?: string;\n\n\t/**\n\t * an optional string to show as placeholder in the input box to guide the user what she picks on\n\t */\n\tplaceHolder?: string;\n\n\t/**\n\t * the text to display underneath the input box\n\t */\n\tprompt?: string;\n\n\t/**\n\t * an optional flag to include the description when filtering the picks\n\t */\n\tmatchOnDescription?: boolean;\n\n\t/**\n\t * an optional flag to include the detail when filtering the picks\n\t */\n\tmatchOnDetail?: boolean;\n\n\t/**\n\t * an optional flag to filter the picks based on label. Defaults to true.\n\t */\n\tmatchOnLabel?: boolean;\n\n\t/**\n\t * an optional flag to sort the picks based by the label.\n\t */\n\tsortByLabel?: boolean;\n\n\t/**\n\t * an optional flag to not close the picker on focus lost\n\t */\n\tignoreFocusLost?: boolean;\n\n\t/**\n\t * an optional flag to make this picker multi-select\n\t */\n\tcanPickMany?: boolean;\n\n\t/**\n\t * enables quick navigate in the picker to open an element without typing\n\t */\n\tquickNavigate?: IQuickNavigateConfiguration;\n\n\t/**\n\t * Hides the input box from the picker UI. This is typically used\n\t * in combination with quick-navigation where no search UI should\n\t * be presented.\n\t */\n\thideInput?: boolean;\n\n\t/**\n\t * a context key to set when this picker is active\n\t */\n\tcontextKey?: string;\n\n\t/**\n\t * an optional property for the item to focus initially.\n\t */\n\tactiveItem?: Promise<T> | T;\n\n\tonKeyMods?: (keyMods: IKeyMods) => void;\n\tonDidFocus?: (entry: T) => void;\n\tonDidTriggerItemButton?: (context: IQuickPickItemButtonContext<T>) => void;\n\tonDidTriggerSeparatorButton?: (context: IQuickPickSeparatorButtonEvent) => void;\n}\n\nexport interface IInputOptions {\n\n\t/**\n\t * an optional string to show as the title of the quick input\n\t */\n\ttitle?: string;\n\n\t/**\n\t * the value to prefill in the input box\n\t */\n\tvalue?: string;\n\n\t/**\n\t * the selection of value, default to the whole prefilled value\n\t */\n\tvalueSelection?: readonly [number, number];\n\n\t/**\n\t * the text to display underneath the input box\n\t */\n\tprompt?: string;\n\n\t/**\n\t * an optional string to show as placeholder in the input box to guide the user what to type\n\t */\n\tplaceHolder?: string;\n\n\t/**\n\t * Controls if a password input is shown. Password input hides the typed text.\n\t */\n\tpassword?: boolean;\n\n\t/**\n\t * an optional flag to not close the input on focus lost\n\t */\n\tignoreFocusLost?: boolean;\n\n\t/**\n\t * an optional function that is used to validate user input.\n\t */\n\tvalidateInput?: (input: string) => Promise<string | null | undefined | { content: string; severity: Severity }>;\n}\n\nexport enum QuickInputHideReason {\n\n\t/**\n\t * Focus moved away from the quick input.\n\t */\n\tBlur = 1,\n\n\t/**\n\t * An explicit user gesture, e.g. pressing Escape key.\n\t */\n\tGesture,\n\n\t/**\n\t * Anything else.\n\t */\n\tOther\n}\n\nexport interface IQuickInputHideEvent {\n\treason: QuickInputHideReason;\n}\n\n/**\n * A collection of the different types of QuickInput\n */\nexport const enum QuickInputType {\n\tQuickPick = 'quickPick',\n\tInputBox = 'inputBox',\n\tQuickWidget = 'quickWidget',\n\tQuickTree = 'quickTree'\n}\n\n/**\n * Represents a quick input control that allows users to make selections or provide input quickly.\n */\nexport interface IQuickInput extends IDisposable {\n\n\t/**\n\t * The type of the quick input.\n\t */\n\treadonly type: QuickInputType;\n\n\t/**\n\t * An event that is fired when the quick input is hidden.\n\t */\n\treadonly onDidHide: Event<IQuickInputHideEvent>;\n\n\t/**\n\t * The title of the quick input.\n\t */\n\ttitle: string | undefined;\n\n\t/**\n\t * The buttons displayed in the quick input titlebar.\n\t */\n\tbuttons: ReadonlyArray<IQuickInputButton>;\n\n\t/**\n\t * An event that is fired when a button in the quick input is triggered.\n\t */\n\treadonly onDidTriggerButton: Event<IQuickInputButton>;\n\n\t/**\n\t * The context key associated with the quick input.\n\t */\n\tcontextKey: string | undefined;\n\n\t/**\n\t * Indicates whether the quick input is busy. Renders a progress bar if true.\n\t */\n\tbusy: boolean;\n\n\t/**\n\t * Indicates whether the quick input should be hidden when it loses focus.\n\t */\n\tignoreFocusOut: boolean;\n\n\t/**\n\t * Shows the quick input.\n\t */\n\tshow(): void;\n\n\t/**\n\t * Hides the quick input.\n\t */\n\thide(): void;\n\n\t/**\n\t * Notifies that the quick input has been hidden.\n\t * @param reason The reason why the quick input was hidden.\n\t */\n\tdidHide(reason?: QuickInputHideReason): void;\n\n\t/**\n\t * Notifies that the quick input will be hidden.\n\t * @param reason The reason why the quick input will be hidden.\n\t */\n\twillHide(reason?: QuickInputHideReason): void;\n}\n\nexport interface IQuickPickWillAcceptEvent {\n\n\t/**\n\t * Allows to disable the default accept handling\n\t * of the picker. If `veto` is called, the picker\n\t * will not trigger the `onDidAccept` event.\n\t */\n\tveto(): void;\n}\n\nexport interface IQuickPickDidAcceptEvent {\n\n\t/**\n\t * Signals if the picker item is to be accepted\n\t * in the background while keeping the picker open.\n\t */\n\tinBackground: boolean;\n}\n\n/**\n * Represents the activation behavior for items in a quick input. This means which item will be\n * \"active\" (aka focused).\n */\nexport enum ItemActivation {\n\t/**\n\t * No item will be active.\n\t */\n\tNONE,\n\t/**\n\t * First item will be active.\n\t */\n\tFIRST,\n\t/**\n\t * Second item will be active.\n\t */\n\tSECOND,\n\t/**\n\t * Last item will be active.\n\t */\n\tLAST\n}\n\n/**\n * Represents the focus options for a quick pick.\n */\nexport enum QuickPickFocus {\n\t/**\n\t * Focus the first item in the list.\n\t */\n\tFirst = 1,\n\t/**\n\t * Focus the second item in the list.\n\t */\n\tSecond,\n\t/**\n\t * Focus the last item in the list.\n\t */\n\tLast,\n\t/**\n\t * Focus the next item in the list.\n\t */\n\tNext,\n\t/**\n\t * Focus the previous item in the list.\n\t */\n\tPrevious,\n\t/**\n\t * Focus the next page in the list.\n\t */\n\tNextPage,\n\t/**\n\t * Focus the previous page in the list.\n\t */\n\tPreviousPage,\n\t/**\n\t * Focus the first item under the next separator.\n\t */\n\tNextSeparator,\n\t/**\n\t * Focus the first item under the current separator.\n\t */\n\tPreviousSeparator\n}\n\n/**\n * Represents a quick pick control that allows the user to select an item from a list of options.\n */\nexport interface IQuickPick<T extends IQuickPickItem, O extends { useSeparators: boolean } = { useSeparators: false }> extends IQuickInput {\n\n\t/**\n\t * The current value of the quick pick input.\n\t */\n\tvalue: string;\n\n\t/**\n\t * A method that allows to massage the value used for filtering, e.g, to remove certain parts.\n\t * @param value The value to be filtered.\n\t * @returns The filtered value.\n\t */\n\tfilterValue: (value: string) => string;\n\n\t/**\n\t * The ARIA label for the quick pick input.\n\t */\n\tariaLabel: string | undefined;\n\n\t/**\n\t * The placeholder text for the quick pick input.\n\t */\n\tplaceholder: string | undefined;\n\n\t/**\n\t * Text shown below the quick pick input.\n\t */\n\tprompt: string | undefined;\n\n\t/**\n\t * An event that is fired when the value of the quick pick input changes.\n\t */\n\treadonly onDidChangeValue: Event<string>;\n\n\t/**\n\t * An event that is fired when the quick pick is about to accept the selected item.\n\t */\n\treadonly onWillAccept: Event<IQuickPickWillAcceptEvent>;\n\n\t/**\n\t * An event that is fired when the quick pick has accepted the selected item.\n\t */\n\treadonly onDidAccept: Event<IQuickPickDidAcceptEvent>;\n\n\t/**\n\t * If enabled, the `onDidAccept` event will be fired when pressing the arrow-right key to accept the selected item without closing the picker.\n\t */\n\tcanAcceptInBackground: boolean;\n\n\t/**\n\t * An event that is fired when an item button is triggered.\n\t */\n\treadonly onDidTriggerItemButton: Event<IQuickPickItemButtonEvent<T>>;\n\n\t/**\n\t * An event that is fired when a separator button is triggered.\n\t */\n\treadonly onDidTriggerSeparatorButton: Event<IQuickPickSeparatorButtonEvent>;\n\n\t/**\n\t * The items to be displayed in the quick pick.\n\t */\n\titems: O extends { useSeparators: true } ? ReadonlyArray<T | IQuickPickSeparator> : ReadonlyArray<T>;\n\n\t/**\n\t * Whether multiple items can be selected. If so, checkboxes will be rendered.\n\t */\n\tcanSelectMany: boolean;\n\n\t/**\n\t * Whether to match on the description of the items.\n\t */\n\tmatchOnDescription: boolean;\n\n\t/**\n\t * Whether to match on the detail of the items.\n\t */\n\tmatchOnDetail: boolean;\n\n\t/**\n\t * Whether to match on the label of the items.\n\t */\n\tmatchOnLabel: boolean;\n\n\t/**\n\t * Whether to sort the items by label.\n\t */\n\tsortByLabel: boolean;\n\n\t/**\n\t * Whether to keep the scroll position when the quick pick input is updated.\n\t */\n\tkeepScrollPosition: boolean;\n\n\t/**\n\t * The configuration for quick navigation.\n\t */\n\tquickNavigate: IQuickNavigateConfiguration | undefined;\n\n\t/**\n\t * The currently active items.\n\t */\n\tactiveItems: ReadonlyArray<T>;\n\n\t/**\n\t * An event that is fired when the active items change.\n\t */\n\treadonly onDidChangeActive: Event<T[]>;\n\n\t/**\n\t * The item activation behavior for the next time `items` is set. Item activation means which\n\t * item is \"active\" (aka focused) when the quick pick is opened or when `items` is set.\n\t */\n\titemActivation: ItemActivation;\n\n\t/**\n\t * The currently selected items.\n\t */\n\tselectedItems: ReadonlyArray<T>;\n\n\t/**\n\t * An event that is fired when the selected items change.\n\t */\n\treadonly onDidChangeSelection: Event<T[]>;\n\n\t/**\n\t * The key modifiers.\n\t */\n\treadonly keyMods: IKeyMods;\n\n\t/**\n\t * The selection range for the value in the input.\n\t */\n\tvalueSelection: Readonly<[number, number]> | undefined;\n\n\t/**\n\t * Hides the input box from the picker UI. This is typically used in combination with quick-navigation where no search UI should be presented.\n\t */\n\thideInput: boolean;\n\n\t/**\n\t * Focus a particular item in the list. Used internally for keyboard navigation.\n\t * @param focus The focus behavior.\n\t */\n\tfocus(focus: QuickPickFocus): void;\n\n\t/**\n\t * Programmatically accepts an item. Used internally for keyboard navigation.\n\t * @param inBackground Whether you are accepting an item in the background and keeping the picker open.\n\t */\n\taccept(inBackground?: boolean): void;\n}\n\n/**\n * Represents an input box in a quick input dialog.\n */\nexport interface IInputBox extends IQuickInput {\n\n\t/**\n\t * Value shown in the input box.\n\t */\n\tvalue: string;\n\n\t/**\n\t * Provide start and end values to be selected in the input box.\n\t */\n\tvalueSelection: Readonly<[number, number]> | undefined;\n\n\t/**\n\t * Value shown as example for input.\n\t */\n\tplaceholder: string | undefined;\n\n\t/**\n\t * Determines if the input value should be hidden while typing.\n\t */\n\tpassword: boolean;\n\n\t/**\n\t * Event called when the input value changes.\n\t */\n\treadonly onDidChangeValue: Event<string>;\n\n\t/**\n\t * Event called when the user submits the input.\n\t */\n\treadonly onDidAccept: Event<void>;\n\n\t/**\n\t * Text show below the input box.\n\t */\n\tprompt: string | undefined;\n\n\t/**\n\t * An optional validation message indicating a problem with the current input value.\n\t * Returning undefined clears the validation message.\n\t */\n\tvalidationMessage: string | undefined;\n\n\t/**\n\t * Severity of the input validation message.\n\t */\n\tseverity: Severity;\n\n\t/**\n\t * Programmatically accepts an item. Used internally for keyboard navigation.\n\t */\n\taccept(): void;\n}\n\nexport enum QuickInputButtonLocation {\n\t/**\n\t * In the title bar.\n\t */\n\tTitle = 1,\n\n\t/**\n\t * To the right of the input box.\n\t */\n\tInline = 2,\n\n\t/**\n\t * At the far end inside the input box.\n\t * Used by the public API to create toggles.\n\t */\n\tInput = 3,\n}\n\n/**\n * Represents a button in the quick input UI.\n */\nexport interface IQuickInputButton {\n\t/**\n\t * The path to the icon for the button.\n\t * Either `iconPath` or `iconClass` is required.\n\t */\n\ticonPath?: { dark: URI; light?: URI };\n\t/**\n\t * The CSS class for the icon of the button.\n\t * Either `iconPath` or `iconClass` is required.\n\t */\n\ticonClass?: string;\n\t/**\n\t * The tooltip text for the button.\n\t */\n\ttooltip?: string;\n\t/**\n\t * Whether to always show the button.\n\t * By default, buttons are only visible when hovering over them with the mouse.\n\t */\n\talwaysVisible?: boolean;\n\t/**\n\t * Where the button should be rendered. The default is {@link QuickInputButtonLocation.Title}.\n\t * @note This property is ignored if the button was added to a QuickPickItem.\n\t */\n\tlocation?: QuickInputButtonLocation;\n\t/**\n\t * When present, indicates that the button is a toggle button that can be checked or unchecked.\n\t * The `checked` property indicates the current state of the toggle and will be updated\n\t * when the button is clicked.\n\t */\n\treadonly toggle?: { checked: boolean };\n}\n\n/**\n * Represents an event that occurs when a button associated with a quick pick item is clicked.\n * @template T - The type of the quick pick item.\n */\nexport interface IQuickPickItemButtonEvent<T extends IQuickPickItem> {\n\t/**\n\t * The button that was clicked.\n\t */\n\tbutton: IQuickInputButton;\n\t/**\n\t * The quick pick item associated with the button.\n\t */\n\titem: T;\n}\n\n/**\n * Represents an event that occurs when a separator button is clicked in a quick pick.\n */\nexport interface IQuickPickSeparatorButtonEvent {\n\t/**\n\t * The button that was clicked.\n\t */\n\tbutton: IQuickInputButton;\n\t/**\n\t * The separator associated with the button.\n\t */\n\tseparator: IQuickPickSeparator;\n}\n\n/**\n * Represents a context for a button associated with a quick pick item.\n * @template T - The type of the quick pick item.\n */\nexport interface IQuickPickItemButtonContext<T extends IQuickPickItem> extends IQuickPickItemButtonEvent<T> {\n\t/**\n\t * Removes the associated item from the quick pick.\n\t */\n\tremoveItem(): void;\n}\n\nexport type QuickPickInput<T = IQuickPickItem> = T | IQuickPickSeparator;\n\n\n//#region Fuzzy Scorer Support\n\nexport type IQuickPickItemWithResource = IQuickPickItem & { resource?: URI };\n\nexport class QuickPickItemScorerAccessor implements IItemAccessor<IQuickPickItemWithResource> {\n\n\tconstructor(private options?: { skipDescription?: boolean; skipPath?: boolean }) { }\n}\n\nexport const quickPickItemScorerAccessor = new QuickPickItemScorerAccessor();\n\n//#endregion\n\nexport const IQuickInputService = createDecorator<IQuickInputService>('quickInputService');\n\nexport type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;\n\nexport interface IQuickInputService {\n\n\treadonly _serviceBrand: undefined;\n\n\t/**\n\t * Provides access to the quick access providers.\n\t */\n\treadonly quickAccess: IQuickAccessController;\n\n\t/**\n\t * Opens the quick input box for selecting items and returns a promise\n\t * with the user selected item(s) if any.\n\t */\n\tpick<T extends IQuickPickItem>(picks: Promise<QuickPickInput<T>[]> | QuickPickInput<T>[], options?: IPickOptions<T> & { canPickMany: true }, token?: CancellationToken): Promise<T[] | undefined>;\n\tpick<T extends IQuickPickItem>(picks: Promise<QuickPickInput<T>[]> | QuickPickInput<T>[], options?: IPickOptions<T> & { canPickMany: false }, token?: CancellationToken): Promise<T | undefined>;\n\tpick<T extends IQuickPickItem>(picks: Promise<QuickPickInput<T>[]> | QuickPickInput<T>[], options?: Omit<IPickOptions<T>, 'canPickMany'>, token?: CancellationToken): Promise<T | undefined>;\n\n\t/**\n\t * Opens the quick input box for text input and returns a promise with the user typed value if any.\n\t */\n\tinput(options?: IInputOptions, token?: CancellationToken): Promise<string | undefined>;\n\n\t/**\n\t * Provides raw access to the quick pick controller.\n\t */\n\tcreateQuickPick<T extends IQuickPickItem>(options: { useSeparators: true }): IQuickPick<T, { useSeparators: true }>;\n\tcreateQuickPick<T extends IQuickPickItem>(options?: { useSeparators: boolean }): IQuickPick<T, { useSeparators: false }>;\n\n\t/**\n\t * Provides raw access to the input box controller.\n\t */\n\tcreateInputBox(): IInputBox;\n\n\t/**\n\t * Toggles hover for the current quick input item\n\t */\n\ttoggleHover(): void;\n\n\t/**\n\t * The current quick pick that is visible. Undefined if none is open.\n\t */\n\tcurrentQuickInput: IQuickInput | undefined;\n}\n\n//#region Quick Tree\n\n/**\n * Represents a quick tree control that displays hierarchical data with checkboxes.\n */\nexport interface IQuickTree<T extends IQuickTreeItem> extends IQuickInput {\n\n\t/**\n\t * Focus a particular item in the list. Used internally for keyboard navigation.\n\t * @param focus The focus behavior.\n\t */\n\tfocus(focus: QuickPickFocus): void;\n\n\t/**\n\t * Programmatically accepts an item. Used internally for keyboard navigation.\n\t * @param inBackground Whether you are accepting an item in the background and keeping the picker open.\n\t */\n\taccept(inBackground?: boolean): void;\n}\n\n/**\n * Represents a tree item in the quick tree.\n */\nexport interface IQuickTreeItem extends IQuickItem {\n\t/**\n\t * The checked state of the item. Can be true, false, or 'mixed' for tri-state.\n\t * When canSelectMany is false, this is ignored and the item is treated as a single selection.\n\t * When canSelectMany is true, this indicates the checkbox state of the item.\n\t * If undefined, the item is unchecked by default.\n\t */\n\tchecked?: boolean | 'mixed';\n\n\t/**\n\t * The children of this tree item.\n\t */\n\tchildren?: readonly IQuickTreeItem[];\n\n\t/**\n\t * Defaults to true, can be false to disable picks for a single item.\n\t * When false, the item is not selectable and does not respond to mouse/keyboard activation.\n\t */\n\tpickable?: boolean;\n}\n\n/**\n * Represents an event that occurs when the checkbox state of a tree item changes.\n * @template T - The type of the tree item.\n */\nexport interface IQuickTreeCheckboxEvent<T extends IQuickTreeItem> {\n\t/**\n\t * The tree item whose checkbox state changed.\n\t */\n\titem: T;\n\n\t/**\n\t * The new checked state.\n\t */\n\tchecked: boolean | 'mixed';\n}\n\n/**\n * Represents an event that occurs when a button associated with a quick tree item is clicked.\n * @template T - The type of the quick tree item.\n */\nexport interface IQuickTreeItemButtonEvent<T extends IQuickTreeItem> {\n\t/**\n\t * The button that was clicked.\n\t */\n\tbutton: IQuickInputButton;\n\t/**\n\t * The quick tree item associated with the button.\n\t */\n\titem: T;\n}\n\n//#endregion\n","/*---------------------------------------------------------------------------------------------\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 { CancellationToken } from '../../../base/common/cancellation.js';\nimport { Event } from '../../../base/common/event.js';\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nimport { IQuickAccessController } from './quickAccess.js';\nimport { IMatch } from '../../../base/common/filters.js';\nimport { IItemAccessor } from '../../../base/common/fuzzyScorer.js';\nimport { ResolvedKeybinding } from '../../../base/common/keybindings.js';\nimport { IDisposable } from '../../../base/common/lifecycle.js';\nimport Severity from '../../../base/common/severity.js';\nimport { URI } from '../../../base/common/uri.js';\nimport { IMarkdownString } from '../../../base/common/htmlContent.js';\n\nexport interface IQuickItemHighlights {\n\tlabel?: IMatch[];\n\tdescription?: IMatch[];\n}\n\nexport interface IQuickPickItemHighlights extends IQuickItemHighlights {\n\tdetail?: IMatch[];\n}\n\nexport type QuickPickItem = IQuickPickSeparator | IQuickPickItem;\n\n/**\n * Base properties for a quick pick and quick tree item.\n */\nexport interface IQuickItem {\n\tid?: string;\n\tlabel: string;\n\tariaLabel?: string;\n\tdescription?: string;\n\t/**\n\t * Whether the item is displayed in italics.\n\t */\n\titalic?: boolean;\n\t/**\n\t * Whether the item is displayed with a strikethrough.\n\t */\n\tstrikethrough?: boolean;\n\t/**\n\t * Icon classes to be passed on as `IIconLabelValueOptions`\n\t * to the underlying `IconLabel` widget.\n\t */\n\ticonClasses?: readonly string[];\n\ticonPath?: { dark: URI; light?: URI };\n\t/**\n\t * Icon class to be assigned to the quick item container\n\t * directly.\n\t */\n\ticonClass?: string;\n\tbuttons?: readonly IQuickInputButton[];\n\t/**\n\t * Used when we're in multi-select mode. Renders a disabled checkbox.\n\t */\n\tdisabled?: boolean;\n}\n\n/**\n * Represents a quick pick item used in the quick pick UI.\n */\nexport interface IQuickPickItem extends IQuickItem {\n\t/**\n\t * The type of the quick pick item. Used to distinguish between 'item' and 'separator'\n\t */\n\ttype?: 'item';\n\t/**\n\t * The detail text of the quick pick item. Shown as the second line.\n\t */\n\tdetail?: string;\n\t/**\n\t * The tooltip for the quick pick item.\n\t */\n\ttooltip?: string | IMarkdownString;\n\thighlights?: IQuickPickItemHighlights;\n\t/**\n\t * Allows to show a keybinding next to the item to indicate\n\t * how the item can be triggered outside of the picker using\n\t * keyboard shortcut.\n\t */\n\tkeybinding?: ResolvedKeybinding;\n\t/**\n\t * Whether the item is picked by default when the Quick Pick is shown.\n\t */\n\tpicked?: boolean;\n\t/**\n\t * Whether the item is always shown in the Quick Pick regardless of filtering.\n\t */\n\talwaysShow?: boolean;\n\t/**\n\t * Defaults to true with `IQuickPick.canSelectMany`, can be false to disable picks for a single item\n\t */\n\tpickable?: boolean;\n}\n\nexport interface IQuickPickSeparator {\n\t/**\n\t * The type of the quick pick item. Used to distinguish between 'item' and 'separator'\n\t */\n\ttype: 'separator';\n\tid?: string;\n\tlabel?: string;\n\tdescription?: string;\n\tariaLabel?: string;\n\tbuttons?: readonly IQuickInputButton[];\n\ttooltip?: string | IMarkdownString;\n}\n\nexport interface IKeyMods {\n\treadonly ctrlCmd: boolean;\n\treadonly alt: boolean;\n}\n\nexport const NO_KEY_MODS: IKeyMods = { ctrlCmd: false, alt: false };\n\nexport interface IQuickNavigateConfiguration {\n\tkeybindings: readonly ResolvedKeybinding[];\n}\n\nexport interface IPickOptions<T extends IQuickPickItem> {\n\n\t/**\n\t * an optional string to show as the title of the quick input\n\t */\n\ttitle?: string;\n\n\t/**\n\t * the value to prefill in the input box\n\t */\n\tvalue?: string;\n\n\t/**\n\t * an optional string to show as placeholder in the input box to guide the user what she picks on\n\t */\n\tplaceHolder?: string;\n\n\t/**\n\t * the text to display underneath the input box\n\t */\n\tprompt?: string;\n\n\t/**\n\t * an optional flag to include the description when filtering the picks\n\t */\n\tmatchOnDescription?: boolean;\n\n\t/**\n\t * an optional flag to include the detail when filtering the picks\n\t */\n\tmatchOnDetail?: boolean;\n\n\t/**\n\t * an optional flag to filter the picks based on label. Defaults to true.\n\t */\n\tmatchOnLabel?: boolean;\n\n\t/**\n\t * an optional flag to sort the picks based by the label.\n\t */\n\tsortByLabel?: boolean;\n\n\t/**\n\t * an optional flag to not close the picker on focus lost\n\t */\n\tignoreFocusLost?: boolean;\n\n\t/**\n\t * an optional flag to make this picker multi-select\n\t */\n\tcanPickMany?: boolean;\n\n\t/**\n\t * enables quick navigate in the picker to open an element without typing\n\t */\n\tquickNavigate?: IQuickNavigateConfiguration;\n\n\t/**\n\t * Hides the input box from the picker UI. This is typically used\n\t * in combination with quick-navigation where no search UI should\n\t * be presented.\n\t */\n\thideInput?: boolean;\n\n\t/**\n\t * a context key to set when this picker is active\n\t */\n\tcontextKey?: string;\n\n\t/**\n\t * an optional property for the item to focus initially.\n\t */\n\tactiveItem?: Promise<T> | T;\n\n\tonKeyMods?: (keyMods: IKeyMods) => void;\n\tonDidFocus?: (entry: T) => void;\n\tonDidTriggerItemButton?: (context: IQuickPickItemButtonContext<T>) => void;\n\tonDidTriggerSeparatorButton?: (context: IQuickPickSeparatorButtonEvent) => void;\n}\n\nexport interface IInputOptions {\n\n\t/**\n\t * an optional string to show as the title of the quick input\n\t */\n\ttitle?: string;\n\n\t/**\n\t * the value to prefill in the input box\n\t */\n\tvalue?: string;\n\n\t/**\n\t * the selection of value, default to the whole prefilled value\n\t */\n\tvalueSelection?: readonly [number, number];\n\n\t/**\n\t * the text to display underneath the input box\n\t */\n\tprompt?: string;\n\n\t/**\n\t * an optional string to show as placeholder in the input box to guide the user what to type\n\t */\n\tplaceHolder?: string;\n\n\t/**\n\t * Controls if a password input is shown. Password input hides the typed text.\n\t */\n\tpassword?: boolean;\n\n\t/**\n\t * an optional flag to not close the input on focus lost\n\t */\n\tignoreFocusLost?: boolean;\n\n\t/**\n\t * an optional function that is used to validate user input.\n\t */\n\tvalidateInput?: (input: string) => Promise<string | null | undefined | { content: string; severity: Severity }>;\n}\n\nexport enum QuickInputHideReason {\n\n\t/**\n\t * Focus moved away from the quick input.\n\t */\n\tBlur = 1,\n\n\t/**\n\t * An explicit user gesture, e.g. pressing Escape key.\n\t */\n\tGesture,\n\n\t/**\n\t * Anything else.\n\t */\n\tOther\n}\n\nexport interface IQuickInputHideEvent {\n\treason: QuickInputHideReason;\n}\n\n/**\n * A collection of the different types of QuickInput\n */\nexport const enum QuickInputType {\n\tQuickPick = 'quickPick',\n\tInputBox = 'inputBox',\n\tQuickWidget = 'quickWidget',\n\tQuickTree = 'quickTree'\n}\n\n/**\n * Represents a quick input control that allows users to make selections or provide input quickly.\n */\nexport interface IQuickInput extends IDisposable {\n\n\t/**\n\t * The type of the quick input.\n\t */\n\treadonly type: QuickInputType;\n\n\t/**\n\t * An event that is fired when the quick input is hidden.\n\t */\n\treadonly onDidHide: Event<IQuickInputHideEvent>;\n\n\t/**\n\t * The title of the quick input.\n\t */\n\ttitle: string | undefined;\n\n\t/**\n\t * The buttons displayed in the quick input titlebar.\n\t */\n\tbuttons: ReadonlyArray<IQuickInputButton>;\n\n\t/**\n\t * An event that is fired when a button in the quick input is triggered.\n\t */\n\treadonly onDidTriggerButton: Event<IQuickInputButton>;\n\n\t/**\n\t * The context key associated with the quick input.\n\t */\n\tcontextKey: string | undefined;\n\n\t/**\n\t * Indicates whether the quick input is busy. Renders a progress bar if true.\n\t */\n\tbusy: boolean;\n\n\t/**\n\t * Indicates whether the quick input should be hidden when it loses focus.\n\t */\n\tignoreFocusOut: boolean;\n\n\t/**\n\t * Shows the quick input.\n\t */\n\tshow(): void;\n\n\t/**\n\t * Hides the quick input.\n\t */\n\thide(): void;\n\n\t/**\n\t * Notifies that the quick input has been hidden.\n\t * @param reason The reason why the quick input was hidden.\n\t */\n\tdidHide(reason?: QuickInputHideReason): void;\n\n\t/**\n\t * Notifies that the quick input will be hidden.\n\t * @param reason The reason why the quick input will be hidden.\n\t */\n\twillHide(reason?: QuickInputHideReason): void;\n}\n\nexport interface IQuickPickWillAcceptEvent {\n\n\t/**\n\t * Allows to disable the default accept handling\n\t * of the picker. If `veto` is called, the picker\n\t * will not trigger the `onDidAccept` event.\n\t */\n\tveto(): void;\n}\n\nexport interface IQuickPickDidAcceptEvent {\n\n\t/**\n\t * Signals if the picker item is to be accepted\n\t * in the background while keeping the picker open.\n\t */\n\tinBackground: boolean;\n}\n\n/**\n * Represents the activation behavior for items in a quick input. This means which item will be\n * \"active\" (aka focused).\n */\nexport enum ItemActivation {\n\t/**\n\t * No item will be active.\n\t */\n\tNONE,\n\t/**\n\t * First item will be active.\n\t */\n\tFIRST,\n\t/**\n\t * Second item will be active.\n\t */\n\tSECOND,\n\t/**\n\t * Last item will be active.\n\t */\n\tLAST\n}\n\n/**\n * Represents the focus options for a quick pick.\n */\nexport enum QuickPickFocus {\n\t/**\n\t * Focus the first item in the list.\n\t */\n\tFirst = 1,\n\t/**\n\t * Focus the second item in the list.\n\t */\n\tSecond,\n\t/**\n\t * Focus the last item in the list.\n\t */\n\tLast,\n\t/**\n\t * Focus the next item in the list.\n\t */\n\tNext,\n\t/**\n\t * Focus the previous item in the list.\n\t */\n\tPrevious,\n\t/**\n\t * Focus the next page in the list.\n\t */\n\tNextPage,\n\t/**\n\t * Focus the previous page in the list.\n\t */\n\tPreviousPage,\n\t/**\n\t * Focus the first item under the next separator.\n\t */\n\tNextSeparator,\n\t/**\n\t * Focus the first item under the current separator.\n\t */\n\tPreviousSeparator\n}\n\n/**\n * Represents a quick pick control that allows the user to select an item from a list of options.\n */\nexport interface IQuickPick<T extends IQuickPickItem, O extends { useSeparators: boolean } = { useSeparators: false }> extends IQuickInput {\n\n\t/**\n\t * The current value of the quick pick input.\n\t */\n\tvalue: string;\n\n\t/**\n\t * A method that allows to massage the value used for filtering, e.g, to remove certain parts.\n\t * @param value The value to be filtered.\n\t * @returns The filtered value.\n\t */\n\tfilterValue: (value: string) => string;\n\n\t/**\n\t * The ARIA label for the quick pick input.\n\t */\n\tariaLabel: string | undefined;\n\n\t/**\n\t * The placeholder text for the quick pick input.\n\t */\n\tplaceholder: string | undefined;\n\n\t/**\n\t * Text shown below the quick pick input.\n\t */\n\tprompt: string | undefined;\n\n\t/**\n\t * An event that is fired when the value of the quick pick input changes.\n\t */\n\treadonly onDidChangeValue: Event<string>;\n\n\t/**\n\t * An event that is fired when the quick pick is about to accept the selected item.\n\t */\n\treadonly onWillAccept: Event<IQuickPickWillAcceptEvent>;\n\n\t/**\n\t * An event that is fired when the quick pick has accepted the selected item.\n\t */\n\treadonly onDidAccept: Event<IQuickPickDidAcceptEvent>;\n\n\t/**\n\t * If enabled, the `onDidAccept` event will be fired when pressing the arrow-right key to accept the selected item without closing the picker.\n\t */\n\tcanAcceptInBackground: boolean;\n\n\t/**\n\t * An event that is fired when an item button is triggered.\n\t */\n\treadonly onDidTriggerItemButton: Event<IQuickPickItemButtonEvent<T>>;\n\n\t/**\n\t * An event that is fired when a separator button is triggered.\n\t */\n\treadonly onDidTriggerSeparatorButton: Event<IQuickPickSeparatorButtonEvent>;\n\n\t/**\n\t * The items to be displayed in the quick pick.\n\t */\n\titems: O extends { useSeparators: true } ? ReadonlyArray<T | IQuickPickSeparator> : ReadonlyArray<T>;\n\n\t/**\n\t * Whether multiple items can be selected. If so, checkboxes will be rendered.\n\t */\n\tcanSelectMany: boolean;\n\n\t/**\n\t * Whether to match on the description of the items.\n\t */\n\tmatchOnDescription: boolean;\n\n\t/**\n\t * Whether to match on the detail of the items.\n\t */\n\tmatchOnDetail: boolean;\n\n\t/**\n\t * Whether to match on the label of the items.\n\t */\n\tmatchOnLabel: boolean;\n\n\t/**\n\t * Whether to sort the items by label.\n\t */\n\tsortByLabel: boolean;\n\n\t/**\n\t * Whether to keep the scroll position when the quick pick input is updated.\n\t */\n\tkeepScrollPosition: boolean;\n\n\t/**\n\t * The configuration for quick navigation.\n\t */\n\tquickNavigate: IQuickNavigateConfiguration | undefined;\n\n\t/**\n\t * The currently active items.\n\t */\n\tactiveItems: ReadonlyArray<T>;\n\n\t/**\n\t * An event that is fired when the active items change.\n\t */\n\treadonly onDidChangeActive: Event<T[]>;\n\n\t/**\n\t * The item activation behavior for the next time `items` is set. Item activation means which\n\t * item is \"active\" (aka focused) when the quick pick is opened or when `items` is set.\n\t */\n\titemActivation: ItemActivation;\n\n\t/**\n\t * The currently selected items.\n\t */\n\tselectedItems: ReadonlyArray<T>;\n\n\t/**\n\t * An event that is fired when the selected items change.\n\t */\n\treadonly onDidChangeSelection: Event<T[]>;\n\n\t/**\n\t * The key modifiers.\n\t */\n\treadonly keyMods: IKeyMods;\n\n\t/**\n\t * The selection range for the value in the input.\n\t */\n\tvalueSelection: Readonly<[number, number]> | undefined;\n\n\t/**\n\t * Hides the input box from the picker UI. This is typically used in combination with quick-navigation where no search UI should be presented.\n\t */\n\thideInput: boolean;\n\n\t/**\n\t * Focus a particular item in the list. Used internally for keyboard navigation.\n\t * @param focus The focus behavior.\n\t */\n\tfocus(focus: QuickPickFocus): void;\n\n\t/**\n\t * Programmatically accepts an item. Used internally for keyboard navigation.\n\t * @param inBackground Whether you are accepting an item in the background and keeping the picker open.\n\t */\n\taccept(inBackground?: boolean): void;\n}\n\n/**\n * Represents an input box in a quick input dialog.\n */\nexport interface IInputBox extends IQuickInput {\n\n\t/**\n\t * Value shown in the input box.\n\t */\n\tvalue: string;\n\n\t/**\n\t * Provide start and end values to be selected in the input box.\n\t */\n\tvalueSelection: Readonly<[number, number]> | undefined;\n\n\t/**\n\t * Value shown as example for input.\n\t */\n\tplaceholder: string | undefined;\n\n\t/**\n\t * Determines if the input value should be hidden while typing.\n\t */\n\tpassword: boolean;\n\n\t/**\n\t * Event called when the input value changes.\n\t */\n\treadonly onDidChangeValue: Event<string>;\n\n\t/**\n\t * Event called when the user submits the input.\n\t */\n\treadonly onDidAccept: Event<void>;\n\n\t/**\n\t * Text show below the input box.\n\t */\n\tprompt: string | undefined;\n\n\t/**\n\t * An optional validation message indicating a problem with the current input value.\n\t * Returning undefined clears the validation message.\n\t */\n\tvalidationMessage: string | undefined;\n\n\t/**\n\t * Severity of the input validation message.\n\t */\n\tseverity: Severity;\n\n\t/**\n\t * Programmatically accepts an item. Used internally for keyboard navigation.\n\t */\n\taccept(): void;\n}\n\nexport enum QuickInputButtonLocation {\n\t/**\n\t * In the title bar.\n\t */\n\tTitle = 1,\n\n\t/**\n\t * To the right of the input box.\n\t */\n\tInline = 2,\n\n\t/**\n\t * At the far end inside the input box.\n\t * Used by the public API to create toggles.\n\t */\n\tInput = 3,\n}\n\n/**\n * Represents a button in the quick input UI.\n */\nexport interface IQuickInputButton {\n\t/**\n\t * The path to the icon for the button.\n\t * Either `iconPath` or `iconClass` is required.\n\t */\n\ticonPath?: { dark: URI; light?: URI };\n\t/**\n\t * The CSS class for the icon of the button.\n\t * Either `iconPath` or `iconClass` is required.\n\t */\n\ticonClass?: string;\n\t/**\n\t * The tooltip text for the button.\n\t */\n\ttooltip?: string;\n\t/**\n\t * Whether to always show the button.\n\t * By default, buttons are only visible when hovering over them with the mouse.\n\t */\n\talwaysVisible?: boolean;\n\t/**\n\t * Where the button should be rendered. The default is {@link QuickInputButtonLocation.Title}.\n\t * @note This property is ignored if the button was added to a QuickPickItem.\n\t */\n\tlocation?: QuickInputButtonLocation;\n\t/**\n\t * When present, indicates that the button is a toggle button that can be checked or unchecked.\n\t * The `checked` property indicates the current state of the toggle and will be updated\n\t * when the button is clicked.\n\t */\n\treadonly toggle?: { checked: boolean };\n}\n\n/**\n * Represents an event that occurs when a button associated with a quick pick item is clicked.\n * @template T - The type of the quick pick item.\n */\nexport interface IQuickPickItemButtonEvent<T extends IQuickPickItem> {\n\t/**\n\t * The button that was clicked.\n\t */\n\tbutton: IQuickInputButton;\n\t/**\n\t * The quick pick item associated with the button.\n\t */\n\titem: T;\n}\n\n/**\n * Represents an event that occurs when a separator button is clicked in a quick pick.\n */\nexport interface IQuickPickSeparatorButtonEvent {\n\t/**\n\t * The button that was clicked.\n\t */\n\tbutton: IQuickInputButton;\n\t/**\n\t * The separator associated with the button.\n\t */\n\tseparator: IQuickPickSeparator;\n}\n\n/**\n * Represents a context for a button associated with a quick pick item.\n * @template T - The type of the quick pick item.\n */\nexport interface IQuickPickItemButtonContext<T extends IQuickPickItem> extends IQuickPickItemButtonEvent<T> {\n\t/**\n\t * Removes the associated item from the quick pick.\n\t */\n\tremoveItem(): void;\n}\n\nexport type QuickPickInput<T = IQuickPickItem> = T | IQuickPickSeparator;\n\n\n//#region Fuzzy Scorer Support\n\nexport type IQuickPickItemWithResource = IQuickPickItem & { resource?: URI };\n\nexport class QuickPickItemScorerAccessor implements IItemAccessor<IQuickPickItemWithResource> {\n\n\tconstructor(private options?: { skipDescription?: boolean; skipPath?: boolean }) { }\n}\n\nexport const quickPickItemScorerAccessor = new QuickPickItemScorerAccessor();\n\n//#endregion\n\nexport const IQuickInputService = createDecorator<IQuickInputService>('quickInputService');\n\nexport type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;\n\nexport interface IQuickInputService {\n\n\treadonly _serviceBrand: undefined;\n\n\t/**\n\t * Provides access to the quick access providers.\n\t */\n\treadonly quickAccess: IQuickAccessController;\n\n\t/**\n\t * Opens the quick input box for selecting items and returns a promise\n\t * with the user selected item(s) if any.\n\t */\n\tpick<T extends IQuickPickItem>(picks: Promise<QuickPickInput<T>[]> | QuickPickInput<T>[], options?: IPickOptions<T> & { canPickMany: true }, token?: CancellationToken): Promise<T[] | undefined>;\n\tpick<T extends IQuickPickItem>(picks: Promise<QuickPickInput<T>[]> | QuickPickInput<T>[], options?: IPickOptions<T> & { canPickMany: false }, token?: CancellationToken): Promise<T | undefined>;\n\tpick<T extends IQuickPickItem>(picks: Promise<QuickPickInput<T>[]> | QuickPickInput<T>[], options?: Omit<IPickOptions<T>, 'canPickMany'>, token?: CancellationToken): Promise<T | undefined>;\n\n\t/**\n\t * Opens the quick input box for text input and returns a promise with the user typed value if any.\n\t */\n\tinput(options?: IInputOptions, token?: CancellationToken): Promise<string | undefined>;\n\n\t/**\n\t * Provides raw access to the quick pick controller.\n\t */\n\tcreateQuickPick<T extends IQuickPickItem>(options: { useSeparators: true }): IQuickPick<T, { useSeparators: true }>;\n\tcreateQuickPick<T extends IQuickPickItem>(options?: { useSeparators: boolean }): IQuickPick<T, { useSeparators: false }>;\n\n\t/**\n\t * Provides raw access to the input box controller.\n\t */\n\tcreateInputBox(): IInputBox;\n\n\t/**\n\t * Toggles hover for the current quick input item\n\t */\n\ttoggleHover(): void;\n\n\t/**\n\t * The current quick pick that is visible. Undefined if none is open.\n\t */\n\tcurrentQuickInput: IQuickInput | undefined;\n}\n\n//#region Quick Tree\n\n/**\n * Represents a quick tree control that displays hierarchical data with checkboxes.\n */\nexport interface IQuickTree<T extends IQuickTreeItem> extends IQuickInput {\n\n\t/**\n\t * Focus a particular item in the list. Used internally for keyboard navigation.\n\t * @param focus The focus behavior.\n\t */\n\tfocus(focus: QuickPickFocus): void;\n\n\t/**\n\t * Programmatically accepts an item. Used internally for keyboard navigation.\n\t * @param inBackground Whether you are accepting an item in the background and keeping the picker open.\n\t */\n\taccept(inBackground?: boolean): void;\n}\n\n/**\n * Represents a tree item in the quick tree.\n */\nexport interface IQuickTreeItem extends IQuickItem {\n\t/**\n\t * The checked state of the item. Can be true, false, or 'mixed' for tri-state.\n\t * When canSelectMany is false, this is ignored and the item is treated as a single selection.\n\t * When canSelectMany is true, this indicates the checkbox state of the item.\n\t * If undefined, the item is unchecked by default.\n\t */\n\tchecked?: boolean | 'mixed';\n\n\t/**\n\t * The children of this tree item.\n\t */\n\tchildren?: readonly IQuickTreeItem[];\n\n\t/**\n\t * Defaults to true, can be false to disable picks for a single item.\n\t * When false, the item is not selectable and does not respond to mouse/keyboard activation.\n\t */\n\tpickable?: boolean;\n}\n\n/**\n * Represents an event that occurs when the checkbox state of a tree item changes.\n * @template T - The type of the tree item.\n */\nexport interface IQuickTreeCheckboxEvent<T extends IQuickTreeItem> {\n\t/**\n\t * The tree item whose checkbox state changed.\n\t */\n\titem: T;\n\n\t/**\n\t * The new checked state.\n\t */\n\tchecked: boolean | 'mixed';\n}\n\n/**\n * Represents an event that occurs when a button associated with a quick tree item is clicked.\n * @template T - The type of the quick tree item.\n */\nexport interface IQuickTreeItemButtonEvent<T extends IQuickTreeItem> {\n\t/**\n\t * The button that was clicked.\n\t */\n\tbutton: IQuickInputButton;\n\t/**\n\t * The quick tree item associated with the button.\n\t */\n\titem: T;\n}\n\n//#endregion\n"]}
@@ -51,13 +51,13 @@ class ColorRegistry extends Disposable {
51
51
  }
52
52
  if (needsTransparency) {
53
53
  propertySchema.pattern = '^#(?:(?<rgba>[0-9a-fA-f]{3}[0-9a-eA-E])|(?:[0-9a-fA-F]{6}(?:(?![fF]{2})(?:[0-9a-fA-F]{2}))))?$';
54
- propertySchema.patternErrorMessage = nls.localize(2044, 'This color must be transparent or it will obscure content');
54
+ propertySchema.patternErrorMessage = nls.localize(2043, 'This color must be transparent or it will obscure content');
55
55
  }
56
56
  this.colorSchema.properties[id] = {
57
57
  description,
58
58
  oneOf: [
59
59
  propertySchema,
60
- { type: 'string', const: DEFAULT_COLOR_CONFIG_VALUE, description: nls.localize(2045, 'Use the default color.') }
60
+ { type: 'string', const: DEFAULT_COLOR_CONFIG_VALUE, description: nls.localize(2044, 'Use the default color.') }
61
61
  ]
62
62
  };
63
63
  this.colorReferenceSchema.enum.push(id);
@@ -6,26 +6,26 @@ import * as nls from '../../../../nls.js';
6
6
  // Import the effects we need
7
7
  import { Color } from '../../../../base/common/color.js';
8
8
  import { registerColor, transparent } from '../colorUtils.js';
9
- export const foreground = registerColor('foreground', { dark: '#CCCCCC', light: '#616161', hcDark: '#FFFFFF', hcLight: '#292929' }, nls.localize(1794, "Overall foreground color. This color is only used if not overridden by a component."));
10
- export const disabledForeground = registerColor('disabledForeground', { dark: '#CCCCCC80', light: '#61616180', hcDark: '#A5A5A5', hcLight: '#7F7F7F' }, nls.localize(1795, "Overall foreground for disabled elements. This color is only used if not overridden by a component."));
11
- export const errorForeground = registerColor('errorForeground', { dark: '#F48771', light: '#A1260D', hcDark: '#F48771', hcLight: '#B5200D' }, nls.localize(1796, "Overall foreground color for error messages. This color is only used if not overridden by a component."));
12
- export const descriptionForeground = registerColor('descriptionForeground', { light: '#717171', dark: transparent(foreground, 0.7), hcDark: transparent(foreground, 0.7), hcLight: transparent(foreground, 0.7) }, nls.localize(1797, "Foreground color for description text providing additional information, for example for a label."));
13
- export const iconForeground = registerColor('icon.foreground', { dark: '#C5C5C5', light: '#424242', hcDark: '#FFFFFF', hcLight: '#292929' }, nls.localize(1798, "The default color for icons in the workbench."));
14
- export const focusBorder = registerColor('focusBorder', { dark: '#007FD4', light: '#0090F1', hcDark: '#F38518', hcLight: '#006BBD' }, nls.localize(1799, "Overall border color for focused elements. This color is only used if not overridden by a component."));
15
- export const contrastBorder = registerColor('contrastBorder', { light: null, dark: null, hcDark: '#6FC3DF', hcLight: '#0F4A85' }, nls.localize(1800, "An extra border around elements to separate them from others for greater contrast."));
16
- export const activeContrastBorder = registerColor('contrastActiveBorder', { light: null, dark: null, hcDark: focusBorder, hcLight: focusBorder }, nls.localize(1801, "An extra border around active elements to separate them from others for greater contrast."));
17
- export const selectionBackground = registerColor('selection.background', null, nls.localize(1802, "The background color of text selections in the workbench (e.g. for input fields or text areas). Note that this does not apply to selections within the editor."));
9
+ export const foreground = registerColor('foreground', { dark: '#CCCCCC', light: '#616161', hcDark: '#FFFFFF', hcLight: '#292929' }, nls.localize(1793, "Overall foreground color. This color is only used if not overridden by a component."));
10
+ export const disabledForeground = registerColor('disabledForeground', { dark: '#CCCCCC80', light: '#61616180', hcDark: '#A5A5A5', hcLight: '#7F7F7F' }, nls.localize(1794, "Overall foreground for disabled elements. This color is only used if not overridden by a component."));
11
+ export const errorForeground = registerColor('errorForeground', { dark: '#F48771', light: '#A1260D', hcDark: '#F48771', hcLight: '#B5200D' }, nls.localize(1795, "Overall foreground color for error messages. This color is only used if not overridden by a component."));
12
+ export const descriptionForeground = registerColor('descriptionForeground', { light: '#717171', dark: transparent(foreground, 0.7), hcDark: transparent(foreground, 0.7), hcLight: transparent(foreground, 0.7) }, nls.localize(1796, "Foreground color for description text providing additional information, for example for a label."));
13
+ export const iconForeground = registerColor('icon.foreground', { dark: '#C5C5C5', light: '#424242', hcDark: '#FFFFFF', hcLight: '#292929' }, nls.localize(1797, "The default color for icons in the workbench."));
14
+ export const focusBorder = registerColor('focusBorder', { dark: '#007FD4', light: '#0090F1', hcDark: '#F38518', hcLight: '#006BBD' }, nls.localize(1798, "Overall border color for focused elements. This color is only used if not overridden by a component."));
15
+ export const contrastBorder = registerColor('contrastBorder', { light: null, dark: null, hcDark: '#6FC3DF', hcLight: '#0F4A85' }, nls.localize(1799, "An extra border around elements to separate them from others for greater contrast."));
16
+ export const activeContrastBorder = registerColor('contrastActiveBorder', { light: null, dark: null, hcDark: focusBorder, hcLight: focusBorder }, nls.localize(1800, "An extra border around active elements to separate them from others for greater contrast."));
17
+ export const selectionBackground = registerColor('selection.background', null, nls.localize(1801, "The background color of text selections in the workbench (e.g. for input fields or text areas). Note that this does not apply to selections within the editor."));
18
18
  // ------ text link
19
- export const textLinkForeground = registerColor('textLink.foreground', { light: '#006AB1', dark: '#3794FF', hcDark: '#21A6FF', hcLight: '#0F4A85' }, nls.localize(1803, "Foreground color for links in text."));
20
- export const textLinkActiveForeground = registerColor('textLink.activeForeground', { light: '#006AB1', dark: '#3794FF', hcDark: '#21A6FF', hcLight: '#0F4A85' }, nls.localize(1804, "Foreground color for links in text when clicked on and on mouse hover."));
21
- export const textSeparatorForeground = registerColor('textSeparator.foreground', { light: '#0000002e', dark: '#ffffff2e', hcDark: Color.black, hcLight: '#292929' }, nls.localize(1805, "Color for text separators."));
19
+ export const textLinkForeground = registerColor('textLink.foreground', { light: '#006AB1', dark: '#3794FF', hcDark: '#21A6FF', hcLight: '#0F4A85' }, nls.localize(1802, "Foreground color for links in text."));
20
+ export const textLinkActiveForeground = registerColor('textLink.activeForeground', { light: '#006AB1', dark: '#3794FF', hcDark: '#21A6FF', hcLight: '#0F4A85' }, nls.localize(1803, "Foreground color for links in text when clicked on and on mouse hover."));
21
+ export const textSeparatorForeground = registerColor('textSeparator.foreground', { light: '#0000002e', dark: '#ffffff2e', hcDark: Color.black, hcLight: '#292929' }, nls.localize(1804, "Color for text separators."));
22
22
  // ------ text preformat
23
- export const textPreformatForeground = registerColor('textPreformat.foreground', { light: '#A31515', dark: '#D7BA7D', hcDark: '#FFFFFF', hcLight: '#FFFFFF' }, nls.localize(1806, "Foreground color for preformatted text segments."));
24
- export const textPreformatBackground = registerColor('textPreformat.background', { light: '#0000001A', dark: '#FFFFFF1A', hcDark: null, hcLight: '#09345f' }, nls.localize(1807, "Background color for preformatted text segments."));
25
- export const textPreformatBorder = registerColor('textPreformat.border', { light: null, dark: null, hcDark: contrastBorder, hcLight: null }, nls.localize(1808, "Border color for preformatted text segments."));
23
+ export const textPreformatForeground = registerColor('textPreformat.foreground', { light: '#A31515', dark: '#D7BA7D', hcDark: '#FFFFFF', hcLight: '#FFFFFF' }, nls.localize(1805, "Foreground color for preformatted text segments."));
24
+ export const textPreformatBackground = registerColor('textPreformat.background', { light: '#0000001A', dark: '#FFFFFF1A', hcDark: null, hcLight: '#09345f' }, nls.localize(1806, "Background color for preformatted text segments."));
25
+ export const textPreformatBorder = registerColor('textPreformat.border', { light: null, dark: null, hcDark: contrastBorder, hcLight: null }, nls.localize(1807, "Border color for preformatted text segments."));
26
26
  // ------ text block quote
27
- export const textBlockQuoteBackground = registerColor('textBlockQuote.background', { light: '#f2f2f2', dark: '#222222', hcDark: null, hcLight: '#F2F2F2' }, nls.localize(1809, "Background color for block quotes in text."));
28
- export const textBlockQuoteBorder = registerColor('textBlockQuote.border', { light: '#007acc80', dark: '#007acc80', hcDark: Color.white, hcLight: '#292929' }, nls.localize(1810, "Border color for block quotes in text."));
27
+ export const textBlockQuoteBackground = registerColor('textBlockQuote.background', { light: '#f2f2f2', dark: '#222222', hcDark: null, hcLight: '#F2F2F2' }, nls.localize(1808, "Background color for block quotes in text."));
28
+ export const textBlockQuoteBorder = registerColor('textBlockQuote.border', { light: '#007acc80', dark: '#007acc80', hcDark: Color.white, hcLight: '#292929' }, nls.localize(1809, "Border color for block quotes in text."));
29
29
  // ------ text code block
30
- export const textCodeBlockBackground = registerColor('textCodeBlock.background', { light: '#dcdcdc66', dark: '#0a0a0a66', hcDark: Color.black, hcLight: '#F2F2F2' }, nls.localize(1811, "Background color for code blocks in text."));
30
+ export const textCodeBlockBackground = registerColor('textCodeBlock.background', { light: '#dcdcdc66', dark: '#0a0a0a66', hcDark: Color.black, hcLight: '#F2F2F2' }, nls.localize(1810, "Background color for code blocks in text."));
31
31
  //# sourceMappingURL=baseColors.js.map
@@ -7,12 +7,12 @@ import { registerColor, transparent } from '../colorUtils.js';
7
7
  import { foreground } from './baseColors.js';
8
8
  import { editorErrorForeground, editorInfoForeground, editorWarningForeground } from './editorColors.js';
9
9
  import { minimapFindMatch } from './minimapColors.js';
10
- export const chartsForeground = registerColor('charts.foreground', foreground, nls.localize(1812, "The foreground color used in charts."));
11
- export const chartsLines = registerColor('charts.lines', transparent(foreground, .5), nls.localize(1813, "The color used for horizontal lines in charts."));
12
- export const chartsRed = registerColor('charts.red', editorErrorForeground, nls.localize(1814, "The red color used in chart visualizations."));
13
- export const chartsBlue = registerColor('charts.blue', editorInfoForeground, nls.localize(1815, "The blue color used in chart visualizations."));
14
- export const chartsYellow = registerColor('charts.yellow', editorWarningForeground, nls.localize(1816, "The yellow color used in chart visualizations."));
15
- export const chartsOrange = registerColor('charts.orange', minimapFindMatch, nls.localize(1817, "The orange color used in chart visualizations."));
16
- export const chartsGreen = registerColor('charts.green', { dark: '#89D185', light: '#388A34', hcDark: '#89D185', hcLight: '#374e06' }, nls.localize(1818, "The green color used in chart visualizations."));
17
- export const chartsPurple = registerColor('charts.purple', { dark: '#B180D7', light: '#652D90', hcDark: '#B180D7', hcLight: '#652D90' }, nls.localize(1819, "The purple color used in chart visualizations."));
10
+ export const chartsForeground = registerColor('charts.foreground', foreground, nls.localize(1811, "The foreground color used in charts."));
11
+ export const chartsLines = registerColor('charts.lines', transparent(foreground, .5), nls.localize(1812, "The color used for horizontal lines in charts."));
12
+ export const chartsRed = registerColor('charts.red', editorErrorForeground, nls.localize(1813, "The red color used in chart visualizations."));
13
+ export const chartsBlue = registerColor('charts.blue', editorInfoForeground, nls.localize(1814, "The blue color used in chart visualizations."));
14
+ export const chartsYellow = registerColor('charts.yellow', editorWarningForeground, nls.localize(1815, "The yellow color used in chart visualizations."));
15
+ export const chartsOrange = registerColor('charts.orange', minimapFindMatch, nls.localize(1816, "The orange color used in chart visualizations."));
16
+ export const chartsGreen = registerColor('charts.green', { dark: '#89D185', light: '#388A34', hcDark: '#89D185', hcLight: '#374e06' }, nls.localize(1817, "The green color used in chart visualizations."));
17
+ export const chartsPurple = registerColor('charts.purple', { dark: '#B180D7', light: '#652D90', hcDark: '#B180D7', hcLight: '#652D90' }, nls.localize(1818, "The purple color used in chart visualizations."));
18
18
  //# sourceMappingURL=chartsColors.js.map