monaco-editor-core 0.56.0-dev-20251217 → 0.56.0-dev-20251218

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 (186) 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 +4 -2
  18. package/esm/vs/base/browser/ui/actionbar/actionViewItems.js.map +1 -1
  19. package/esm/vs/base/browser/ui/findinput/findInput.js +6 -1
  20. package/esm/vs/base/browser/ui/findinput/findInput.js.map +1 -1
  21. package/esm/vs/base/browser/ui/inputbox/inputBox.js +17 -1
  22. package/esm/vs/base/browser/ui/inputbox/inputBox.js.map +1 -1
  23. package/esm/vs/base/browser/ui/toggle/toggle.js +78 -6
  24. package/esm/vs/base/browser/ui/toggle/toggle.js.map +1 -1
  25. package/esm/vs/editor/browser/services/editorWorkerService.js +6 -2
  26. package/esm/vs/editor/browser/services/editorWorkerService.js.map +1 -1
  27. package/esm/vs/editor/common/config/editorConfigurationSchema.js +49 -47
  28. package/esm/vs/editor/common/config/editorConfigurationSchema.js.map +1 -1
  29. package/esm/vs/editor/common/config/editorOptions.js +410 -410
  30. package/esm/vs/editor/common/core/editorColorRegistry.js +69 -69
  31. package/esm/vs/editor/common/editorContextKeys.js +47 -47
  32. package/esm/vs/editor/common/languages/modesRegistry.js +1 -1
  33. package/esm/vs/editor/common/languages.js +56 -56
  34. package/esm/vs/editor/common/model/editStack.js +1 -1
  35. package/esm/vs/editor/common/standaloneStrings.js +11 -11
  36. package/esm/vs/editor/common/viewLayout/viewLineRenderer.js +2 -2
  37. package/esm/vs/editor/contrib/anchorSelect/browser/anchorSelect.js +6 -6
  38. package/esm/vs/editor/contrib/bracketMatching/browser/bracketMatching.js +6 -6
  39. package/esm/vs/editor/contrib/caretOperations/browser/caretOperations.js +2 -2
  40. package/esm/vs/editor/contrib/caretOperations/browser/transpose.js +1 -1
  41. package/esm/vs/editor/contrib/clipboard/browser/clipboard.js +17 -17
  42. package/esm/vs/editor/contrib/codeAction/browser/codeAction.js +1 -1
  43. package/esm/vs/editor/contrib/codeAction/browser/codeActionCommands.js +29 -29
  44. package/esm/vs/editor/contrib/codeAction/browser/codeActionContributions.js +3 -3
  45. package/esm/vs/editor/contrib/codeAction/browser/codeActionController.js +3 -3
  46. package/esm/vs/editor/contrib/codeAction/browser/codeActionMenu.js +8 -8
  47. package/esm/vs/editor/contrib/codeAction/browser/lightBulbWidget.js +9 -9
  48. package/esm/vs/editor/contrib/codelens/browser/codelensController.js +2 -2
  49. package/esm/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerCloseButton.js +1 -1
  50. package/esm/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerHeader.js +1 -1
  51. package/esm/vs/editor/contrib/colorPicker/browser/hoverColorPicker/hoverColorPickerParticipant.js +1 -1
  52. package/esm/vs/editor/contrib/colorPicker/browser/standaloneColorPicker/standaloneColorPickerActions.js +7 -7
  53. package/esm/vs/editor/contrib/comment/browser/comment.js +6 -6
  54. package/esm/vs/editor/contrib/contextmenu/browser/contextmenu.js +10 -10
  55. package/esm/vs/editor/contrib/cursorUndo/browser/cursorUndo.js +2 -2
  56. package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js +4 -4
  57. package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js +9 -9
  58. package/esm/vs/editor/contrib/dropOrPasteInto/browser/defaultProviders.js +8 -8
  59. package/esm/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController.js +3 -3
  60. package/esm/vs/editor/contrib/dropOrPasteInto/browser/postEditWidget.js +2 -2
  61. package/esm/vs/editor/contrib/editorState/browser/keybindingCancellation.js +1 -1
  62. package/esm/vs/editor/contrib/find/browser/findController.js +16 -16
  63. package/esm/vs/editor/contrib/find/browser/findWidget.js +26 -26
  64. package/esm/vs/editor/contrib/folding/browser/folding.js +20 -20
  65. package/esm/vs/editor/contrib/folding/browser/folding.js.map +1 -1
  66. package/esm/vs/editor/contrib/folding/browser/foldingDecorations.js +9 -9
  67. package/esm/vs/editor/contrib/fontZoom/browser/fontZoom.js +3 -3
  68. package/esm/vs/editor/contrib/format/browser/formatActions.js +2 -2
  69. package/esm/vs/editor/contrib/gotoError/browser/gotoError.js +8 -8
  70. package/esm/vs/editor/contrib/gotoError/browser/gotoErrorWidget.js +14 -14
  71. package/esm/vs/editor/contrib/gotoSymbol/browser/goToCommands.js +39 -39
  72. package/esm/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js +1 -1
  73. package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesController.js +3 -3
  74. package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesTree.js +3 -3
  75. package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget.js +3 -3
  76. package/esm/vs/editor/contrib/gotoSymbol/browser/referencesModel.js +8 -8
  77. package/esm/vs/editor/contrib/gotoSymbol/browser/symbolNavigation.js +3 -3
  78. package/esm/vs/editor/contrib/gpu/browser/gpuActions.js +4 -4
  79. package/esm/vs/editor/contrib/hover/browser/hoverActionIds.js +2 -2
  80. package/esm/vs/editor/contrib/hover/browser/hoverActions.js +24 -24
  81. package/esm/vs/editor/contrib/hover/browser/hoverCopyButton.js +2 -2
  82. package/esm/vs/editor/contrib/hover/browser/markdownHoverParticipant.js +9 -9
  83. package/esm/vs/editor/contrib/hover/browser/markerHoverParticipant.js +5 -5
  84. package/esm/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace.js +2 -2
  85. package/esm/vs/editor/contrib/indentation/browser/indentation.js +20 -20
  86. package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsHover.js +8 -8
  87. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/commands.js +21 -21
  88. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionContextKeys.js +13 -13
  89. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js +1 -1
  90. package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/hoverParticipant.js +2 -2
  91. package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/inlineCompletionsHintsWidget.js +5 -5
  92. package/esm/vs/editor/contrib/inlineCompletions/browser/model/renameSymbolProcessor.js +2 -2
  93. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorMenu.js +6 -6
  94. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js +1 -1
  95. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsWordReplacementView.js +3 -3
  96. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/theme.js +20 -20
  97. package/esm/vs/editor/contrib/insertFinalNewLine/browser/insertFinalNewLine.js +1 -1
  98. package/esm/vs/editor/contrib/lineSelection/browser/lineSelection.js +1 -1
  99. package/esm/vs/editor/contrib/linesOperations/browser/linesOperations.js +31 -31
  100. package/esm/vs/editor/contrib/linkedEditing/browser/linkedEditing.js +2 -2
  101. package/esm/vs/editor/contrib/links/browser/links.js +10 -10
  102. package/esm/vs/editor/contrib/message/browser/messageController.js +1 -1
  103. package/esm/vs/editor/contrib/multicursor/browser/multicursor.js +22 -22
  104. package/esm/vs/editor/contrib/parameterHints/browser/parameterHints.js +1 -1
  105. package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +4 -4
  106. package/esm/vs/editor/contrib/peekView/browser/peekView.js +18 -18
  107. package/esm/vs/editor/contrib/placeholderText/browser/placeholderText.contribution.js +1 -1
  108. package/esm/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js +25 -27
  109. package/esm/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js.map +1 -1
  110. package/esm/vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess.js +32 -32
  111. package/esm/vs/editor/contrib/readOnlyMessage/browser/contribution.js +2 -2
  112. package/esm/vs/editor/contrib/rename/browser/rename.js +11 -11
  113. package/esm/vs/editor/contrib/rename/browser/renameWidget.js +7 -7
  114. package/esm/vs/editor/contrib/smartSelect/browser/smartSelect.js +4 -4
  115. package/esm/vs/editor/contrib/snippet/browser/snippetController2.js +4 -4
  116. package/esm/vs/editor/contrib/snippet/browser/snippetVariables.js +4 -4
  117. package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollActions.js +11 -11
  118. package/esm/vs/editor/contrib/suggest/browser/suggest.js +9 -9
  119. package/esm/vs/editor/contrib/suggest/browser/suggestController.js +11 -11
  120. package/esm/vs/editor/contrib/suggest/browser/suggestWidget.js +17 -17
  121. package/esm/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js +2 -2
  122. package/esm/vs/editor/contrib/suggest/browser/suggestWidgetRenderer.js +2 -2
  123. package/esm/vs/editor/contrib/suggest/browser/wordContextKey.js +1 -1
  124. package/esm/vs/editor/contrib/symbolIcons/browser/symbolIcons.js +33 -33
  125. package/esm/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js +4 -4
  126. package/esm/vs/editor/contrib/tokenization/browser/tokenization.js +1 -1
  127. package/esm/vs/editor/contrib/unicodeHighlighter/browser/bannerController.js +1 -1
  128. package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +24 -24
  129. package/esm/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js +5 -5
  130. package/esm/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.js +9 -9
  131. package/esm/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js +3 -3
  132. package/esm/vs/editor/contrib/wordOperations/browser/wordOperations.js +3 -3
  133. package/esm/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js +62 -62
  134. package/esm/vs/platform/action/common/actionCommonCategories.js +6 -6
  135. package/esm/vs/platform/actionWidget/browser/actionList.js +4 -4
  136. package/esm/vs/platform/actionWidget/browser/actionWidget.js +7 -7
  137. package/esm/vs/platform/actions/browser/menuEntryActionViewItem.js +5 -5
  138. package/esm/vs/platform/actions/browser/toolbar.js +2 -2
  139. package/esm/vs/platform/actions/common/menuService.js +2 -2
  140. package/esm/vs/platform/configuration/common/configurationRegistry.js +10 -10
  141. package/esm/vs/platform/contextkey/browser/contextKeyService.js +1 -1
  142. package/esm/vs/platform/contextkey/common/contextkey.js +9 -9
  143. package/esm/vs/platform/contextkey/common/contextkeys.js +9 -9
  144. package/esm/vs/platform/contextkey/common/scanner.js +5 -5
  145. package/esm/vs/platform/history/browser/contextScopedHistoryWidget.js +1 -1
  146. package/esm/vs/platform/hover/browser/hoverWidget.js +1 -1
  147. package/esm/vs/platform/hover/browser/updatableHoverWidget.js +1 -1
  148. package/esm/vs/platform/keybinding/common/abstractKeybindingService.js +4 -4
  149. package/esm/vs/platform/list/browser/listService.js +27 -27
  150. package/esm/vs/platform/markers/common/markerService.js +2 -2
  151. package/esm/vs/platform/markers/common/markers.js +6 -6
  152. package/esm/vs/platform/quickinput/browser/commandsQuickAccess.js +8 -8
  153. package/esm/vs/platform/quickinput/browser/helpQuickAccess.js +1 -1
  154. package/esm/vs/platform/quickinput/browser/media/quickInput.css +38 -4
  155. package/esm/vs/platform/quickinput/browser/quickInput.js +42 -14
  156. package/esm/vs/platform/quickinput/browser/quickInput.js.map +1 -1
  157. package/esm/vs/platform/quickinput/browser/quickInputActions.js +5 -5
  158. package/esm/vs/platform/quickinput/browser/quickInputBox.js +13 -1
  159. package/esm/vs/platform/quickinput/browser/quickInputBox.js.map +1 -1
  160. package/esm/vs/platform/quickinput/browser/quickInputController.js +22 -12
  161. package/esm/vs/platform/quickinput/browser/quickInputController.js.map +1 -1
  162. package/esm/vs/platform/quickinput/browser/quickInputList.js +17 -12
  163. package/esm/vs/platform/quickinput/browser/quickInputList.js.map +1 -1
  164. package/esm/vs/platform/quickinput/browser/quickInputUtils.js +36 -8
  165. package/esm/vs/platform/quickinput/browser/quickInputUtils.js.map +1 -1
  166. package/esm/vs/platform/quickinput/browser/tree/quickInputTreeAccessibilityProvider.js +1 -1
  167. package/esm/vs/platform/quickinput/browser/tree/quickInputTreeController.js +3 -3
  168. package/esm/vs/platform/quickinput/browser/tree/quickInputTreeController.js.map +1 -1
  169. package/esm/vs/platform/quickinput/browser/tree/quickInputTreeRenderer.js +8 -4
  170. package/esm/vs/platform/quickinput/browser/tree/quickInputTreeRenderer.js.map +1 -1
  171. package/esm/vs/platform/quickinput/common/quickInput.js.map +1 -1
  172. package/esm/vs/platform/theme/common/colorUtils.js +2 -2
  173. package/esm/vs/platform/theme/common/colors/baseColors.js +18 -18
  174. package/esm/vs/platform/theme/common/colors/chartsColors.js +8 -8
  175. package/esm/vs/platform/theme/common/colors/editorColors.js +95 -95
  176. package/esm/vs/platform/theme/common/colors/inputColors.js +47 -47
  177. package/esm/vs/platform/theme/common/colors/listColors.js +36 -36
  178. package/esm/vs/platform/theme/common/colors/menuColors.js +7 -7
  179. package/esm/vs/platform/theme/common/colors/minimapColors.js +11 -11
  180. package/esm/vs/platform/theme/common/colors/miscColors.js +16 -16
  181. package/esm/vs/platform/theme/common/colors/quickpickColors.js +9 -9
  182. package/esm/vs/platform/theme/common/colors/searchColors.js +3 -3
  183. package/esm/vs/platform/theme/common/iconRegistry.js +6 -6
  184. package/esm/vs/platform/undoRedo/common/undoRedoService.js +20 -20
  185. package/esm/vs/platform/workspace/common/workspace.js +1 -1
  186. package/package.json +2 -2
@@ -31,22 +31,22 @@ import { IHoverService, WorkbenchHoverDelegate } from '../../hover/browser/hover
31
31
  import { ContextKeyExpr, RawContextKey } from '../../contextkey/common/contextkey.js';
32
32
  import { observableValue } from '../../../base/common/observable.js';
33
33
  export const inQuickInputContextKeyValue = 'inQuickInput';
34
- export const InQuickInputContextKey = new RawContextKey(inQuickInputContextKeyValue, false, localize(1767, "Whether keyboard focus is inside the quick input control"));
34
+ export const InQuickInputContextKey = new RawContextKey(inQuickInputContextKeyValue, false, localize(1768, "Whether keyboard focus is inside the quick input control"));
35
35
  export const inQuickInputContext = ContextKeyExpr.has(inQuickInputContextKeyValue);
36
36
  export const quickInputAlignmentContextKeyValue = 'quickInputAlignment';
37
- export const QuickInputAlignmentContextKey = new RawContextKey(quickInputAlignmentContextKeyValue, 'top', localize(1768, "The alignment of the quick input"));
37
+ export const QuickInputAlignmentContextKey = new RawContextKey(quickInputAlignmentContextKeyValue, 'top', localize(1769, "The alignment of the quick input"));
38
38
  export const quickInputTypeContextKeyValue = 'quickInputType';
39
- export const QuickInputTypeContextKey = new RawContextKey(quickInputTypeContextKeyValue, undefined, localize(1769, "The type of the currently visible quick input"));
39
+ export const QuickInputTypeContextKey = new RawContextKey(quickInputTypeContextKeyValue, undefined, localize(1770, "The type of the currently visible quick input"));
40
40
  export const endOfQuickInputBoxContextKeyValue = 'cursorAtEndOfQuickInputBox';
41
- export const EndOfQuickInputBoxContextKey = new RawContextKey(endOfQuickInputBoxContextKeyValue, false, localize(1770, "Whether the cursor in the quick input is at the end of the input box"));
41
+ export const EndOfQuickInputBoxContextKey = new RawContextKey(endOfQuickInputBoxContextKeyValue, false, localize(1771, "Whether the cursor in the quick input is at the end of the input box"));
42
42
  export const endOfQuickInputBoxContext = ContextKeyExpr.has(endOfQuickInputBoxContextKeyValue);
43
43
  export const backButton = {
44
44
  iconClass: ThemeIcon.asClassName(Codicon.quickInputBack),
45
- tooltip: localize(1771, "Back"),
45
+ tooltip: localize(1772, "Back"),
46
46
  handle: -1 // TODO
47
47
  };
48
48
  export class QuickInput extends Disposable {
49
- static { this.noPromptMessage = localize(1772, "Press 'Enter' to confirm your input or 'Escape' to cancel"); }
49
+ static { this.noPromptMessage = localize(1773, "Press 'Enter' to confirm your input or 'Escape' to cancel"); }
50
50
  constructor(ui) {
51
51
  super();
52
52
  this.ui = ui;
@@ -58,6 +58,7 @@ export class QuickInput extends Disposable {
58
58
  this._leftButtons = [];
59
59
  this._rightButtons = [];
60
60
  this._inlineButtons = [];
61
+ this._inputButtons = [];
61
62
  this.buttonsUpdated = false;
62
63
  this._toggles = [];
63
64
  this.togglesUpdated = false;
@@ -68,6 +69,7 @@ export class QuickInput extends Disposable {
68
69
  this.onWillHideEmitter = this._register(new Emitter());
69
70
  this.onDisposeEmitter = this._register(new Emitter());
70
71
  this.visibleDisposables = this._register(new DisposableStore());
72
+ this.onDidTriggerButton = this.onDidTriggerButtonEmitter.event;
71
73
  this.onDidHide = this.onDidHideEmitter.event;
72
74
  }
73
75
  get visible() {
@@ -141,13 +143,37 @@ export class QuickInput extends Disposable {
141
143
  return [
142
144
  ...this._leftButtons,
143
145
  ...this._rightButtons,
144
- ...this._inlineButtons
146
+ ...this._inlineButtons,
147
+ ...this._inputButtons
145
148
  ];
146
149
  }
147
150
  set buttons(buttons) {
148
- this._leftButtons = buttons.filter(b => b === backButton);
149
- this._rightButtons = buttons.filter(b => b !== backButton && b.location !== QuickInputButtonLocation.Inline);
150
- this._inlineButtons = buttons.filter(b => b.location === QuickInputButtonLocation.Inline);
151
+ const leftButtons = [];
152
+ const rightButtons = [];
153
+ const inlineButtons = [];
154
+ const inputButtons = [];
155
+ for (const button of buttons) {
156
+ if (button === backButton) {
157
+ leftButtons.push(button);
158
+ }
159
+ else {
160
+ switch (button.location) {
161
+ case QuickInputButtonLocation.Inline:
162
+ inlineButtons.push(button);
163
+ break;
164
+ case QuickInputButtonLocation.Input:
165
+ inputButtons.push(button);
166
+ break;
167
+ default:
168
+ rightButtons.push(button);
169
+ break;
170
+ }
171
+ }
172
+ }
173
+ this._leftButtons = leftButtons;
174
+ this._rightButtons = rightButtons;
175
+ this._inlineButtons = inlineButtons;
176
+ this._inputButtons = inputButtons;
151
177
  this.buttonsUpdated = true;
152
178
  this.update();
153
179
  }
@@ -271,6 +297,8 @@ export class QuickInput extends Disposable {
271
297
  const inlineButtons = this._inlineButtons
272
298
  .map((button, index) => quickInputButtonToAction(button, `id-${index}`, async () => this.onDidTriggerButtonEmitter.fire(button)));
273
299
  this.ui.inlineActionBar.push(inlineButtons, { icon: true, label: false });
300
+ this.ui.inputBox.actions = this._inputButtons
301
+ .map((button, index) => quickInputButtonToAction(button, `id-${index}`, async () => this.onDidTriggerButtonEmitter.fire(button)));
274
302
  }
275
303
  if (this.togglesUpdated) {
276
304
  this.togglesUpdated = false;
@@ -321,7 +349,7 @@ export class QuickInput extends Disposable {
321
349
  }
322
350
  getSteps() {
323
351
  if (this.step && this.totalSteps) {
324
- return localize(1773, "{0}/{1}", this.step, this.totalSteps);
352
+ return localize(1774, "{0}/{1}", this.step, this.totalSteps);
325
353
  }
326
354
  if (this.step) {
327
355
  return String(this.step);
@@ -351,7 +379,7 @@ export class QuickInput extends Disposable {
351
379
  }
352
380
  }
353
381
  export class QuickPick extends QuickInput {
354
- static { this.DEFAULT_ARIA_LABEL = localize(1774, "Type to narrow down results."); }
382
+ static { this.DEFAULT_ARIA_LABEL = localize(1775, "Type to narrow down results."); }
355
383
  constructor(ui) {
356
384
  super(ui);
357
385
  this._value = '';
@@ -593,7 +621,7 @@ export class QuickPick extends QuickInput {
593
621
  this.update();
594
622
  }
595
623
  get okLabel() {
596
- return this._okLabel ?? localize(1775, "OK");
624
+ return this._okLabel ?? localize(1776, "OK");
597
625
  }
598
626
  set okLabel(okLabel) {
599
627
  this._okLabel = okLabel;
@@ -940,7 +968,7 @@ export class InputBox extends QuickInput {
940
968
  set prompt(prompt) {
941
969
  this._prompt = prompt;
942
970
  this.noValidationMessage = prompt
943
- ? localize(1776, "{0} (Press 'Enter' to confirm or 'Escape' to cancel)", prompt)
971
+ ? localize(1777, "{0} (Press 'Enter' to confirm or 'Escape' to cancel)", prompt)
944
972
  : QuickInput.noPromptMessage;
945
973
  this.update();
946
974
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["vs/platform/quickinput/browser/quickInput.ts"],"names":[],"mappings":"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","file":"quickInput.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport * as dom from '../../../base/browser/dom.js';\nimport { StandardKeyboardEvent } from '../../../base/browser/keyboardEvent.js';\nimport { ActionBar } from '../../../base/browser/ui/actionbar/actionbar.js';\nimport { Button, IButtonStyles } from '../../../base/browser/ui/button/button.js';\nimport { CountBadge, ICountBadgeStyles } from '../../../base/browser/ui/countBadge/countBadge.js';\nimport { IHoverDelegate, IHoverDelegateOptions } from '../../../base/browser/ui/hover/hoverDelegate.js';\nimport { IInputBoxStyles } from '../../../base/browser/ui/inputbox/inputBox.js';\nimport { IKeybindingLabelStyles } from '../../../base/browser/ui/keybindingLabel/keybindingLabel.js';\nimport { IListStyles } from '../../../base/browser/ui/list/listWidget.js';\nimport { IProgressBarStyles, ProgressBar } from '../../../base/browser/ui/progressbar/progressbar.js';\nimport { IToggleStyles, Toggle, TriStateCheckbox } from '../../../base/browser/ui/toggle/toggle.js';\nimport { equals } from '../../../base/common/arrays.js';\nimport { TimeoutTimer } from '../../../base/common/async.js';\nimport { Codicon } from '../../../base/common/codicons.js';\nimport { Emitter, Event, EventBufferer } from '../../../base/common/event.js';\nimport { KeyCode } from '../../../base/common/keyCodes.js';\nimport { Disposable, DisposableStore } from '../../../base/common/lifecycle.js';\nimport { isIOS } from '../../../base/common/platform.js';\nimport Severity from '../../../base/common/severity.js';\nimport { ThemeIcon } from '../../../base/common/themables.js';\nimport './media/quickInput.css';\nimport { localize } from '../../../nls.js';\nimport { IInputBox, IKeyMods, IQuickInput, IQuickInputButton, IQuickInputHideEvent, IQuickInputToggle, IQuickNavigateConfiguration, IQuickPick, IQuickPickDidAcceptEvent, IQuickPickItem, IQuickPickItemButtonEvent, IQuickPickSeparator, IQuickPickSeparatorButtonEvent, IQuickPickWillAcceptEvent, ItemActivation, NO_KEY_MODS, QuickInputButtonLocation, QuickInputHideReason, QuickInputType, QuickPickFocus } from '../common/quickInput.js';\nimport { QuickInputBox } from './quickInputBox.js';\nimport { quickInputButtonToAction, renderQuickInputDescription } from './quickInputUtils.js';\nimport { IConfigurationService } from '../../configuration/common/configuration.js';\nimport { IHoverService, WorkbenchHoverDelegate } from '../../hover/browser/hover.js';\nimport { QuickInputList } from './quickInputList.js';\nimport { IHoverOptions } from '../../../base/browser/ui/hover/hover.js';\nimport { ContextKeyExpr, RawContextKey } from '../../contextkey/common/contextkey.js';\nimport { QuickInputTreeController } from './tree/quickInputTreeController.js';\nimport { observableValue } from '../../../base/common/observable.js';\n\nexport const inQuickInputContextKeyValue = 'inQuickInput';\nexport const InQuickInputContextKey = new RawContextKey<boolean>(inQuickInputContextKeyValue, false, localize('inQuickInput', \"Whether keyboard focus is inside the quick input control\"));\nexport const inQuickInputContext = ContextKeyExpr.has(inQuickInputContextKeyValue);\n\nexport const quickInputAlignmentContextKeyValue = 'quickInputAlignment';\nexport const QuickInputAlignmentContextKey = new RawContextKey<'top' | 'center' | undefined>(quickInputAlignmentContextKeyValue, 'top', localize('quickInputAlignment', \"The alignment of the quick input\"));\n\nexport const quickInputTypeContextKeyValue = 'quickInputType';\nexport const QuickInputTypeContextKey = new RawContextKey<QuickInputType>(quickInputTypeContextKeyValue, undefined, localize('quickInputType', \"The type of the currently visible quick input\"));\n\nexport const endOfQuickInputBoxContextKeyValue = 'cursorAtEndOfQuickInputBox';\nexport const EndOfQuickInputBoxContextKey = new RawContextKey<boolean>(endOfQuickInputBoxContextKeyValue, false, localize('cursorAtEndOfQuickInputBox', \"Whether the cursor in the quick input is at the end of the input box\"));\nexport const endOfQuickInputBoxContext = ContextKeyExpr.has(endOfQuickInputBoxContextKeyValue);\n\nexport interface IQuickInputOptions {\n\tidPrefix: string;\n\tcontainer: HTMLElement;\n\tignoreFocusOut(): boolean;\n\tbackKeybindingLabel(): string | undefined;\n\tsetContextKey(id?: string): void;\n\tlinkOpenerDelegate(content: string): void;\n\treturnFocus(): void;\n\t/**\n\t * @todo With IHover in vs/editor, can we depend on the service directly\n\t * instead of passing it through a hover delegate?\n\t */\n\thoverDelegate: IHoverDelegate;\n\tstyles: IQuickInputStyles;\n}\n\nexport interface IQuickInputStyles {\n\treadonly widget: IQuickInputWidgetStyles;\n\treadonly inputBox: IInputBoxStyles;\n\treadonly toggle: IToggleStyles;\n\treadonly countBadge: ICountBadgeStyles;\n\treadonly button: IButtonStyles;\n\treadonly progressBar: IProgressBarStyles;\n\treadonly keybindingLabel: IKeybindingLabelStyles;\n\treadonly list: IListStyles;\n\treadonly pickerGroup: { pickerGroupBorder: string | undefined; pickerGroupForeground: string | undefined };\n}\n\nexport interface IQuickInputWidgetStyles {\n\treadonly quickInputBackground: string | undefined;\n\treadonly quickInputForeground: string | undefined;\n\treadonly quickInputTitleBackground: string | undefined;\n\treadonly widgetBorder: string | undefined;\n\treadonly widgetShadow: string | undefined;\n}\n\nexport type Writeable<T> = { -readonly [P in keyof T]: T[P] };\n\nexport const backButton = {\n\ticonClass: ThemeIcon.asClassName(Codicon.quickInputBack),\n\ttooltip: localize('quickInput.back', \"Back\"),\n\thandle: -1 // TODO\n};\n\nexport interface QuickInputUI {\n\tcontainer: HTMLElement;\n\tstyleSheet: HTMLStyleElement;\n\tleftActionBar: ActionBar;\n\ttitleBar: HTMLElement;\n\ttitle: HTMLElement;\n\tdescription1: HTMLElement;\n\tdescription2: HTMLElement;\n\twidget: HTMLElement;\n\trightActionBar: ActionBar;\n\tinlineActionBar: ActionBar;\n\tcheckAll: TriStateCheckbox;\n\tinputContainer: HTMLElement;\n\tfilterContainer: HTMLElement;\n\tinputBox: QuickInputBox;\n\tvisibleCountContainer: HTMLElement;\n\tvisibleCount: CountBadge;\n\tcountContainer: HTMLElement;\n\tcount: CountBadge;\n\tokContainer: HTMLElement;\n\tok: Button;\n\tmessage: HTMLElement;\n\tcustomButtonContainer: HTMLElement;\n\tcustomButton: Button;\n\tprogressBar: ProgressBar;\n\tlist: QuickInputList;\n\ttree: QuickInputTreeController;\n\treadonly onDidAccept: Event<void>;\n\treadonly onDidCustom: Event<void>;\n\treadonly onDidTriggerButton: Event<IQuickInputButton>;\n\tignoreFocusOut: boolean;\n\tkeyMods: Writeable<IKeyMods>;\n\tshow(controller: QuickInput): void;\n\tsetVisibilities(visibilities: Visibilities): void;\n\tsetEnabled(enabled: boolean): void;\n\tsetContextKey(contextKey?: string): void;\n\tlinkOpenerDelegate(content: string): void;\n\thide(): void;\n}\n\nexport type Visibilities = {\n\ttitle?: boolean;\n\tdescription?: boolean;\n\tcheckAll?: boolean;\n\tinputBox?: boolean;\n\tcheckBox?: boolean;\n\tvisibleCount?: boolean;\n\tcount?: boolean;\n\tmessage?: boolean;\n\tlist?: boolean;\n\ttree?: boolean;\n\tok?: boolean;\n\tcustomButton?: boolean;\n\tprogressBar?: boolean;\n};\n\nexport abstract class QuickInput extends Disposable implements IQuickInput {\n\tprotected static readonly noPromptMessage = localize('inputModeEntry', \"Press 'Enter' to confirm your input or 'Escape' to cancel\");\n\n\tprotected _visible = observableValue('visible', false);\n\tprivate _title: string | undefined;\n\tprivate _description: string | undefined;\n\tprivate _widget: HTMLElement | undefined;\n\tprivate _widgetUpdated = false;\n\tprivate _steps: number | undefined;\n\tprivate _totalSteps: number | undefined;\n\tprivate _enabled = true;\n\tprivate _contextKey: string | undefined;\n\tprivate _busy = false;\n\tprivate _ignoreFocusOut = false;\n\tprivate _leftButtons: IQuickInputButton[] = [];\n\tprivate _rightButtons: IQuickInputButton[] = [];\n\tprivate _inlineButtons: IQuickInputButton[] = [];\n\tprivate buttonsUpdated = false;\n\tprivate _toggles: IQuickInputToggle[] = [];\n\tprivate togglesUpdated = false;\n\tprotected noValidationMessage: string | undefined = QuickInput.noPromptMessage;\n\tprivate _validationMessage: string | undefined;\n\tprivate _lastValidationMessage: string | undefined;\n\tprivate _severity: Severity = Severity.Ignore;\n\tprivate _lastSeverity: Severity | undefined;\n\tprivate readonly onDidTriggerButtonEmitter = this._register(new Emitter<IQuickInputButton>());\n\tprivate readonly onDidHideEmitter = this._register(new Emitter<IQuickInputHideEvent>());\n\tprivate readonly onWillHideEmitter = this._register(new Emitter<IQuickInputHideEvent>());\n\tprivate readonly onDisposeEmitter = this._register(new Emitter<void>());\n\n\tprotected readonly visibleDisposables = this._register(new DisposableStore());\n\n\tprivate busyDelay: TimeoutTimer | undefined;\n\n\tabstract type: QuickInputType;\n\n\tconstructor(\n\t\tprotected ui: QuickInputUI\n\t) {\n\t\tsuper();\n\t}\n\n\tprotected get visible(): boolean {\n\t\treturn this._visible.get();\n\t}\n\n\tget title() {\n\t\treturn this._title;\n\t}\n\n\tset title(title: string | undefined) {\n\t\tthis._title = title;\n\t\tthis.update();\n\t}\n\n\tget description() {\n\t\treturn this._description;\n\t}\n\n\tset description(description: string | undefined) {\n\t\tthis._description = description;\n\t\tthis.update();\n\t}\n\n\tget step() {\n\t\treturn this._steps;\n\t}\n\n\tset step(step: number | undefined) {\n\t\tthis._steps = step;\n\t\tthis.update();\n\t}\n\n\tget totalSteps() {\n\t\treturn this._totalSteps;\n\t}\n\n\tset totalSteps(totalSteps: number | undefined) {\n\t\tthis._totalSteps = totalSteps;\n\t\tthis.update();\n\t}\n\n\tget enabled() {\n\t\treturn this._enabled;\n\t}\n\n\tset enabled(enabled: boolean) {\n\t\tthis._enabled = enabled;\n\t\tthis.update();\n\t}\n\n\tget contextKey() {\n\t\treturn this._contextKey;\n\t}\n\n\tset contextKey(contextKey: string | undefined) {\n\t\tthis._contextKey = contextKey;\n\t\tthis.update();\n\t}\n\n\tget busy() {\n\t\treturn this._busy;\n\t}\n\n\tset busy(busy: boolean) {\n\t\tthis._busy = busy;\n\t\tthis.update();\n\t}\n\n\tget ignoreFocusOut() {\n\t\treturn this._ignoreFocusOut;\n\t}\n\n\tset ignoreFocusOut(ignoreFocusOut: boolean) {\n\t\tconst shouldUpdate = this._ignoreFocusOut !== ignoreFocusOut && !isIOS;\n\t\tthis._ignoreFocusOut = ignoreFocusOut && !isIOS;\n\t\tif (shouldUpdate) {\n\t\t\tthis.update();\n\t\t}\n\t}\n\n\tprotected get titleButtons() {\n\t\treturn this._leftButtons.length\n\t\t\t? [...this._leftButtons, this._rightButtons]\n\t\t\t: this._rightButtons;\n\t}\n\n\tget buttons() {\n\t\treturn [\n\t\t\t...this._leftButtons,\n\t\t\t...this._rightButtons,\n\t\t\t...this._inlineButtons\n\t\t];\n\t}\n\n\tset buttons(buttons: IQuickInputButton[]) {\n\t\tthis._leftButtons = buttons.filter(b => b === backButton);\n\t\tthis._rightButtons = buttons.filter(b => b !== backButton && b.location !== QuickInputButtonLocation.Inline);\n\t\tthis._inlineButtons = buttons.filter(b => b.location === QuickInputButtonLocation.Inline);\n\t\tthis.buttonsUpdated = true;\n\t\tthis.update();\n\t}\n\n\tget toggles() {\n\t\treturn this._toggles;\n\t}\n\n\tset toggles(toggles: IQuickInputToggle[]) {\n\t\tthis._toggles = toggles ?? [];\n\t\tthis.togglesUpdated = true;\n\t\tthis.update();\n\t}\n\n\tget validationMessage() {\n\t\treturn this._validationMessage;\n\t}\n\n\tset validationMessage(validationMessage: string | undefined) {\n\t\tthis._validationMessage = validationMessage;\n\t\tthis.update();\n\t}\n\n\tget severity() {\n\t\treturn this._severity;\n\t}\n\n\tset severity(severity: Severity) {\n\t\tthis._severity = severity;\n\t\tthis.update();\n\t}\n\n\tshow(): void {\n\t\tif (this.visible) {\n\t\t\treturn;\n\t\t}\n\t\tthis.visibleDisposables.add(\n\t\t\tthis.ui.onDidTriggerButton(button => {\n\t\t\t\tif (this.buttons.indexOf(button) !== -1) {\n\t\t\t\t\tthis.onDidTriggerButtonEmitter.fire(button);\n\t\t\t\t}\n\t\t\t}),\n\t\t);\n\t\tthis.ui.show(this);\n\n\t\t// update properties in the controller that get reset in the ui.show() call\n\t\tthis._visible.set(true, undefined);\n\t\t// This ensures the message/prompt gets rendered\n\t\tthis._lastValidationMessage = undefined;\n\t\t// This ensures the input box has the right severity applied\n\t\tthis._lastSeverity = undefined;\n\t\tif (this.buttons.length) {\n\t\t\t// if there are buttons, the ui.show() clears them out of the UI so we should\n\t\t\t// rerender them.\n\t\t\tthis.buttonsUpdated = true;\n\t\t}\n\t\tif (this.toggles.length) {\n\t\t\t// if there are toggles, the ui.show() clears them out of the UI so we should\n\t\t\t// rerender them.\n\t\t\tthis.togglesUpdated = true;\n\t\t}\n\n\t\tthis.update();\n\t}\n\n\thide(): void {\n\t\tif (!this.visible) {\n\t\t\treturn;\n\t\t}\n\t\tthis.ui.hide();\n\t}\n\n\tdidHide(reason = QuickInputHideReason.Other): void {\n\t\tthis._visible.set(false, undefined);\n\t\tthis.visibleDisposables.clear();\n\t\tthis.onDidHideEmitter.fire({ reason });\n\t}\n\n\treadonly onDidHide = this.onDidHideEmitter.event;\n\n\twillHide(reason = QuickInputHideReason.Other): void {\n\t\tthis.onWillHideEmitter.fire({ reason });\n\t}\n\n\tprotected update() {\n\t\tif (!this.visible) {\n\t\t\treturn;\n\t\t}\n\t\tconst title = this.getTitle();\n\t\tif (title && this.ui.title.textContent !== title) {\n\t\t\tthis.ui.title.textContent = title;\n\t\t} else if (!title && this.ui.title.innerHTML !== '&nbsp;') {\n\t\t\tthis.ui.title.innerText = '\\u00a0';\n\t\t}\n\t\tconst description = this.getDescription();\n\t\tif (this.ui.description1.textContent !== description) {\n\t\t\tthis.ui.description1.textContent = description;\n\t\t}\n\t\tif (this.ui.description2.textContent !== description) {\n\t\t\tthis.ui.description2.textContent = description;\n\t\t}\n\t\tif (this._widgetUpdated) {\n\t\t\tthis._widgetUpdated = false;\n\t\t\tif (this._widget) {\n\t\t\t\tdom.reset(this.ui.widget, this._widget);\n\t\t\t} else {\n\t\t\t\tdom.reset(this.ui.widget);\n\t\t\t}\n\t\t}\n\t\tif (this.busy && !this.busyDelay) {\n\t\t\tthis.busyDelay = new TimeoutTimer();\n\t\t\tthis.busyDelay.setIfNotSet(() => {\n\t\t\t\tif (this.visible) {\n\t\t\t\t\tthis.ui.progressBar.infinite();\n\t\t\t\t\tthis.ui.progressBar.getContainer().removeAttribute('aria-hidden');\n\t\t\t\t}\n\t\t\t}, 800);\n\t\t}\n\t\tif (!this.busy && this.busyDelay) {\n\t\t\tthis.ui.progressBar.stop();\n\t\t\tthis.ui.progressBar.getContainer().setAttribute('aria-hidden', 'true');\n\t\t\tthis.busyDelay.cancel();\n\t\t\tthis.busyDelay = undefined;\n\t\t}\n\t\tif (this.buttonsUpdated) {\n\t\t\tthis.buttonsUpdated = false;\n\t\t\tthis.ui.leftActionBar.clear();\n\t\t\tconst leftButtons = this._leftButtons\n\t\t\t\t.map((button, index) => quickInputButtonToAction(\n\t\t\t\t\tbutton,\n\t\t\t\t\t`id-${index}`,\n\t\t\t\t\tasync () => this.onDidTriggerButtonEmitter.fire(button)\n\t\t\t\t));\n\t\t\tthis.ui.leftActionBar.push(leftButtons, { icon: true, label: false });\n\t\t\tthis.ui.rightActionBar.clear();\n\t\t\tconst rightButtons = this._rightButtons\n\t\t\t\t.map((button, index) => quickInputButtonToAction(\n\t\t\t\t\tbutton,\n\t\t\t\t\t`id-${index}`,\n\t\t\t\t\tasync () => this.onDidTriggerButtonEmitter.fire(button)\n\t\t\t\t));\n\t\t\tthis.ui.rightActionBar.push(rightButtons, { icon: true, label: false });\n\t\t\tthis.ui.inlineActionBar.clear();\n\t\t\tconst inlineButtons = this._inlineButtons\n\t\t\t\t.map((button, index) => quickInputButtonToAction(\n\t\t\t\t\tbutton,\n\t\t\t\t\t`id-${index}`,\n\t\t\t\t\tasync () => this.onDidTriggerButtonEmitter.fire(button)\n\t\t\t\t));\n\t\t\tthis.ui.inlineActionBar.push(inlineButtons, { icon: true, label: false });\n\t\t}\n\t\tif (this.togglesUpdated) {\n\t\t\tthis.togglesUpdated = false;\n\t\t\t// HACK: Filter out toggles here that are not concrete Toggle objects. This is to workaround\n\t\t\t// a layering issue as quick input's interface is in common but Toggle is in browser and\n\t\t\t// it requires a HTMLElement on its interface\n\t\t\tconst concreteToggles = this.toggles?.filter(opts => opts instanceof Toggle) ?? [];\n\t\t\tthis.ui.inputBox.toggles = concreteToggles;\n\t\t\t// Adjust count badge position based on number of toggles (each toggle is ~22px wide)\n\t\t\tconst toggleOffset = concreteToggles.length * 22;\n\t\t\tthis.ui.countContainer.style.right = toggleOffset > 0 ? `${4 + toggleOffset}px` : '4px';\n\t\t}\n\t\tthis.ui.ignoreFocusOut = this.ignoreFocusOut;\n\t\tthis.ui.setEnabled(this.enabled);\n\t\tthis.ui.setContextKey(this.contextKey);\n\n\t\tconst validationMessage = this.validationMessage || this.noValidationMessage;\n\t\tif (this._lastValidationMessage !== validationMessage) {\n\t\t\tthis._lastValidationMessage = validationMessage;\n\t\t\tdom.reset(this.ui.message);\n\t\t\tif (validationMessage) {\n\t\t\t\trenderQuickInputDescription(validationMessage, this.ui.message, {\n\t\t\t\t\tcallback: (content) => {\n\t\t\t\t\t\tthis.ui.linkOpenerDelegate(content);\n\t\t\t\t\t},\n\t\t\t\t\tdisposables: this.visibleDisposables,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tif (this._lastSeverity !== this.severity) {\n\t\t\tthis._lastSeverity = this.severity;\n\t\t\tthis.showMessageDecoration(this.severity);\n\t\t}\n\t}\n\n\tprivate getTitle() {\n\t\tif (this.title && this.step) {\n\t\t\treturn `${this.title} (${this.getSteps()})`;\n\t\t}\n\t\tif (this.title) {\n\t\t\treturn this.title;\n\t\t}\n\t\tif (this.step) {\n\t\t\treturn this.getSteps();\n\t\t}\n\t\treturn '';\n\t}\n\n\tprivate getDescription() {\n\t\treturn this.description || '';\n\t}\n\n\tprivate getSteps() {\n\t\tif (this.step && this.totalSteps) {\n\t\t\treturn localize('quickInput.steps', \"{0}/{1}\", this.step, this.totalSteps);\n\t\t}\n\t\tif (this.step) {\n\t\t\treturn String(this.step);\n\t\t}\n\t\treturn '';\n\t}\n\n\tprotected showMessageDecoration(severity: Severity) {\n\t\tthis.ui.inputBox.showDecoration(severity);\n\t\tif (severity !== Severity.Ignore) {\n\t\t\tconst styles = this.ui.inputBox.stylesForType(severity);\n\t\t\tthis.ui.message.style.color = styles.foreground ? `${styles.foreground}` : '';\n\t\t\tthis.ui.message.style.backgroundColor = styles.background ? `${styles.background}` : '';\n\t\t\tthis.ui.message.style.border = styles.border ? `1px solid ${styles.border}` : '';\n\t\t\tthis.ui.message.style.marginBottom = '-2px';\n\t\t} else {\n\t\t\tthis.ui.message.style.color = '';\n\t\t\tthis.ui.message.style.backgroundColor = '';\n\t\t\tthis.ui.message.style.border = '';\n\t\t\tthis.ui.message.style.marginBottom = '';\n\t\t}\n\t}\n\n\toverride dispose(): void {\n\t\tthis.hide();\n\t\tthis.onDisposeEmitter.fire();\n\n\t\tsuper.dispose();\n\t}\n}\n\nexport class QuickPick<T extends IQuickPickItem, O extends { useSeparators: boolean } = { useSeparators: false }> extends QuickInput implements IQuickPick<T, O> {\n\n\tprivate static readonly DEFAULT_ARIA_LABEL = localize('quickInputBox.ariaLabel', \"Type to narrow down results.\");\n\n\tprivate _value = '';\n\tprivate _ariaLabel: string | undefined;\n\tprivate _placeholder: string | undefined;\n\tprivate readonly onDidChangeValueEmitter = this._register(new Emitter<string>());\n\tprivate readonly onWillAcceptEmitter = this._register(new Emitter<IQuickPickWillAcceptEvent>());\n\tprivate readonly onDidAcceptEmitter = this._register(new Emitter<IQuickPickDidAcceptEvent>());\n\tprivate readonly onDidCustomEmitter = this._register(new Emitter<void>());\n\tprivate _items: O extends { useSeparators: true } ? Array<T | IQuickPickSeparator> : Array<T> = [];\n\tprivate itemsUpdated = false;\n\tprivate _canSelectMany = false;\n\tprivate _canAcceptInBackground = false;\n\tprivate _matchOnDescription = false;\n\tprivate _matchOnDetail = false;\n\tprivate _matchOnLabel = true;\n\tprivate _matchOnLabelMode: 'fuzzy' | 'contiguous' = 'fuzzy';\n\tprivate _sortByLabel = true;\n\tprivate _keepScrollPosition = false;\n\tprivate _itemActivation = ItemActivation.FIRST;\n\tprivate _activeItems: T[] = [];\n\tprivate activeItemsUpdated = false;\n\tprivate activeItemsToConfirm: T[] | null = [];\n\tprivate readonly onDidChangeActiveEmitter = this._register(new Emitter<T[]>());\n\tprivate _selectedItems: T[] = [];\n\tprivate selectedItemsUpdated = false;\n\tprivate selectedItemsToConfirm: T[] | null = [];\n\tprivate readonly onDidChangeSelectionEmitter = this._register(new Emitter<T[]>());\n\tprivate readonly onDidTriggerItemButtonEmitter = this._register(new Emitter<IQuickPickItemButtonEvent<T>>());\n\tprivate readonly onDidTriggerSeparatorButtonEmitter = this._register(new Emitter<IQuickPickSeparatorButtonEvent>());\n\tprivate _valueSelection: Readonly<[number, number]> | undefined;\n\tprivate valueSelectionUpdated = true;\n\tprivate _ok: boolean | 'default' = 'default';\n\tprivate _okLabel: string | undefined;\n\tprivate _customButton = false;\n\tprivate _customButtonLabel: string | undefined;\n\tprivate _customButtonHover: string | undefined;\n\tprivate _customButtonSecondary = false;\n\tprivate _quickNavigate: IQuickNavigateConfiguration | undefined;\n\tprivate _hideInput: boolean | undefined;\n\tprivate _hideCountBadge: boolean | undefined;\n\tprivate _hideCheckAll: boolean | undefined;\n\tprivate _focusEventBufferer = new EventBufferer();\n\n\treadonly type = QuickInputType.QuickPick;\n\n\tconstructor(ui: QuickInputUI) {\n\t\tsuper(ui);\n\t\tthis.noValidationMessage = undefined;\n\t}\n\n\tget quickNavigate() {\n\t\treturn this._quickNavigate;\n\t}\n\n\tset quickNavigate(quickNavigate: IQuickNavigateConfiguration | undefined) {\n\t\tthis._quickNavigate = quickNavigate;\n\t\tthis.update();\n\t}\n\n\tget value() {\n\t\treturn this._value;\n\t}\n\n\tset value(value: string) {\n\t\tthis.doSetValue(value);\n\t}\n\n\tprivate doSetValue(value: string, skipUpdate?: boolean): void {\n\t\tif (this._value !== value) {\n\t\t\tthis._value = value;\n\t\t\tif (!skipUpdate) {\n\t\t\t\tthis.update();\n\t\t\t}\n\t\t\tif (this.visible) {\n\t\t\t\tconst didFilter = this.ui.list.filter(this.filterValue(this._value));\n\t\t\t\tif (didFilter) {\n\t\t\t\t\tthis.trySelectFirst();\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.onDidChangeValueEmitter.fire(this._value);\n\t\t}\n\t}\n\n\tfilterValue = (value: string) => value;\n\n\tset ariaLabel(ariaLabel: string | undefined) {\n\t\tthis._ariaLabel = ariaLabel;\n\t\tthis.update();\n\t}\n\n\tget ariaLabel() {\n\t\treturn this._ariaLabel;\n\t}\n\n\tget placeholder() {\n\t\treturn this._placeholder;\n\t}\n\n\tset placeholder(placeholder: string | undefined) {\n\t\tthis._placeholder = placeholder;\n\t\tthis.update();\n\t}\n\n\tget prompt() {\n\t\treturn this.noValidationMessage;\n\t}\n\n\tset prompt(prompt: string | undefined) {\n\t\tthis.noValidationMessage = prompt;\n\t\tthis.update();\n\t}\n\n\tonDidChangeValue = this.onDidChangeValueEmitter.event;\n\n\tonWillAccept = this.onWillAcceptEmitter.event;\n\tonDidAccept = this.onDidAcceptEmitter.event;\n\n\tget items() {\n\t\treturn this._items;\n\t}\n\n\tget scrollTop() {\n\t\treturn this.ui.list.scrollTop;\n\t}\n\n\tprivate set scrollTop(scrollTop: number) {\n\t\tthis.ui.list.scrollTop = scrollTop;\n\t}\n\n\tset items(items: O extends { useSeparators: true } ? Array<T | IQuickPickSeparator> : Array<T>) {\n\t\tthis._items = items;\n\t\tthis.itemsUpdated = true;\n\t\tthis.update();\n\t}\n\n\tget canSelectMany() {\n\t\treturn this._canSelectMany;\n\t}\n\n\tset canSelectMany(canSelectMany: boolean) {\n\t\tthis._canSelectMany = canSelectMany;\n\t\tthis.update();\n\t}\n\n\tget canAcceptInBackground() {\n\t\treturn this._canAcceptInBackground;\n\t}\n\n\tset canAcceptInBackground(canAcceptInBackground: boolean) {\n\t\tthis._canAcceptInBackground = canAcceptInBackground;\n\t}\n\n\tget matchOnDescription() {\n\t\treturn this._matchOnDescription;\n\t}\n\n\tset matchOnDescription(matchOnDescription: boolean) {\n\t\tthis._matchOnDescription = matchOnDescription;\n\t\tthis.update();\n\t}\n\n\tget matchOnDetail() {\n\t\treturn this._matchOnDetail;\n\t}\n\n\tset matchOnDetail(matchOnDetail: boolean) {\n\t\tthis._matchOnDetail = matchOnDetail;\n\t\tthis.update();\n\t}\n\n\tget matchOnLabel() {\n\t\treturn this._matchOnLabel;\n\t}\n\n\tset matchOnLabel(matchOnLabel: boolean) {\n\t\tthis._matchOnLabel = matchOnLabel;\n\t\tthis.update();\n\t}\n\n\tget matchOnLabelMode() {\n\t\treturn this._matchOnLabelMode;\n\t}\n\n\tset matchOnLabelMode(matchOnLabelMode: 'fuzzy' | 'contiguous') {\n\t\tthis._matchOnLabelMode = matchOnLabelMode;\n\t\tthis.update();\n\t}\n\n\tget sortByLabel() {\n\t\treturn this._sortByLabel;\n\t}\n\n\tset sortByLabel(sortByLabel: boolean) {\n\t\tthis._sortByLabel = sortByLabel;\n\t\tthis.update();\n\t}\n\n\tget keepScrollPosition() {\n\t\treturn this._keepScrollPosition;\n\t}\n\n\tset keepScrollPosition(keepScrollPosition: boolean) {\n\t\tthis._keepScrollPosition = keepScrollPosition;\n\t}\n\n\tget itemActivation() {\n\t\treturn this._itemActivation;\n\t}\n\n\tset itemActivation(itemActivation: ItemActivation) {\n\t\tthis._itemActivation = itemActivation;\n\t}\n\n\tget activeItems() {\n\t\treturn this._activeItems;\n\t}\n\n\tset activeItems(activeItems: T[]) {\n\t\tthis._activeItems = activeItems;\n\t\tthis.activeItemsUpdated = true;\n\t\tthis.update();\n\t}\n\n\tonDidChangeActive = this.onDidChangeActiveEmitter.event;\n\n\tget selectedItems() {\n\t\treturn this._selectedItems;\n\t}\n\n\tset selectedItems(selectedItems: T[]) {\n\t\tthis._selectedItems = selectedItems;\n\t\tthis.selectedItemsUpdated = true;\n\t\tthis.update();\n\t}\n\n\tget keyMods() {\n\t\tif (this._quickNavigate) {\n\t\t\t// Disable keyMods when quick navigate is enabled\n\t\t\t// because in this model the interaction is purely\n\t\t\t// keyboard driven and Ctrl/Alt are typically\n\t\t\t// pressed and hold during this interaction.\n\t\t\treturn NO_KEY_MODS;\n\t\t}\n\t\treturn this.ui.keyMods;\n\t}\n\n\tget valueSelection() {\n\t\tconst selection = this.ui.inputBox.getSelection();\n\t\tif (!selection) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn [selection.start, selection.end];\n\t}\n\n\tset valueSelection(valueSelection: Readonly<[number, number]> | undefined) {\n\t\tthis._valueSelection = valueSelection;\n\t\tthis.valueSelectionUpdated = true;\n\t\tthis.update();\n\t}\n\n\tget customButton() {\n\t\treturn this._customButton;\n\t}\n\n\tset customButton(showCustomButton: boolean) {\n\t\tthis._customButton = showCustomButton;\n\t\tthis.update();\n\t}\n\n\tget customLabel() {\n\t\treturn this._customButtonLabel;\n\t}\n\n\tset customLabel(label: string | undefined) {\n\t\tthis._customButtonLabel = label;\n\t\tthis.update();\n\t}\n\n\tget customHover() {\n\t\treturn this._customButtonHover;\n\t}\n\n\tset customHover(hover: string | undefined) {\n\t\tthis._customButtonHover = hover;\n\t\tthis.update();\n\t}\n\n\tget customButtonSecondary() {\n\t\treturn this._customButtonSecondary;\n\t}\n\n\tset customButtonSecondary(secondary: boolean | undefined) {\n\t\tthis._customButtonSecondary = secondary ?? false;\n\t\tthis.update();\n\t}\n\n\tget ok() {\n\t\treturn this._ok;\n\t}\n\n\tset ok(showOkButton: boolean | 'default') {\n\t\tthis._ok = showOkButton;\n\t\tthis.update();\n\t}\n\n\tget okLabel() {\n\t\treturn this._okLabel ?? localize('ok', \"OK\");\n\t}\n\n\tset okLabel(okLabel: string | undefined) {\n\t\tthis._okLabel = okLabel;\n\t\tthis.update();\n\t}\n\n\tget hideInput() {\n\t\treturn !!this._hideInput;\n\t}\n\n\tset hideInput(hideInput: boolean) {\n\t\tthis._hideInput = hideInput;\n\t\tthis.update();\n\t}\n\n\tonDidChangeSelection = this.onDidChangeSelectionEmitter.event;\n\n\tonDidTriggerItemButton = this.onDidTriggerItemButtonEmitter.event;\n\n\tonDidTriggerSeparatorButton = this.onDidTriggerSeparatorButtonEmitter.event;\n\n\tprivate trySelectFirst() {\n\t\tif (!this.canSelectMany) {\n\t\t\tthis.ui.list.focus(QuickPickFocus.First);\n\t\t}\n\t}\n\n\toverride show() {\n\t\tif (!this.visible) {\n\t\t\tthis.visibleDisposables.add(\n\t\t\t\tthis.ui.inputBox.onDidChange(value => {\n\t\t\t\t\tthis.doSetValue(value, true /* skip update since this originates from the UI */);\n\t\t\t\t}));\n\t\t\tthis.visibleDisposables.add(this.ui.onDidAccept(() => {\n\t\t\t\tif (this.canSelectMany) {\n\t\t\t\t\t// if there are no checked elements, it means that an onDidChangeSelection never fired to overwrite\n\t\t\t\t\t// `_selectedItems`. In that case, we should emit one with an empty array to ensure that\n\t\t\t\t\t// `.selectedItems` is up to date.\n\t\t\t\t\tif (!this.ui.list.getCheckedElements().length) {\n\t\t\t\t\t\tthis._selectedItems = [];\n\t\t\t\t\t\tthis.onDidChangeSelectionEmitter.fire(this.selectedItems);\n\t\t\t\t\t}\n\t\t\t\t} else if (this.activeItems[0]) {\n\t\t\t\t\t// For single-select, we set `selectedItems` to the item that was accepted.\n\t\t\t\t\tthis._selectedItems = [this.activeItems[0]];\n\t\t\t\t\tthis.onDidChangeSelectionEmitter.fire(this.selectedItems);\n\t\t\t\t}\n\t\t\t\tthis.handleAccept(false);\n\t\t\t}));\n\t\t\tthis.visibleDisposables.add(this.ui.onDidCustom(() => {\n\t\t\t\tthis.onDidCustomEmitter.fire();\n\t\t\t}));\n\t\t\tthis.visibleDisposables.add(this._focusEventBufferer.wrapEvent(\n\t\t\t\tthis.ui.list.onDidChangeFocus,\n\t\t\t\t// Only fire the last event\n\t\t\t\t(_, e) => e\n\t\t\t)(focusedItems => {\n\t\t\t\tif (this.activeItemsUpdated) {\n\t\t\t\t\treturn; // Expect another event.\n\t\t\t\t}\n\t\t\t\tif (this.activeItemsToConfirm !== this._activeItems && equals(focusedItems, this._activeItems, (a, b) => a === b)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis._activeItems = focusedItems as T[];\n\t\t\t\tthis.onDidChangeActiveEmitter.fire(focusedItems as T[]);\n\t\t\t}));\n\t\t\tthis.visibleDisposables.add(this.ui.list.onDidChangeSelection(({ items: selectedItems, event }) => {\n\t\t\t\tif (this.canSelectMany && !selectedItems.some(i => i.pickable === false)) {\n\t\t\t\t\tif (selectedItems.length) {\n\t\t\t\t\t\tthis.ui.list.setSelectedElements([]);\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (this.selectedItemsToConfirm !== this._selectedItems && equals(selectedItems, this._selectedItems, (a, b) => a === b)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis._selectedItems = selectedItems as T[];\n\t\t\t\tthis.onDidChangeSelectionEmitter.fire(selectedItems as T[]);\n\t\t\t\tif (selectedItems.length) {\n\t\t\t\t\tthis.handleAccept(dom.isMouseEvent(event) && event.button === 1 /* mouse middle click */);\n\t\t\t\t}\n\t\t\t}));\n\t\t\tthis.visibleDisposables.add(this.ui.list.onChangedCheckedElements(checkedItems => {\n\t\t\t\tif (!this.canSelectMany || !this.visible) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (this.selectedItemsToConfirm !== this._selectedItems && equals(checkedItems, this._selectedItems, (a, b) => a === b)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis._selectedItems = checkedItems as T[];\n\t\t\t\tthis.onDidChangeSelectionEmitter.fire(checkedItems as T[]);\n\t\t\t}));\n\t\t\tthis.visibleDisposables.add(this.ui.list.onButtonTriggered(event => this.onDidTriggerItemButtonEmitter.fire(event as IQuickPickItemButtonEvent<T>)));\n\t\t\tthis.visibleDisposables.add(this.ui.list.onSeparatorButtonTriggered(event => this.onDidTriggerSeparatorButtonEmitter.fire(event)));\n\t\t\tthis.visibleDisposables.add(this.registerQuickNavigation());\n\t\t\tthis.valueSelectionUpdated = true;\n\t\t}\n\t\tsuper.show(); // TODO: Why have show() bubble up while update() trickles down?\n\t}\n\n\tprivate handleAccept(inBackground: boolean): void {\n\n\t\t// Figure out veto via `onWillAccept` event\n\t\tlet veto = false;\n\t\tthis.onWillAcceptEmitter.fire({ veto: () => veto = true });\n\n\t\t// Continue with `onDidAccept` if no veto\n\t\tif (!veto) {\n\t\t\tthis.onDidAcceptEmitter.fire({ inBackground });\n\t\t}\n\t}\n\n\tprivate registerQuickNavigation() {\n\t\treturn dom.addDisposableListener(this.ui.container, dom.EventType.KEY_UP, e => {\n\t\t\tif (this.canSelectMany || !this._quickNavigate) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst keyboardEvent: StandardKeyboardEvent = new StandardKeyboardEvent(e);\n\t\t\tconst keyCode = keyboardEvent.keyCode;\n\n\t\t\t// Select element when keys are pressed that signal it\n\t\t\tconst quickNavKeys = this._quickNavigate.keybindings;\n\t\t\tconst wasTriggerKeyPressed = quickNavKeys.some(k => {\n\t\t\t\tconst chords = k.getChords();\n\t\t\t\tif (chords.length > 1) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tif (chords[0].shiftKey && keyCode === KeyCode.Shift) {\n\t\t\t\t\tif (keyboardEvent.ctrlKey || keyboardEvent.altKey || keyboardEvent.metaKey) {\n\t\t\t\t\t\treturn false; // this is an optimistic check for the shift key being used to navigate back in quick input\n\t\t\t\t\t}\n\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tif (chords[0].altKey && keyCode === KeyCode.Alt) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tif (chords[0].ctrlKey && keyCode === KeyCode.Ctrl) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tif (chords[0].metaKey && keyCode === KeyCode.Meta) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t});\n\n\t\t\tif (wasTriggerKeyPressed) {\n\t\t\t\tif (this.activeItems[0]) {\n\t\t\t\t\tthis._selectedItems = [this.activeItems[0]];\n\t\t\t\t\tthis.onDidChangeSelectionEmitter.fire(this.selectedItems);\n\t\t\t\t\tthis.handleAccept(false);\n\t\t\t\t}\n\t\t\t\t// Unset quick navigate after press. It is only valid once\n\t\t\t\t// and should not result in any behaviour change afterwards\n\t\t\t\t// if the picker remains open because there was no active item\n\t\t\t\tthis._quickNavigate = undefined;\n\t\t\t}\n\t\t});\n\t}\n\n\tprotected override update() {\n\t\tif (!this.visible) {\n\t\t\treturn;\n\t\t}\n\t\t// store the scrollTop before it is reset\n\t\tconst scrollTopBefore = this.keepScrollPosition ? this.scrollTop : 0;\n\t\tconst hasDescription = !!this.description;\n\t\tconst visibilities: Visibilities = {\n\t\t\ttitle: !!this.title || !!this.step || !!this.titleButtons.length,\n\t\t\tdescription: hasDescription,\n\t\t\tcheckAll: this.canSelectMany && !this._hideCheckAll,\n\t\t\tcheckBox: this.canSelectMany,\n\t\t\tinputBox: !this._hideInput,\n\t\t\tprogressBar: !this._hideInput || hasDescription,\n\t\t\tvisibleCount: true,\n\t\t\tcount: this.canSelectMany && !this._hideCountBadge,\n\t\t\tok: this.ok === 'default' ? this.canSelectMany : this.ok,\n\t\t\tlist: true,\n\t\t\tmessage: !!this.validationMessage || !!this.prompt,\n\t\t\tcustomButton: this.customButton\n\t\t};\n\t\tthis.ui.setVisibilities(visibilities);\n\t\tsuper.update();\n\t\tif (this.ui.inputBox.value !== this.value) {\n\t\t\tthis.ui.inputBox.value = this.value;\n\t\t}\n\t\tif (this.valueSelectionUpdated) {\n\t\t\tthis.valueSelectionUpdated = false;\n\t\t\tthis.ui.inputBox.select(this._valueSelection && { start: this._valueSelection[0], end: this._valueSelection[1] });\n\t\t}\n\t\tif (this.ui.inputBox.placeholder !== (this.placeholder || '')) {\n\t\t\tthis.ui.inputBox.placeholder = (this.placeholder || '');\n\t\t}\n\n\t\tlet ariaLabel = this.ariaLabel;\n\t\t// Only set aria label to the input box placeholder if we actually have an input box.\n\t\tif (!ariaLabel && visibilities.inputBox) {\n\t\t\tariaLabel = this.placeholder;\n\t\t\t// If we have a title, include it in the aria label.\n\t\t\tif (this.title) {\n\t\t\t\tariaLabel = ariaLabel\n\t\t\t\t\t? `${ariaLabel} - ${this.title}`\n\t\t\t\t\t: this.title;\n\t\t\t}\n\t\t\tif (!ariaLabel) {\n\t\t\t\tariaLabel = QuickPick.DEFAULT_ARIA_LABEL;\n\t\t\t}\n\t\t}\n\t\tif (this.ui.list.ariaLabel !== ariaLabel) {\n\t\t\tthis.ui.list.ariaLabel = ariaLabel ?? null;\n\t\t}\n\t\tif (this.ui.inputBox.ariaLabel !== ariaLabel) {\n\t\t\tthis.ui.inputBox.ariaLabel = ariaLabel ?? 'input';\n\t\t}\n\t\tthis.ui.list.matchOnDescription = this.matchOnDescription;\n\t\tthis.ui.list.matchOnDetail = this.matchOnDetail;\n\t\tthis.ui.list.matchOnLabel = this.matchOnLabel;\n\t\tthis.ui.list.matchOnLabelMode = this.matchOnLabelMode;\n\t\tthis.ui.list.sortByLabel = this.sortByLabel;\n\t\tif (this.itemsUpdated) {\n\t\t\tthis.itemsUpdated = false;\n\t\t\tthis._focusEventBufferer.bufferEvents(() => {\n\t\t\t\tthis.ui.list.setElements(this.items);\n\t\t\t\t// We want focus to exist in the list if there are items so that space can be used to toggle\n\t\t\t\tthis.ui.list.shouldLoop = !this.canSelectMany;\n\t\t\t\tthis.ui.list.filter(this.filterValue(this.ui.inputBox.value));\n\t\t\t\tswitch (this._itemActivation) {\n\t\t\t\t\tcase ItemActivation.NONE:\n\t\t\t\t\t\tthis._itemActivation = ItemActivation.FIRST; // only valid once, then unset\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase ItemActivation.SECOND:\n\t\t\t\t\t\tthis.ui.list.focus(QuickPickFocus.Second);\n\t\t\t\t\t\tthis._itemActivation = ItemActivation.FIRST; // only valid once, then unset\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase ItemActivation.LAST:\n\t\t\t\t\t\tthis.ui.list.focus(QuickPickFocus.Last);\n\t\t\t\t\t\tthis._itemActivation = ItemActivation.FIRST; // only valid once, then unset\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthis.trySelectFirst();\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tif (this.ui.container.classList.contains('show-checkboxes') !== !!this.canSelectMany) {\n\t\t\tif (this.canSelectMany) {\n\t\t\t\tthis.ui.list.clearFocus();\n\t\t\t} else {\n\t\t\t\tthis.trySelectFirst();\n\t\t\t}\n\t\t}\n\t\tif (this.activeItemsUpdated) {\n\t\t\tthis.activeItemsUpdated = false;\n\t\t\tthis.activeItemsToConfirm = this._activeItems;\n\t\t\tthis.ui.list.setFocusedElements(this.activeItems);\n\t\t\tif (this.activeItemsToConfirm === this._activeItems) {\n\t\t\t\tthis.activeItemsToConfirm = null;\n\t\t\t}\n\t\t}\n\t\tif (this.selectedItemsUpdated) {\n\t\t\tthis.selectedItemsUpdated = false;\n\t\t\tthis.selectedItemsToConfirm = this._selectedItems;\n\t\t\tif (this.canSelectMany) {\n\t\t\t\tthis.ui.list.setCheckedElements(this.selectedItems);\n\t\t\t} else {\n\t\t\t\tthis.ui.list.setSelectedElements(this.selectedItems);\n\t\t\t}\n\t\t\tif (this.selectedItemsToConfirm === this._selectedItems) {\n\t\t\t\tthis.selectedItemsToConfirm = null;\n\t\t\t}\n\t\t}\n\t\tthis.ui.ok.label = this.okLabel || '';\n\t\tthis.ui.customButton.label = this.customLabel || '';\n\t\tthis.ui.customButton.element.title = this.customHover || '';\n\t\tthis.ui.customButton.secondary = this.customButtonSecondary || false;\n\t\tif (!visibilities.inputBox) {\n\t\t\t// we need to move focus into the tree to detect keybindings\n\t\t\t// properly when the input box is not visible (quick nav)\n\t\t\tthis.ui.list.domFocus();\n\n\t\t\t// Focus the first element in the list if multiselect is enabled\n\t\t\tif (this.canSelectMany) {\n\t\t\t\tthis.ui.list.focus(QuickPickFocus.First);\n\t\t\t}\n\t\t}\n\n\t\t// Set the scroll position to what it was before updating the items\n\t\tif (this.keepScrollPosition) {\n\t\t\tthis.scrollTop = scrollTopBefore;\n\t\t}\n\t}\n\n\tfocus(focus: QuickPickFocus): void {\n\t\tthis.ui.list.focus(focus);\n\t\t// To allow things like space to check/uncheck items\n\t\tif (this.canSelectMany) {\n\t\t\tthis.ui.list.domFocus();\n\t\t}\n\t}\n\n\taccept(inBackground?: boolean | undefined): void {\n\t\tif (inBackground && !this._canAcceptInBackground) {\n\t\t\treturn; // needs to be enabled\n\t\t}\n\n\t\tif (this.activeItems[0] && !this._canSelectMany) {\n\t\t\tthis._selectedItems = [this.activeItems[0]];\n\t\t\tthis.onDidChangeSelectionEmitter.fire(this.selectedItems);\n\t\t}\n\t\tthis.handleAccept(inBackground ?? false);\n\t}\n}\n\nexport class InputBox extends QuickInput implements IInputBox {\n\tprivate _value = '';\n\tprivate _valueSelection: Readonly<[number, number]> | undefined;\n\tprivate valueSelectionUpdated = true;\n\tprivate _placeholder: string | undefined;\n\tprivate _ariaLabel: string | undefined;\n\tprivate _password = false;\n\tprivate _prompt: string | undefined;\n\tprivate readonly onDidValueChangeEmitter = this._register(new Emitter<string>());\n\tprivate readonly onDidAcceptEmitter = this._register(new Emitter<void>());\n\n\treadonly type = QuickInputType.InputBox;\n\n\tget value() {\n\t\treturn this._value;\n\t}\n\n\tset value(value: string) {\n\t\tthis._value = value || '';\n\t\tthis.update();\n\t}\n\n\tget valueSelection() {\n\t\tconst selection = this.ui.inputBox.getSelection();\n\t\tif (!selection) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn [selection.start, selection.end];\n\t}\n\n\tset valueSelection(valueSelection: Readonly<[number, number]> | undefined) {\n\t\tthis._valueSelection = valueSelection;\n\t\tthis.valueSelectionUpdated = true;\n\t\tthis.update();\n\t}\n\n\tget placeholder() {\n\t\treturn this._placeholder;\n\t}\n\n\tset placeholder(placeholder: string | undefined) {\n\t\tthis._placeholder = placeholder;\n\t\tthis.update();\n\t}\n\n\tget ariaLabel() {\n\t\treturn this._ariaLabel;\n\t}\n\n\tset ariaLabel(ariaLabel: string | undefined) {\n\t\tthis._ariaLabel = ariaLabel;\n\t\tthis.update();\n\t}\n\n\tget password() {\n\t\treturn this._password;\n\t}\n\n\tset password(password: boolean) {\n\t\tthis._password = password;\n\t\tthis.update();\n\t}\n\n\tget prompt() {\n\t\treturn this._prompt;\n\t}\n\n\tset prompt(prompt: string | undefined) {\n\t\tthis._prompt = prompt;\n\t\tthis.noValidationMessage = prompt\n\t\t\t? localize('inputModeEntryDescription', \"{0} (Press 'Enter' to confirm or 'Escape' to cancel)\", prompt)\n\t\t\t: QuickInput.noPromptMessage;\n\t\tthis.update();\n\t}\n\n\treadonly onDidChangeValue = this.onDidValueChangeEmitter.event;\n\n\treadonly onDidAccept = this.onDidAcceptEmitter.event;\n\n\toverride show() {\n\t\tif (!this.visible) {\n\t\t\tthis.visibleDisposables.add(\n\t\t\t\tthis.ui.inputBox.onDidChange(value => {\n\t\t\t\t\tif (value === this.value) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tthis._value = value;\n\t\t\t\t\tthis.onDidValueChangeEmitter.fire(value);\n\t\t\t\t}));\n\t\t\tthis.visibleDisposables.add(this.ui.onDidAccept(() => this.onDidAcceptEmitter.fire()));\n\t\t\tthis.valueSelectionUpdated = true;\n\t\t}\n\t\tsuper.show();\n\t}\n\n\taccept(): void {\n\t\tthis.onDidAcceptEmitter.fire();\n\t}\n\n\tprotected override update() {\n\t\tif (!this.visible) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.ui.container.classList.remove('hidden-input');\n\t\tconst visibilities: Visibilities = {\n\t\t\ttitle: !!this.title || !!this.step || !!this.titleButtons.length,\n\t\t\tdescription: !!this.description || !!this.step,\n\t\t\tinputBox: true,\n\t\t\tmessage: true,\n\t\t\tprogressBar: true\n\t\t};\n\n\t\tthis.ui.setVisibilities(visibilities);\n\t\tsuper.update();\n\t\tif (this.ui.inputBox.value !== this.value) {\n\t\t\tthis.ui.inputBox.value = this.value;\n\t\t}\n\t\tif (this.valueSelectionUpdated) {\n\t\t\tthis.valueSelectionUpdated = false;\n\t\t\tthis.ui.inputBox.select(this._valueSelection && { start: this._valueSelection[0], end: this._valueSelection[1] });\n\t\t}\n\t\tif (this.ui.inputBox.placeholder !== (this.placeholder || '')) {\n\t\t\tthis.ui.inputBox.placeholder = (this.placeholder || '');\n\t\t}\n\t\tif (this.ui.inputBox.password !== this.password) {\n\t\t\tthis.ui.inputBox.password = this.password;\n\t\t}\n\t\tlet ariaLabel = this.ariaLabel;\n\t\t// Only set aria label to the input box placeholder if we actually have an input box.\n\t\tif (!ariaLabel && visibilities.inputBox) {\n\t\t\tariaLabel = this.placeholder\n\t\t\t\t? this.title\n\t\t\t\t\t? `${this.placeholder} - ${this.title}`\n\t\t\t\t\t: this.placeholder\n\t\t\t\t: this.title\n\t\t\t\t\t? this.title\n\t\t\t\t\t: 'input';\n\t\t}\n\t\tif (this.ui.inputBox.ariaLabel !== ariaLabel) {\n\t\t\tthis.ui.inputBox.ariaLabel = ariaLabel || 'input';\n\t\t}\n\t}\n}\n\nexport class QuickInputHoverDelegate extends WorkbenchHoverDelegate {\n\n\tconstructor(\n\t\t@IConfigurationService configurationService: IConfigurationService,\n\t\t@IHoverService hoverService: IHoverService\n\t) {\n\t\tsuper('mouse', undefined, (options) => this.getOverrideOptions(options), configurationService, hoverService);\n\t}\n\n\tprivate getOverrideOptions(options: IHoverDelegateOptions): Partial<IHoverOptions> {\n\t\t// Only show the hover hint if the content is of a decent size\n\t\tconst showHoverHint = (\n\t\t\tdom.isHTMLElement(options.content)\n\t\t\t\t? options.content.textContent ?? ''\n\t\t\t\t: typeof options.content === 'string'\n\t\t\t\t\t? options.content\n\t\t\t\t\t: options.content.value\n\t\t).includes('\\n');\n\n\t\treturn {\n\t\t\tpersistence: {\n\t\t\t\thideOnKeyDown: false,\n\t\t\t},\n\t\t\tappearance: {\n\t\t\t\tshowHoverHint,\n\t\t\t\tskipFadeInAnimation: true,\n\t\t\t},\n\t\t};\n\t}\n}\n"]}
1
+ {"version":3,"sources":["vs/platform/quickinput/browser/quickInput.ts"],"names":[],"mappings":"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","file":"quickInput.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport * as dom from '../../../base/browser/dom.js';\nimport { StandardKeyboardEvent } from '../../../base/browser/keyboardEvent.js';\nimport { ActionBar } from '../../../base/browser/ui/actionbar/actionbar.js';\nimport { Button, IButtonStyles } from '../../../base/browser/ui/button/button.js';\nimport { CountBadge, ICountBadgeStyles } from '../../../base/browser/ui/countBadge/countBadge.js';\nimport { IHoverDelegate, IHoverDelegateOptions } from '../../../base/browser/ui/hover/hoverDelegate.js';\nimport { IInputBoxStyles } from '../../../base/browser/ui/inputbox/inputBox.js';\nimport { IKeybindingLabelStyles } from '../../../base/browser/ui/keybindingLabel/keybindingLabel.js';\nimport { IListStyles } from '../../../base/browser/ui/list/listWidget.js';\nimport { IProgressBarStyles, ProgressBar } from '../../../base/browser/ui/progressbar/progressbar.js';\nimport { IToggleStyles, Toggle, TriStateCheckbox } from '../../../base/browser/ui/toggle/toggle.js';\nimport { equals } from '../../../base/common/arrays.js';\nimport { TimeoutTimer } from '../../../base/common/async.js';\nimport { Codicon } from '../../../base/common/codicons.js';\nimport { Emitter, Event, EventBufferer } from '../../../base/common/event.js';\nimport { KeyCode } from '../../../base/common/keyCodes.js';\nimport { Disposable, DisposableStore } from '../../../base/common/lifecycle.js';\nimport { isIOS } from '../../../base/common/platform.js';\nimport Severity from '../../../base/common/severity.js';\nimport { ThemeIcon } from '../../../base/common/themables.js';\nimport './media/quickInput.css';\nimport { localize } from '../../../nls.js';\nimport { IInputBox, IKeyMods, IQuickInput, IQuickInputButton, IQuickInputHideEvent, IQuickInputToggle, IQuickNavigateConfiguration, IQuickPick, IQuickPickDidAcceptEvent, IQuickPickItem, IQuickPickItemButtonEvent, IQuickPickSeparator, IQuickPickSeparatorButtonEvent, IQuickPickWillAcceptEvent, ItemActivation, NO_KEY_MODS, QuickInputButtonLocation, QuickInputHideReason, QuickInputType, QuickPickFocus } from '../common/quickInput.js';\nimport { QuickInputBox } from './quickInputBox.js';\nimport { quickInputButtonToAction, renderQuickInputDescription } from './quickInputUtils.js';\nimport { IConfigurationService } from '../../configuration/common/configuration.js';\nimport { IHoverService, WorkbenchHoverDelegate } from '../../hover/browser/hover.js';\nimport { QuickInputList } from './quickInputList.js';\nimport { IHoverOptions } from '../../../base/browser/ui/hover/hover.js';\nimport { ContextKeyExpr, RawContextKey } from '../../contextkey/common/contextkey.js';\nimport { QuickInputTreeController } from './tree/quickInputTreeController.js';\nimport { observableValue } from '../../../base/common/observable.js';\n\nexport const inQuickInputContextKeyValue = 'inQuickInput';\nexport const InQuickInputContextKey = new RawContextKey<boolean>(inQuickInputContextKeyValue, false, localize('inQuickInput', \"Whether keyboard focus is inside the quick input control\"));\nexport const inQuickInputContext = ContextKeyExpr.has(inQuickInputContextKeyValue);\n\nexport const quickInputAlignmentContextKeyValue = 'quickInputAlignment';\nexport const QuickInputAlignmentContextKey = new RawContextKey<'top' | 'center' | undefined>(quickInputAlignmentContextKeyValue, 'top', localize('quickInputAlignment', \"The alignment of the quick input\"));\n\nexport const quickInputTypeContextKeyValue = 'quickInputType';\nexport const QuickInputTypeContextKey = new RawContextKey<QuickInputType>(quickInputTypeContextKeyValue, undefined, localize('quickInputType', \"The type of the currently visible quick input\"));\n\nexport const endOfQuickInputBoxContextKeyValue = 'cursorAtEndOfQuickInputBox';\nexport const EndOfQuickInputBoxContextKey = new RawContextKey<boolean>(endOfQuickInputBoxContextKeyValue, false, localize('cursorAtEndOfQuickInputBox', \"Whether the cursor in the quick input is at the end of the input box\"));\nexport const endOfQuickInputBoxContext = ContextKeyExpr.has(endOfQuickInputBoxContextKeyValue);\n\nexport interface IQuickInputOptions {\n\tidPrefix: string;\n\tcontainer: HTMLElement;\n\tignoreFocusOut(): boolean;\n\tbackKeybindingLabel(): string | undefined;\n\tsetContextKey(id?: string): void;\n\tlinkOpenerDelegate(content: string): void;\n\treturnFocus(): void;\n\t/**\n\t * @todo With IHover in vs/editor, can we depend on the service directly\n\t * instead of passing it through a hover delegate?\n\t */\n\thoverDelegate: IHoverDelegate;\n\tstyles: IQuickInputStyles;\n}\n\nexport interface IQuickInputStyles {\n\treadonly widget: IQuickInputWidgetStyles;\n\treadonly inputBox: IInputBoxStyles;\n\treadonly toggle: IToggleStyles;\n\treadonly countBadge: ICountBadgeStyles;\n\treadonly button: IButtonStyles;\n\treadonly progressBar: IProgressBarStyles;\n\treadonly keybindingLabel: IKeybindingLabelStyles;\n\treadonly list: IListStyles;\n\treadonly pickerGroup: { pickerGroupBorder: string | undefined; pickerGroupForeground: string | undefined };\n}\n\nexport interface IQuickInputWidgetStyles {\n\treadonly quickInputBackground: string | undefined;\n\treadonly quickInputForeground: string | undefined;\n\treadonly quickInputTitleBackground: string | undefined;\n\treadonly widgetBorder: string | undefined;\n\treadonly widgetShadow: string | undefined;\n}\n\nexport type Writeable<T> = { -readonly [P in keyof T]: T[P] };\n\nexport const backButton = {\n\ticonClass: ThemeIcon.asClassName(Codicon.quickInputBack),\n\ttooltip: localize('quickInput.back', \"Back\"),\n\thandle: -1 // TODO\n};\n\nexport interface QuickInputUI {\n\tcontainer: HTMLElement;\n\tstyleSheet: HTMLStyleElement;\n\tleftActionBar: ActionBar;\n\ttitleBar: HTMLElement;\n\ttitle: HTMLElement;\n\tdescription1: HTMLElement;\n\tdescription2: HTMLElement;\n\twidget: HTMLElement;\n\trightActionBar: ActionBar;\n\tinlineActionBar: ActionBar;\n\tcheckAll: TriStateCheckbox;\n\tinputContainer: HTMLElement;\n\tfilterContainer: HTMLElement;\n\tinputBox: QuickInputBox;\n\tvisibleCountContainer: HTMLElement;\n\tvisibleCount: CountBadge;\n\tcountContainer: HTMLElement;\n\tcount: CountBadge;\n\tokContainer: HTMLElement;\n\tok: Button;\n\tmessage: HTMLElement;\n\tcustomButtonContainer: HTMLElement;\n\tcustomButton: Button;\n\tprogressBar: ProgressBar;\n\tlist: QuickInputList;\n\ttree: QuickInputTreeController;\n\treadonly onDidAccept: Event<void>;\n\treadonly onDidCustom: Event<void>;\n\treadonly onDidTriggerButton: Event<IQuickInputButton>;\n\tignoreFocusOut: boolean;\n\tkeyMods: Writeable<IKeyMods>;\n\tshow(controller: QuickInput): void;\n\tsetVisibilities(visibilities: Visibilities): void;\n\tsetEnabled(enabled: boolean): void;\n\tsetContextKey(contextKey?: string): void;\n\tlinkOpenerDelegate(content: string): void;\n\thide(): void;\n}\n\nexport type Visibilities = {\n\ttitle?: boolean;\n\tdescription?: boolean;\n\tcheckAll?: boolean;\n\tinputBox?: boolean;\n\tcheckBox?: boolean;\n\tvisibleCount?: boolean;\n\tcount?: boolean;\n\tmessage?: boolean;\n\tlist?: boolean;\n\ttree?: boolean;\n\tok?: boolean;\n\tcustomButton?: boolean;\n\tprogressBar?: boolean;\n};\n\nexport abstract class QuickInput extends Disposable implements IQuickInput {\n\tprotected static readonly noPromptMessage = localize('inputModeEntry', \"Press 'Enter' to confirm your input or 'Escape' to cancel\");\n\n\tprotected _visible = observableValue('visible', false);\n\tprivate _title: string | undefined;\n\tprivate _description: string | undefined;\n\tprivate _widget: HTMLElement | undefined;\n\tprivate _widgetUpdated = false;\n\tprivate _steps: number | undefined;\n\tprivate _totalSteps: number | undefined;\n\tprivate _enabled = true;\n\tprivate _contextKey: string | undefined;\n\tprivate _busy = false;\n\tprivate _ignoreFocusOut = false;\n\tprivate _leftButtons: IQuickInputButton[] = [];\n\tprivate _rightButtons: IQuickInputButton[] = [];\n\tprivate _inlineButtons: IQuickInputButton[] = [];\n\tprivate _inputButtons: IQuickInputButton[] = [];\n\tprivate buttonsUpdated = false;\n\tprivate _toggles: IQuickInputToggle[] = [];\n\tprivate togglesUpdated = false;\n\tprotected noValidationMessage: string | undefined = QuickInput.noPromptMessage;\n\tprivate _validationMessage: string | undefined;\n\tprivate _lastValidationMessage: string | undefined;\n\tprivate _severity: Severity = Severity.Ignore;\n\tprivate _lastSeverity: Severity | undefined;\n\tprivate readonly onDidTriggerButtonEmitter = this._register(new Emitter<IQuickInputButton>());\n\tprivate readonly onDidHideEmitter = this._register(new Emitter<IQuickInputHideEvent>());\n\tprivate readonly onWillHideEmitter = this._register(new Emitter<IQuickInputHideEvent>());\n\tprivate readonly onDisposeEmitter = this._register(new Emitter<void>());\n\n\tprotected readonly visibleDisposables = this._register(new DisposableStore());\n\n\tprivate busyDelay: TimeoutTimer | undefined;\n\n\tabstract type: QuickInputType;\n\n\tconstructor(\n\t\tprotected ui: QuickInputUI\n\t) {\n\t\tsuper();\n\t}\n\n\tprotected get visible(): boolean {\n\t\treturn this._visible.get();\n\t}\n\n\tget title() {\n\t\treturn this._title;\n\t}\n\n\tset title(title: string | undefined) {\n\t\tthis._title = title;\n\t\tthis.update();\n\t}\n\n\tget description() {\n\t\treturn this._description;\n\t}\n\n\tset description(description: string | undefined) {\n\t\tthis._description = description;\n\t\tthis.update();\n\t}\n\n\tget step() {\n\t\treturn this._steps;\n\t}\n\n\tset step(step: number | undefined) {\n\t\tthis._steps = step;\n\t\tthis.update();\n\t}\n\n\tget totalSteps() {\n\t\treturn this._totalSteps;\n\t}\n\n\tset totalSteps(totalSteps: number | undefined) {\n\t\tthis._totalSteps = totalSteps;\n\t\tthis.update();\n\t}\n\n\tget enabled() {\n\t\treturn this._enabled;\n\t}\n\n\tset enabled(enabled: boolean) {\n\t\tthis._enabled = enabled;\n\t\tthis.update();\n\t}\n\n\tget contextKey() {\n\t\treturn this._contextKey;\n\t}\n\n\tset contextKey(contextKey: string | undefined) {\n\t\tthis._contextKey = contextKey;\n\t\tthis.update();\n\t}\n\n\tget busy() {\n\t\treturn this._busy;\n\t}\n\n\tset busy(busy: boolean) {\n\t\tthis._busy = busy;\n\t\tthis.update();\n\t}\n\n\tget ignoreFocusOut() {\n\t\treturn this._ignoreFocusOut;\n\t}\n\n\tset ignoreFocusOut(ignoreFocusOut: boolean) {\n\t\tconst shouldUpdate = this._ignoreFocusOut !== ignoreFocusOut && !isIOS;\n\t\tthis._ignoreFocusOut = ignoreFocusOut && !isIOS;\n\t\tif (shouldUpdate) {\n\t\t\tthis.update();\n\t\t}\n\t}\n\n\tprotected get titleButtons() {\n\t\treturn this._leftButtons.length\n\t\t\t? [...this._leftButtons, this._rightButtons]\n\t\t\t: this._rightButtons;\n\t}\n\n\tget buttons() {\n\t\treturn [\n\t\t\t...this._leftButtons,\n\t\t\t...this._rightButtons,\n\t\t\t...this._inlineButtons,\n\t\t\t...this._inputButtons\n\t\t];\n\t}\n\n\tset buttons(buttons: IQuickInputButton[]) {\n\t\tconst leftButtons: IQuickInputButton[] = [];\n\t\tconst rightButtons: IQuickInputButton[] = [];\n\t\tconst inlineButtons: IQuickInputButton[] = [];\n\t\tconst inputButtons: IQuickInputButton[] = [];\n\n\t\tfor (const button of buttons) {\n\t\t\tif (button === backButton) {\n\t\t\t\tleftButtons.push(button);\n\t\t\t} else {\n\t\t\t\tswitch (button.location) {\n\t\t\t\t\tcase QuickInputButtonLocation.Inline:\n\t\t\t\t\t\tinlineButtons.push(button);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase QuickInputButtonLocation.Input:\n\t\t\t\t\t\tinputButtons.push(button);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\trightButtons.push(button);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis._leftButtons = leftButtons;\n\t\tthis._rightButtons = rightButtons;\n\t\tthis._inlineButtons = inlineButtons;\n\t\tthis._inputButtons = inputButtons;\n\t\tthis.buttonsUpdated = true;\n\t\tthis.update();\n\t}\n\n\tget toggles() {\n\t\treturn this._toggles;\n\t}\n\n\tset toggles(toggles: IQuickInputToggle[]) {\n\t\tthis._toggles = toggles ?? [];\n\t\tthis.togglesUpdated = true;\n\t\tthis.update();\n\t}\n\n\tget validationMessage() {\n\t\treturn this._validationMessage;\n\t}\n\n\tset validationMessage(validationMessage: string | undefined) {\n\t\tthis._validationMessage = validationMessage;\n\t\tthis.update();\n\t}\n\n\tget severity() {\n\t\treturn this._severity;\n\t}\n\n\tset severity(severity: Severity) {\n\t\tthis._severity = severity;\n\t\tthis.update();\n\t}\n\n\treadonly onDidTriggerButton = this.onDidTriggerButtonEmitter.event;\n\n\tshow(): void {\n\t\tif (this.visible) {\n\t\t\treturn;\n\t\t}\n\t\tthis.visibleDisposables.add(\n\t\t\tthis.ui.onDidTriggerButton(button => {\n\t\t\t\tif (this.buttons.indexOf(button) !== -1) {\n\t\t\t\t\tthis.onDidTriggerButtonEmitter.fire(button);\n\t\t\t\t}\n\t\t\t}),\n\t\t);\n\t\tthis.ui.show(this);\n\n\t\t// update properties in the controller that get reset in the ui.show() call\n\t\tthis._visible.set(true, undefined);\n\t\t// This ensures the message/prompt gets rendered\n\t\tthis._lastValidationMessage = undefined;\n\t\t// This ensures the input box has the right severity applied\n\t\tthis._lastSeverity = undefined;\n\t\tif (this.buttons.length) {\n\t\t\t// if there are buttons, the ui.show() clears them out of the UI so we should\n\t\t\t// rerender them.\n\t\t\tthis.buttonsUpdated = true;\n\t\t}\n\t\tif (this.toggles.length) {\n\t\t\t// if there are toggles, the ui.show() clears them out of the UI so we should\n\t\t\t// rerender them.\n\t\t\tthis.togglesUpdated = true;\n\t\t}\n\n\t\tthis.update();\n\t}\n\n\thide(): void {\n\t\tif (!this.visible) {\n\t\t\treturn;\n\t\t}\n\t\tthis.ui.hide();\n\t}\n\n\tdidHide(reason = QuickInputHideReason.Other): void {\n\t\tthis._visible.set(false, undefined);\n\t\tthis.visibleDisposables.clear();\n\t\tthis.onDidHideEmitter.fire({ reason });\n\t}\n\n\treadonly onDidHide = this.onDidHideEmitter.event;\n\n\twillHide(reason = QuickInputHideReason.Other): void {\n\t\tthis.onWillHideEmitter.fire({ reason });\n\t}\n\n\tprotected update() {\n\t\tif (!this.visible) {\n\t\t\treturn;\n\t\t}\n\t\tconst title = this.getTitle();\n\t\tif (title && this.ui.title.textContent !== title) {\n\t\t\tthis.ui.title.textContent = title;\n\t\t} else if (!title && this.ui.title.innerHTML !== '&nbsp;') {\n\t\t\tthis.ui.title.innerText = '\\u00a0';\n\t\t}\n\t\tconst description = this.getDescription();\n\t\tif (this.ui.description1.textContent !== description) {\n\t\t\tthis.ui.description1.textContent = description;\n\t\t}\n\t\tif (this.ui.description2.textContent !== description) {\n\t\t\tthis.ui.description2.textContent = description;\n\t\t}\n\t\tif (this._widgetUpdated) {\n\t\t\tthis._widgetUpdated = false;\n\t\t\tif (this._widget) {\n\t\t\t\tdom.reset(this.ui.widget, this._widget);\n\t\t\t} else {\n\t\t\t\tdom.reset(this.ui.widget);\n\t\t\t}\n\t\t}\n\t\tif (this.busy && !this.busyDelay) {\n\t\t\tthis.busyDelay = new TimeoutTimer();\n\t\t\tthis.busyDelay.setIfNotSet(() => {\n\t\t\t\tif (this.visible) {\n\t\t\t\t\tthis.ui.progressBar.infinite();\n\t\t\t\t\tthis.ui.progressBar.getContainer().removeAttribute('aria-hidden');\n\t\t\t\t}\n\t\t\t}, 800);\n\t\t}\n\t\tif (!this.busy && this.busyDelay) {\n\t\t\tthis.ui.progressBar.stop();\n\t\t\tthis.ui.progressBar.getContainer().setAttribute('aria-hidden', 'true');\n\t\t\tthis.busyDelay.cancel();\n\t\t\tthis.busyDelay = undefined;\n\t\t}\n\t\tif (this.buttonsUpdated) {\n\t\t\tthis.buttonsUpdated = false;\n\t\t\tthis.ui.leftActionBar.clear();\n\t\t\tconst leftButtons = this._leftButtons\n\t\t\t\t.map((button, index) => quickInputButtonToAction(\n\t\t\t\t\tbutton,\n\t\t\t\t\t`id-${index}`,\n\t\t\t\t\tasync () => this.onDidTriggerButtonEmitter.fire(button)\n\t\t\t\t));\n\t\t\tthis.ui.leftActionBar.push(leftButtons, { icon: true, label: false });\n\t\t\tthis.ui.rightActionBar.clear();\n\t\t\tconst rightButtons = this._rightButtons\n\t\t\t\t.map((button, index) => quickInputButtonToAction(\n\t\t\t\t\tbutton,\n\t\t\t\t\t`id-${index}`,\n\t\t\t\t\tasync () => this.onDidTriggerButtonEmitter.fire(button)\n\t\t\t\t));\n\t\t\tthis.ui.rightActionBar.push(rightButtons, { icon: true, label: false });\n\t\t\tthis.ui.inlineActionBar.clear();\n\t\t\tconst inlineButtons = this._inlineButtons\n\t\t\t\t.map((button, index) => quickInputButtonToAction(\n\t\t\t\t\tbutton,\n\t\t\t\t\t`id-${index}`,\n\t\t\t\t\tasync () => this.onDidTriggerButtonEmitter.fire(button)\n\t\t\t\t));\n\t\t\tthis.ui.inlineActionBar.push(inlineButtons, { icon: true, label: false });\n\t\t\tthis.ui.inputBox.actions = this._inputButtons\n\t\t\t\t.map((button, index) => quickInputButtonToAction(\n\t\t\t\t\tbutton,\n\t\t\t\t\t`id-${index}`,\n\t\t\t\t\tasync () => this.onDidTriggerButtonEmitter.fire(button)\n\t\t\t\t));\n\t\t}\n\t\tif (this.togglesUpdated) {\n\t\t\tthis.togglesUpdated = false;\n\t\t\t// HACK: Filter out toggles here that are not concrete Toggle objects. This is to workaround\n\t\t\t// a layering issue as quick input's interface is in common but Toggle is in browser and\n\t\t\t// it requires a HTMLElement on its interface\n\t\t\tconst concreteToggles = this.toggles?.filter(opts => opts instanceof Toggle) ?? [];\n\t\t\tthis.ui.inputBox.toggles = concreteToggles;\n\t\t\t// Adjust count badge position based on number of toggles (each toggle is ~22px wide)\n\t\t\tconst toggleOffset = concreteToggles.length * 22;\n\t\t\tthis.ui.countContainer.style.right = toggleOffset > 0 ? `${4 + toggleOffset}px` : '4px';\n\t\t}\n\t\tthis.ui.ignoreFocusOut = this.ignoreFocusOut;\n\t\tthis.ui.setEnabled(this.enabled);\n\t\tthis.ui.setContextKey(this.contextKey);\n\n\t\tconst validationMessage = this.validationMessage || this.noValidationMessage;\n\t\tif (this._lastValidationMessage !== validationMessage) {\n\t\t\tthis._lastValidationMessage = validationMessage;\n\t\t\tdom.reset(this.ui.message);\n\t\t\tif (validationMessage) {\n\t\t\t\trenderQuickInputDescription(validationMessage, this.ui.message, {\n\t\t\t\t\tcallback: (content) => {\n\t\t\t\t\t\tthis.ui.linkOpenerDelegate(content);\n\t\t\t\t\t},\n\t\t\t\t\tdisposables: this.visibleDisposables,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tif (this._lastSeverity !== this.severity) {\n\t\t\tthis._lastSeverity = this.severity;\n\t\t\tthis.showMessageDecoration(this.severity);\n\t\t}\n\t}\n\n\tprivate getTitle() {\n\t\tif (this.title && this.step) {\n\t\t\treturn `${this.title} (${this.getSteps()})`;\n\t\t}\n\t\tif (this.title) {\n\t\t\treturn this.title;\n\t\t}\n\t\tif (this.step) {\n\t\t\treturn this.getSteps();\n\t\t}\n\t\treturn '';\n\t}\n\n\tprivate getDescription() {\n\t\treturn this.description || '';\n\t}\n\n\tprivate getSteps() {\n\t\tif (this.step && this.totalSteps) {\n\t\t\treturn localize('quickInput.steps', \"{0}/{1}\", this.step, this.totalSteps);\n\t\t}\n\t\tif (this.step) {\n\t\t\treturn String(this.step);\n\t\t}\n\t\treturn '';\n\t}\n\n\tprotected showMessageDecoration(severity: Severity) {\n\t\tthis.ui.inputBox.showDecoration(severity);\n\t\tif (severity !== Severity.Ignore) {\n\t\t\tconst styles = this.ui.inputBox.stylesForType(severity);\n\t\t\tthis.ui.message.style.color = styles.foreground ? `${styles.foreground}` : '';\n\t\t\tthis.ui.message.style.backgroundColor = styles.background ? `${styles.background}` : '';\n\t\t\tthis.ui.message.style.border = styles.border ? `1px solid ${styles.border}` : '';\n\t\t\tthis.ui.message.style.marginBottom = '-2px';\n\t\t} else {\n\t\t\tthis.ui.message.style.color = '';\n\t\t\tthis.ui.message.style.backgroundColor = '';\n\t\t\tthis.ui.message.style.border = '';\n\t\t\tthis.ui.message.style.marginBottom = '';\n\t\t}\n\t}\n\n\toverride dispose(): void {\n\t\tthis.hide();\n\t\tthis.onDisposeEmitter.fire();\n\n\t\tsuper.dispose();\n\t}\n}\n\nexport class QuickPick<T extends IQuickPickItem, O extends { useSeparators: boolean } = { useSeparators: false }> extends QuickInput implements IQuickPick<T, O> {\n\n\tprivate static readonly DEFAULT_ARIA_LABEL = localize('quickInputBox.ariaLabel', \"Type to narrow down results.\");\n\n\tprivate _value = '';\n\tprivate _ariaLabel: string | undefined;\n\tprivate _placeholder: string | undefined;\n\tprivate readonly onDidChangeValueEmitter = this._register(new Emitter<string>());\n\tprivate readonly onWillAcceptEmitter = this._register(new Emitter<IQuickPickWillAcceptEvent>());\n\tprivate readonly onDidAcceptEmitter = this._register(new Emitter<IQuickPickDidAcceptEvent>());\n\tprivate readonly onDidCustomEmitter = this._register(new Emitter<void>());\n\tprivate _items: O extends { useSeparators: true } ? Array<T | IQuickPickSeparator> : Array<T> = [];\n\tprivate itemsUpdated = false;\n\tprivate _canSelectMany = false;\n\tprivate _canAcceptInBackground = false;\n\tprivate _matchOnDescription = false;\n\tprivate _matchOnDetail = false;\n\tprivate _matchOnLabel = true;\n\tprivate _matchOnLabelMode: 'fuzzy' | 'contiguous' = 'fuzzy';\n\tprivate _sortByLabel = true;\n\tprivate _keepScrollPosition = false;\n\tprivate _itemActivation = ItemActivation.FIRST;\n\tprivate _activeItems: T[] = [];\n\tprivate activeItemsUpdated = false;\n\tprivate activeItemsToConfirm: T[] | null = [];\n\tprivate readonly onDidChangeActiveEmitter = this._register(new Emitter<T[]>());\n\tprivate _selectedItems: T[] = [];\n\tprivate selectedItemsUpdated = false;\n\tprivate selectedItemsToConfirm: T[] | null = [];\n\tprivate readonly onDidChangeSelectionEmitter = this._register(new Emitter<T[]>());\n\tprivate readonly onDidTriggerItemButtonEmitter = this._register(new Emitter<IQuickPickItemButtonEvent<T>>());\n\tprivate readonly onDidTriggerSeparatorButtonEmitter = this._register(new Emitter<IQuickPickSeparatorButtonEvent>());\n\tprivate _valueSelection: Readonly<[number, number]> | undefined;\n\tprivate valueSelectionUpdated = true;\n\tprivate _ok: boolean | 'default' = 'default';\n\tprivate _okLabel: string | undefined;\n\tprivate _customButton = false;\n\tprivate _customButtonLabel: string | undefined;\n\tprivate _customButtonHover: string | undefined;\n\tprivate _customButtonSecondary = false;\n\tprivate _quickNavigate: IQuickNavigateConfiguration | undefined;\n\tprivate _hideInput: boolean | undefined;\n\tprivate _hideCountBadge: boolean | undefined;\n\tprivate _hideCheckAll: boolean | undefined;\n\tprivate _focusEventBufferer = new EventBufferer();\n\n\treadonly type = QuickInputType.QuickPick;\n\n\tconstructor(ui: QuickInputUI) {\n\t\tsuper(ui);\n\t\tthis.noValidationMessage = undefined;\n\t}\n\n\tget quickNavigate() {\n\t\treturn this._quickNavigate;\n\t}\n\n\tset quickNavigate(quickNavigate: IQuickNavigateConfiguration | undefined) {\n\t\tthis._quickNavigate = quickNavigate;\n\t\tthis.update();\n\t}\n\n\tget value() {\n\t\treturn this._value;\n\t}\n\n\tset value(value: string) {\n\t\tthis.doSetValue(value);\n\t}\n\n\tprivate doSetValue(value: string, skipUpdate?: boolean): void {\n\t\tif (this._value !== value) {\n\t\t\tthis._value = value;\n\t\t\tif (!skipUpdate) {\n\t\t\t\tthis.update();\n\t\t\t}\n\t\t\tif (this.visible) {\n\t\t\t\tconst didFilter = this.ui.list.filter(this.filterValue(this._value));\n\t\t\t\tif (didFilter) {\n\t\t\t\t\tthis.trySelectFirst();\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.onDidChangeValueEmitter.fire(this._value);\n\t\t}\n\t}\n\n\tfilterValue = (value: string) => value;\n\n\tset ariaLabel(ariaLabel: string | undefined) {\n\t\tthis._ariaLabel = ariaLabel;\n\t\tthis.update();\n\t}\n\n\tget ariaLabel() {\n\t\treturn this._ariaLabel;\n\t}\n\n\tget placeholder() {\n\t\treturn this._placeholder;\n\t}\n\n\tset placeholder(placeholder: string | undefined) {\n\t\tthis._placeholder = placeholder;\n\t\tthis.update();\n\t}\n\n\tget prompt() {\n\t\treturn this.noValidationMessage;\n\t}\n\n\tset prompt(prompt: string | undefined) {\n\t\tthis.noValidationMessage = prompt;\n\t\tthis.update();\n\t}\n\n\tonDidChangeValue = this.onDidChangeValueEmitter.event;\n\n\tonWillAccept = this.onWillAcceptEmitter.event;\n\tonDidAccept = this.onDidAcceptEmitter.event;\n\n\tget items() {\n\t\treturn this._items;\n\t}\n\n\tget scrollTop() {\n\t\treturn this.ui.list.scrollTop;\n\t}\n\n\tprivate set scrollTop(scrollTop: number) {\n\t\tthis.ui.list.scrollTop = scrollTop;\n\t}\n\n\tset items(items: O extends { useSeparators: true } ? Array<T | IQuickPickSeparator> : Array<T>) {\n\t\tthis._items = items;\n\t\tthis.itemsUpdated = true;\n\t\tthis.update();\n\t}\n\n\tget canSelectMany() {\n\t\treturn this._canSelectMany;\n\t}\n\n\tset canSelectMany(canSelectMany: boolean) {\n\t\tthis._canSelectMany = canSelectMany;\n\t\tthis.update();\n\t}\n\n\tget canAcceptInBackground() {\n\t\treturn this._canAcceptInBackground;\n\t}\n\n\tset canAcceptInBackground(canAcceptInBackground: boolean) {\n\t\tthis._canAcceptInBackground = canAcceptInBackground;\n\t}\n\n\tget matchOnDescription() {\n\t\treturn this._matchOnDescription;\n\t}\n\n\tset matchOnDescription(matchOnDescription: boolean) {\n\t\tthis._matchOnDescription = matchOnDescription;\n\t\tthis.update();\n\t}\n\n\tget matchOnDetail() {\n\t\treturn this._matchOnDetail;\n\t}\n\n\tset matchOnDetail(matchOnDetail: boolean) {\n\t\tthis._matchOnDetail = matchOnDetail;\n\t\tthis.update();\n\t}\n\n\tget matchOnLabel() {\n\t\treturn this._matchOnLabel;\n\t}\n\n\tset matchOnLabel(matchOnLabel: boolean) {\n\t\tthis._matchOnLabel = matchOnLabel;\n\t\tthis.update();\n\t}\n\n\tget matchOnLabelMode() {\n\t\treturn this._matchOnLabelMode;\n\t}\n\n\tset matchOnLabelMode(matchOnLabelMode: 'fuzzy' | 'contiguous') {\n\t\tthis._matchOnLabelMode = matchOnLabelMode;\n\t\tthis.update();\n\t}\n\n\tget sortByLabel() {\n\t\treturn this._sortByLabel;\n\t}\n\n\tset sortByLabel(sortByLabel: boolean) {\n\t\tthis._sortByLabel = sortByLabel;\n\t\tthis.update();\n\t}\n\n\tget keepScrollPosition() {\n\t\treturn this._keepScrollPosition;\n\t}\n\n\tset keepScrollPosition(keepScrollPosition: boolean) {\n\t\tthis._keepScrollPosition = keepScrollPosition;\n\t}\n\n\tget itemActivation() {\n\t\treturn this._itemActivation;\n\t}\n\n\tset itemActivation(itemActivation: ItemActivation) {\n\t\tthis._itemActivation = itemActivation;\n\t}\n\n\tget activeItems() {\n\t\treturn this._activeItems;\n\t}\n\n\tset activeItems(activeItems: T[]) {\n\t\tthis._activeItems = activeItems;\n\t\tthis.activeItemsUpdated = true;\n\t\tthis.update();\n\t}\n\n\tonDidChangeActive = this.onDidChangeActiveEmitter.event;\n\n\tget selectedItems() {\n\t\treturn this._selectedItems;\n\t}\n\n\tset selectedItems(selectedItems: T[]) {\n\t\tthis._selectedItems = selectedItems;\n\t\tthis.selectedItemsUpdated = true;\n\t\tthis.update();\n\t}\n\n\tget keyMods() {\n\t\tif (this._quickNavigate) {\n\t\t\t// Disable keyMods when quick navigate is enabled\n\t\t\t// because in this model the interaction is purely\n\t\t\t// keyboard driven and Ctrl/Alt are typically\n\t\t\t// pressed and hold during this interaction.\n\t\t\treturn NO_KEY_MODS;\n\t\t}\n\t\treturn this.ui.keyMods;\n\t}\n\n\tget valueSelection() {\n\t\tconst selection = this.ui.inputBox.getSelection();\n\t\tif (!selection) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn [selection.start, selection.end];\n\t}\n\n\tset valueSelection(valueSelection: Readonly<[number, number]> | undefined) {\n\t\tthis._valueSelection = valueSelection;\n\t\tthis.valueSelectionUpdated = true;\n\t\tthis.update();\n\t}\n\n\tget customButton() {\n\t\treturn this._customButton;\n\t}\n\n\tset customButton(showCustomButton: boolean) {\n\t\tthis._customButton = showCustomButton;\n\t\tthis.update();\n\t}\n\n\tget customLabel() {\n\t\treturn this._customButtonLabel;\n\t}\n\n\tset customLabel(label: string | undefined) {\n\t\tthis._customButtonLabel = label;\n\t\tthis.update();\n\t}\n\n\tget customHover() {\n\t\treturn this._customButtonHover;\n\t}\n\n\tset customHover(hover: string | undefined) {\n\t\tthis._customButtonHover = hover;\n\t\tthis.update();\n\t}\n\n\tget customButtonSecondary() {\n\t\treturn this._customButtonSecondary;\n\t}\n\n\tset customButtonSecondary(secondary: boolean | undefined) {\n\t\tthis._customButtonSecondary = secondary ?? false;\n\t\tthis.update();\n\t}\n\n\tget ok() {\n\t\treturn this._ok;\n\t}\n\n\tset ok(showOkButton: boolean | 'default') {\n\t\tthis._ok = showOkButton;\n\t\tthis.update();\n\t}\n\n\tget okLabel() {\n\t\treturn this._okLabel ?? localize('ok', \"OK\");\n\t}\n\n\tset okLabel(okLabel: string | undefined) {\n\t\tthis._okLabel = okLabel;\n\t\tthis.update();\n\t}\n\n\tget hideInput() {\n\t\treturn !!this._hideInput;\n\t}\n\n\tset hideInput(hideInput: boolean) {\n\t\tthis._hideInput = hideInput;\n\t\tthis.update();\n\t}\n\n\tonDidChangeSelection = this.onDidChangeSelectionEmitter.event;\n\n\tonDidTriggerItemButton = this.onDidTriggerItemButtonEmitter.event;\n\n\tonDidTriggerSeparatorButton = this.onDidTriggerSeparatorButtonEmitter.event;\n\n\tprivate trySelectFirst() {\n\t\tif (!this.canSelectMany) {\n\t\t\tthis.ui.list.focus(QuickPickFocus.First);\n\t\t}\n\t}\n\n\toverride show() {\n\t\tif (!this.visible) {\n\t\t\tthis.visibleDisposables.add(\n\t\t\t\tthis.ui.inputBox.onDidChange(value => {\n\t\t\t\t\tthis.doSetValue(value, true /* skip update since this originates from the UI */);\n\t\t\t\t}));\n\t\t\tthis.visibleDisposables.add(this.ui.onDidAccept(() => {\n\t\t\t\tif (this.canSelectMany) {\n\t\t\t\t\t// if there are no checked elements, it means that an onDidChangeSelection never fired to overwrite\n\t\t\t\t\t// `_selectedItems`. In that case, we should emit one with an empty array to ensure that\n\t\t\t\t\t// `.selectedItems` is up to date.\n\t\t\t\t\tif (!this.ui.list.getCheckedElements().length) {\n\t\t\t\t\t\tthis._selectedItems = [];\n\t\t\t\t\t\tthis.onDidChangeSelectionEmitter.fire(this.selectedItems);\n\t\t\t\t\t}\n\t\t\t\t} else if (this.activeItems[0]) {\n\t\t\t\t\t// For single-select, we set `selectedItems` to the item that was accepted.\n\t\t\t\t\tthis._selectedItems = [this.activeItems[0]];\n\t\t\t\t\tthis.onDidChangeSelectionEmitter.fire(this.selectedItems);\n\t\t\t\t}\n\t\t\t\tthis.handleAccept(false);\n\t\t\t}));\n\t\t\tthis.visibleDisposables.add(this.ui.onDidCustom(() => {\n\t\t\t\tthis.onDidCustomEmitter.fire();\n\t\t\t}));\n\t\t\tthis.visibleDisposables.add(this._focusEventBufferer.wrapEvent(\n\t\t\t\tthis.ui.list.onDidChangeFocus,\n\t\t\t\t// Only fire the last event\n\t\t\t\t(_, e) => e\n\t\t\t)(focusedItems => {\n\t\t\t\tif (this.activeItemsUpdated) {\n\t\t\t\t\treturn; // Expect another event.\n\t\t\t\t}\n\t\t\t\tif (this.activeItemsToConfirm !== this._activeItems && equals(focusedItems, this._activeItems, (a, b) => a === b)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis._activeItems = focusedItems as T[];\n\t\t\t\tthis.onDidChangeActiveEmitter.fire(focusedItems as T[]);\n\t\t\t}));\n\t\t\tthis.visibleDisposables.add(this.ui.list.onDidChangeSelection(({ items: selectedItems, event }) => {\n\t\t\t\tif (this.canSelectMany && !selectedItems.some(i => i.pickable === false)) {\n\t\t\t\t\tif (selectedItems.length) {\n\t\t\t\t\t\tthis.ui.list.setSelectedElements([]);\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (this.selectedItemsToConfirm !== this._selectedItems && equals(selectedItems, this._selectedItems, (a, b) => a === b)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis._selectedItems = selectedItems as T[];\n\t\t\t\tthis.onDidChangeSelectionEmitter.fire(selectedItems as T[]);\n\t\t\t\tif (selectedItems.length) {\n\t\t\t\t\tthis.handleAccept(dom.isMouseEvent(event) && event.button === 1 /* mouse middle click */);\n\t\t\t\t}\n\t\t\t}));\n\t\t\tthis.visibleDisposables.add(this.ui.list.onChangedCheckedElements(checkedItems => {\n\t\t\t\tif (!this.canSelectMany || !this.visible) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (this.selectedItemsToConfirm !== this._selectedItems && equals(checkedItems, this._selectedItems, (a, b) => a === b)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis._selectedItems = checkedItems as T[];\n\t\t\t\tthis.onDidChangeSelectionEmitter.fire(checkedItems as T[]);\n\t\t\t}));\n\t\t\tthis.visibleDisposables.add(this.ui.list.onButtonTriggered(event => this.onDidTriggerItemButtonEmitter.fire(event as IQuickPickItemButtonEvent<T>)));\n\t\t\tthis.visibleDisposables.add(this.ui.list.onSeparatorButtonTriggered(event => this.onDidTriggerSeparatorButtonEmitter.fire(event)));\n\t\t\tthis.visibleDisposables.add(this.registerQuickNavigation());\n\t\t\tthis.valueSelectionUpdated = true;\n\t\t}\n\t\tsuper.show(); // TODO: Why have show() bubble up while update() trickles down?\n\t}\n\n\tprivate handleAccept(inBackground: boolean): void {\n\n\t\t// Figure out veto via `onWillAccept` event\n\t\tlet veto = false;\n\t\tthis.onWillAcceptEmitter.fire({ veto: () => veto = true });\n\n\t\t// Continue with `onDidAccept` if no veto\n\t\tif (!veto) {\n\t\t\tthis.onDidAcceptEmitter.fire({ inBackground });\n\t\t}\n\t}\n\n\tprivate registerQuickNavigation() {\n\t\treturn dom.addDisposableListener(this.ui.container, dom.EventType.KEY_UP, e => {\n\t\t\tif (this.canSelectMany || !this._quickNavigate) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst keyboardEvent: StandardKeyboardEvent = new StandardKeyboardEvent(e);\n\t\t\tconst keyCode = keyboardEvent.keyCode;\n\n\t\t\t// Select element when keys are pressed that signal it\n\t\t\tconst quickNavKeys = this._quickNavigate.keybindings;\n\t\t\tconst wasTriggerKeyPressed = quickNavKeys.some(k => {\n\t\t\t\tconst chords = k.getChords();\n\t\t\t\tif (chords.length > 1) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tif (chords[0].shiftKey && keyCode === KeyCode.Shift) {\n\t\t\t\t\tif (keyboardEvent.ctrlKey || keyboardEvent.altKey || keyboardEvent.metaKey) {\n\t\t\t\t\t\treturn false; // this is an optimistic check for the shift key being used to navigate back in quick input\n\t\t\t\t\t}\n\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tif (chords[0].altKey && keyCode === KeyCode.Alt) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tif (chords[0].ctrlKey && keyCode === KeyCode.Ctrl) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tif (chords[0].metaKey && keyCode === KeyCode.Meta) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t});\n\n\t\t\tif (wasTriggerKeyPressed) {\n\t\t\t\tif (this.activeItems[0]) {\n\t\t\t\t\tthis._selectedItems = [this.activeItems[0]];\n\t\t\t\t\tthis.onDidChangeSelectionEmitter.fire(this.selectedItems);\n\t\t\t\t\tthis.handleAccept(false);\n\t\t\t\t}\n\t\t\t\t// Unset quick navigate after press. It is only valid once\n\t\t\t\t// and should not result in any behaviour change afterwards\n\t\t\t\t// if the picker remains open because there was no active item\n\t\t\t\tthis._quickNavigate = undefined;\n\t\t\t}\n\t\t});\n\t}\n\n\tprotected override update() {\n\t\tif (!this.visible) {\n\t\t\treturn;\n\t\t}\n\t\t// store the scrollTop before it is reset\n\t\tconst scrollTopBefore = this.keepScrollPosition ? this.scrollTop : 0;\n\t\tconst hasDescription = !!this.description;\n\t\tconst visibilities: Visibilities = {\n\t\t\ttitle: !!this.title || !!this.step || !!this.titleButtons.length,\n\t\t\tdescription: hasDescription,\n\t\t\tcheckAll: this.canSelectMany && !this._hideCheckAll,\n\t\t\tcheckBox: this.canSelectMany,\n\t\t\tinputBox: !this._hideInput,\n\t\t\tprogressBar: !this._hideInput || hasDescription,\n\t\t\tvisibleCount: true,\n\t\t\tcount: this.canSelectMany && !this._hideCountBadge,\n\t\t\tok: this.ok === 'default' ? this.canSelectMany : this.ok,\n\t\t\tlist: true,\n\t\t\tmessage: !!this.validationMessage || !!this.prompt,\n\t\t\tcustomButton: this.customButton\n\t\t};\n\t\tthis.ui.setVisibilities(visibilities);\n\t\tsuper.update();\n\t\tif (this.ui.inputBox.value !== this.value) {\n\t\t\tthis.ui.inputBox.value = this.value;\n\t\t}\n\t\tif (this.valueSelectionUpdated) {\n\t\t\tthis.valueSelectionUpdated = false;\n\t\t\tthis.ui.inputBox.select(this._valueSelection && { start: this._valueSelection[0], end: this._valueSelection[1] });\n\t\t}\n\t\tif (this.ui.inputBox.placeholder !== (this.placeholder || '')) {\n\t\t\tthis.ui.inputBox.placeholder = (this.placeholder || '');\n\t\t}\n\n\t\tlet ariaLabel = this.ariaLabel;\n\t\t// Only set aria label to the input box placeholder if we actually have an input box.\n\t\tif (!ariaLabel && visibilities.inputBox) {\n\t\t\tariaLabel = this.placeholder;\n\t\t\t// If we have a title, include it in the aria label.\n\t\t\tif (this.title) {\n\t\t\t\tariaLabel = ariaLabel\n\t\t\t\t\t? `${ariaLabel} - ${this.title}`\n\t\t\t\t\t: this.title;\n\t\t\t}\n\t\t\tif (!ariaLabel) {\n\t\t\t\tariaLabel = QuickPick.DEFAULT_ARIA_LABEL;\n\t\t\t}\n\t\t}\n\t\tif (this.ui.list.ariaLabel !== ariaLabel) {\n\t\t\tthis.ui.list.ariaLabel = ariaLabel ?? null;\n\t\t}\n\t\tif (this.ui.inputBox.ariaLabel !== ariaLabel) {\n\t\t\tthis.ui.inputBox.ariaLabel = ariaLabel ?? 'input';\n\t\t}\n\t\tthis.ui.list.matchOnDescription = this.matchOnDescription;\n\t\tthis.ui.list.matchOnDetail = this.matchOnDetail;\n\t\tthis.ui.list.matchOnLabel = this.matchOnLabel;\n\t\tthis.ui.list.matchOnLabelMode = this.matchOnLabelMode;\n\t\tthis.ui.list.sortByLabel = this.sortByLabel;\n\t\tif (this.itemsUpdated) {\n\t\t\tthis.itemsUpdated = false;\n\t\t\tthis._focusEventBufferer.bufferEvents(() => {\n\t\t\t\tthis.ui.list.setElements(this.items);\n\t\t\t\t// We want focus to exist in the list if there are items so that space can be used to toggle\n\t\t\t\tthis.ui.list.shouldLoop = !this.canSelectMany;\n\t\t\t\tthis.ui.list.filter(this.filterValue(this.ui.inputBox.value));\n\t\t\t\tswitch (this._itemActivation) {\n\t\t\t\t\tcase ItemActivation.NONE:\n\t\t\t\t\t\tthis._itemActivation = ItemActivation.FIRST; // only valid once, then unset\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase ItemActivation.SECOND:\n\t\t\t\t\t\tthis.ui.list.focus(QuickPickFocus.Second);\n\t\t\t\t\t\tthis._itemActivation = ItemActivation.FIRST; // only valid once, then unset\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase ItemActivation.LAST:\n\t\t\t\t\t\tthis.ui.list.focus(QuickPickFocus.Last);\n\t\t\t\t\t\tthis._itemActivation = ItemActivation.FIRST; // only valid once, then unset\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthis.trySelectFirst();\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tif (this.ui.container.classList.contains('show-checkboxes') !== !!this.canSelectMany) {\n\t\t\tif (this.canSelectMany) {\n\t\t\t\tthis.ui.list.clearFocus();\n\t\t\t} else {\n\t\t\t\tthis.trySelectFirst();\n\t\t\t}\n\t\t}\n\t\tif (this.activeItemsUpdated) {\n\t\t\tthis.activeItemsUpdated = false;\n\t\t\tthis.activeItemsToConfirm = this._activeItems;\n\t\t\tthis.ui.list.setFocusedElements(this.activeItems);\n\t\t\tif (this.activeItemsToConfirm === this._activeItems) {\n\t\t\t\tthis.activeItemsToConfirm = null;\n\t\t\t}\n\t\t}\n\t\tif (this.selectedItemsUpdated) {\n\t\t\tthis.selectedItemsUpdated = false;\n\t\t\tthis.selectedItemsToConfirm = this._selectedItems;\n\t\t\tif (this.canSelectMany) {\n\t\t\t\tthis.ui.list.setCheckedElements(this.selectedItems);\n\t\t\t} else {\n\t\t\t\tthis.ui.list.setSelectedElements(this.selectedItems);\n\t\t\t}\n\t\t\tif (this.selectedItemsToConfirm === this._selectedItems) {\n\t\t\t\tthis.selectedItemsToConfirm = null;\n\t\t\t}\n\t\t}\n\t\tthis.ui.ok.label = this.okLabel || '';\n\t\tthis.ui.customButton.label = this.customLabel || '';\n\t\tthis.ui.customButton.element.title = this.customHover || '';\n\t\tthis.ui.customButton.secondary = this.customButtonSecondary || false;\n\t\tif (!visibilities.inputBox) {\n\t\t\t// we need to move focus into the tree to detect keybindings\n\t\t\t// properly when the input box is not visible (quick nav)\n\t\t\tthis.ui.list.domFocus();\n\n\t\t\t// Focus the first element in the list if multiselect is enabled\n\t\t\tif (this.canSelectMany) {\n\t\t\t\tthis.ui.list.focus(QuickPickFocus.First);\n\t\t\t}\n\t\t}\n\n\t\t// Set the scroll position to what it was before updating the items\n\t\tif (this.keepScrollPosition) {\n\t\t\tthis.scrollTop = scrollTopBefore;\n\t\t}\n\t}\n\n\tfocus(focus: QuickPickFocus): void {\n\t\tthis.ui.list.focus(focus);\n\t\t// To allow things like space to check/uncheck items\n\t\tif (this.canSelectMany) {\n\t\t\tthis.ui.list.domFocus();\n\t\t}\n\t}\n\n\taccept(inBackground?: boolean | undefined): void {\n\t\tif (inBackground && !this._canAcceptInBackground) {\n\t\t\treturn; // needs to be enabled\n\t\t}\n\n\t\tif (this.activeItems[0] && !this._canSelectMany) {\n\t\t\tthis._selectedItems = [this.activeItems[0]];\n\t\t\tthis.onDidChangeSelectionEmitter.fire(this.selectedItems);\n\t\t}\n\t\tthis.handleAccept(inBackground ?? false);\n\t}\n}\n\nexport class InputBox extends QuickInput implements IInputBox {\n\tprivate _value = '';\n\tprivate _valueSelection: Readonly<[number, number]> | undefined;\n\tprivate valueSelectionUpdated = true;\n\tprivate _placeholder: string | undefined;\n\tprivate _ariaLabel: string | undefined;\n\tprivate _password = false;\n\tprivate _prompt: string | undefined;\n\tprivate readonly onDidValueChangeEmitter = this._register(new Emitter<string>());\n\tprivate readonly onDidAcceptEmitter = this._register(new Emitter<void>());\n\n\treadonly type = QuickInputType.InputBox;\n\n\tget value() {\n\t\treturn this._value;\n\t}\n\n\tset value(value: string) {\n\t\tthis._value = value || '';\n\t\tthis.update();\n\t}\n\n\tget valueSelection() {\n\t\tconst selection = this.ui.inputBox.getSelection();\n\t\tif (!selection) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn [selection.start, selection.end];\n\t}\n\n\tset valueSelection(valueSelection: Readonly<[number, number]> | undefined) {\n\t\tthis._valueSelection = valueSelection;\n\t\tthis.valueSelectionUpdated = true;\n\t\tthis.update();\n\t}\n\n\tget placeholder() {\n\t\treturn this._placeholder;\n\t}\n\n\tset placeholder(placeholder: string | undefined) {\n\t\tthis._placeholder = placeholder;\n\t\tthis.update();\n\t}\n\n\tget ariaLabel() {\n\t\treturn this._ariaLabel;\n\t}\n\n\tset ariaLabel(ariaLabel: string | undefined) {\n\t\tthis._ariaLabel = ariaLabel;\n\t\tthis.update();\n\t}\n\n\tget password() {\n\t\treturn this._password;\n\t}\n\n\tset password(password: boolean) {\n\t\tthis._password = password;\n\t\tthis.update();\n\t}\n\n\tget prompt() {\n\t\treturn this._prompt;\n\t}\n\n\tset prompt(prompt: string | undefined) {\n\t\tthis._prompt = prompt;\n\t\tthis.noValidationMessage = prompt\n\t\t\t? localize('inputModeEntryDescription', \"{0} (Press 'Enter' to confirm or 'Escape' to cancel)\", prompt)\n\t\t\t: QuickInput.noPromptMessage;\n\t\tthis.update();\n\t}\n\n\treadonly onDidChangeValue = this.onDidValueChangeEmitter.event;\n\n\treadonly onDidAccept = this.onDidAcceptEmitter.event;\n\n\toverride show() {\n\t\tif (!this.visible) {\n\t\t\tthis.visibleDisposables.add(\n\t\t\t\tthis.ui.inputBox.onDidChange(value => {\n\t\t\t\t\tif (value === this.value) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tthis._value = value;\n\t\t\t\t\tthis.onDidValueChangeEmitter.fire(value);\n\t\t\t\t}));\n\t\t\tthis.visibleDisposables.add(this.ui.onDidAccept(() => this.onDidAcceptEmitter.fire()));\n\t\t\tthis.valueSelectionUpdated = true;\n\t\t}\n\t\tsuper.show();\n\t}\n\n\taccept(): void {\n\t\tthis.onDidAcceptEmitter.fire();\n\t}\n\n\tprotected override update() {\n\t\tif (!this.visible) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.ui.container.classList.remove('hidden-input');\n\t\tconst visibilities: Visibilities = {\n\t\t\ttitle: !!this.title || !!this.step || !!this.titleButtons.length,\n\t\t\tdescription: !!this.description || !!this.step,\n\t\t\tinputBox: true,\n\t\t\tmessage: true,\n\t\t\tprogressBar: true\n\t\t};\n\n\t\tthis.ui.setVisibilities(visibilities);\n\t\tsuper.update();\n\t\tif (this.ui.inputBox.value !== this.value) {\n\t\t\tthis.ui.inputBox.value = this.value;\n\t\t}\n\t\tif (this.valueSelectionUpdated) {\n\t\t\tthis.valueSelectionUpdated = false;\n\t\t\tthis.ui.inputBox.select(this._valueSelection && { start: this._valueSelection[0], end: this._valueSelection[1] });\n\t\t}\n\t\tif (this.ui.inputBox.placeholder !== (this.placeholder || '')) {\n\t\t\tthis.ui.inputBox.placeholder = (this.placeholder || '');\n\t\t}\n\t\tif (this.ui.inputBox.password !== this.password) {\n\t\t\tthis.ui.inputBox.password = this.password;\n\t\t}\n\t\tlet ariaLabel = this.ariaLabel;\n\t\t// Only set aria label to the input box placeholder if we actually have an input box.\n\t\tif (!ariaLabel && visibilities.inputBox) {\n\t\t\tariaLabel = this.placeholder\n\t\t\t\t? this.title\n\t\t\t\t\t? `${this.placeholder} - ${this.title}`\n\t\t\t\t\t: this.placeholder\n\t\t\t\t: this.title\n\t\t\t\t\t? this.title\n\t\t\t\t\t: 'input';\n\t\t}\n\t\tif (this.ui.inputBox.ariaLabel !== ariaLabel) {\n\t\t\tthis.ui.inputBox.ariaLabel = ariaLabel || 'input';\n\t\t}\n\t}\n}\n\nexport class QuickInputHoverDelegate extends WorkbenchHoverDelegate {\n\n\tconstructor(\n\t\t@IConfigurationService configurationService: IConfigurationService,\n\t\t@IHoverService hoverService: IHoverService\n\t) {\n\t\tsuper('mouse', undefined, (options) => this.getOverrideOptions(options), configurationService, hoverService);\n\t}\n\n\tprivate getOverrideOptions(options: IHoverDelegateOptions): Partial<IHoverOptions> {\n\t\t// Only show the hover hint if the content is of a decent size\n\t\tconst showHoverHint = (\n\t\t\tdom.isHTMLElement(options.content)\n\t\t\t\t? options.content.textContent ?? ''\n\t\t\t\t: typeof options.content === 'string'\n\t\t\t\t\t? options.content\n\t\t\t\t\t: options.content.value\n\t\t).includes('\\n');\n\n\t\treturn {\n\t\t\tpersistence: {\n\t\t\t\thideOnKeyDown: false,\n\t\t\t},\n\t\t\tappearance: {\n\t\t\t\tshowHoverHint,\n\t\t\t\tskipFadeInAnimation: true,\n\t\t\t},\n\t\t};\n\t}\n}\n"]}
@@ -13,7 +13,7 @@ function registerQuickInputCommandAndKeybindingRule(rule, options = {}) {
13
13
  KeybindingsRegistry.registerCommandAndKeybindingRule({
14
14
  weight: 200 /* KeybindingWeight.WorkbenchContrib */,
15
15
  when: inQuickInputContext,
16
- metadata: { description: localize(1777, "Used while in the context of any kind of quick input. If you change one keybinding for this command, you should change all of the other keybindings (modifier variants) of this command as well.") },
16
+ metadata: { description: localize(1778, "Used while in the context of any kind of quick input. If you change one keybinding for this command, you should change all of the other keybindings (modifier variants) of this command as well.") },
17
17
  ...rule,
18
18
  secondary: getSecondary(rule.primary, rule.secondary ?? [], options)
19
19
  });
@@ -24,7 +24,7 @@ function registerQuickPickCommandAndKeybindingRule(rule, options = {}) {
24
24
  when: ContextKeyExpr.and(ContextKeyExpr.or(
25
25
  // Only things that use Tree widgets
26
26
  ContextKeyExpr.equals(quickInputTypeContextKeyValue, "quickPick" /* QuickInputType.QuickPick */), ContextKeyExpr.equals(quickInputTypeContextKeyValue, "quickTree" /* QuickInputType.QuickTree */)), inQuickInputContext),
27
- metadata: { description: localize(1778, "Used while in the context of the quick pick. If you change one keybinding for this command, you should change all of the other keybindings (modifier variants) of this command as well.") },
27
+ metadata: { description: localize(1779, "Used while in the context of the quick pick. If you change one keybinding for this command, you should change all of the other keybindings (modifier variants) of this command as well.") },
28
28
  ...rule,
29
29
  secondary: getSecondary(rule.primary, rule.secondary ?? [], options)
30
30
  });
@@ -79,8 +79,8 @@ registerQuickPickCommandAndKeybindingRule({ id: 'quickInput.previous', primary:
79
79
  // In this case, we want that modifier key+up/down to navigate to the next/previous item, not the next/previous separator.
80
80
  // To handle this, we have a separate command for navigating to the next/previous separator when we are not in quick access mode.
81
81
  // If, however, we are in quick access mode, and you hold down an additional modifier key, we will navigate to the next/previous separator.
82
- const nextSeparatorFallbackDesc = localize(1779, "If we're in quick access mode, this will navigate to the next item. If we are not in quick access mode, this will navigate to the next separator.");
83
- const prevSeparatorFallbackDesc = localize(1780, "If we're in quick access mode, this will navigate to the previous item. If we are not in quick access mode, this will navigate to the previous separator.");
82
+ const nextSeparatorFallbackDesc = localize(1780, "If we're in quick access mode, this will navigate to the next item. If we are not in quick access mode, this will navigate to the next separator.");
83
+ const prevSeparatorFallbackDesc = localize(1781, "If we're in quick access mode, this will navigate to the previous item. If we are not in quick access mode, this will navigate to the previous separator.");
84
84
  if (isMacintosh) {
85
85
  registerQuickPickCommandAndKeybindingRule({
86
86
  id: 'quickInput.nextSeparatorWithQuickAccessFallback',
@@ -145,7 +145,7 @@ KeybindingsRegistry.registerCommandAndKeybindingRule({
145
145
  // All other kinds of Quick things handle Accept, except Widget. In other words, Accepting is a detail on the things
146
146
  // that extend IQuickInput
147
147
  ContextKeyExpr.notEquals(quickInputTypeContextKeyValue, "quickWidget" /* QuickInputType.QuickWidget */), inQuickInputContext, ContextKeyExpr.not('isComposing')),
148
- metadata: { description: localize(1781, "Used while in the context of some quick input. If you change one keybinding for this command, you should change all of the other keybindings (modifier variants) of this command as well.") },
148
+ metadata: { description: localize(1782, "Used while in the context of some quick input. If you change one keybinding for this command, you should change all of the other keybindings (modifier variants) of this command as well.") },
149
149
  handler: (accessor) => {
150
150
  const currentQuickPick = accessor.get(IQuickInputService).currentQuickInput;
151
151
  currentQuickPick?.accept();
@@ -4,6 +4,7 @@
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
  import * as dom from '../../../base/browser/dom.js';
6
6
  import { FindInput } from '../../../base/browser/ui/findinput/findInput.js';
7
+ import { createToggleActionViewItemProvider } from '../../../base/browser/ui/toggle/toggle.js';
7
8
  import { Disposable } from '../../../base/common/lifecycle.js';
8
9
  import Severity from '../../../base/common/severity.js';
9
10
  import './media/quickInput.css';
@@ -16,7 +17,12 @@ export class QuickInputBox extends Disposable {
16
17
  return this.findInput.onDidChange(handler);
17
18
  };
18
19
  this.container = dom.append(this.parent, $('.quick-input-box'));
19
- this.findInput = this._register(new FindInput(this.container, undefined, { label: '', inputBoxStyles, toggleStyles }));
20
+ this.findInput = this._register(new FindInput(this.container, undefined, {
21
+ label: '',
22
+ inputBoxStyles,
23
+ toggleStyles,
24
+ actionViewItemProvider: createToggleActionViewItemProvider(toggleStyles)
25
+ }));
20
26
  const input = this.findInput.inputBox.inputElement;
21
27
  input.role = 'textbox';
22
28
  input.ariaHasPopup = 'menu';
@@ -66,6 +72,12 @@ export class QuickInputBox extends Disposable {
66
72
  set toggles(toggles) {
67
73
  this.findInput.setAdditionalToggles(toggles);
68
74
  }
75
+ set actions(actions) {
76
+ this.setActions(actions);
77
+ }
78
+ setActions(actions, actionViewItemProvider) {
79
+ this.findInput.setActions(actions, actionViewItemProvider);
80
+ }
69
81
  get ariaLabel() {
70
82
  return this.findInput.inputBox.inputElement.getAttribute('aria-label') || '';
71
83
  }