monaco-editor-core 0.55.0-dev-20251028 → 0.55.0-dev-20251030

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 (183) 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 +14 -0
  18. package/esm/vs/base/browser/markdownRenderer.js +53 -1
  19. package/esm/vs/base/browser/markdownRenderer.js.map +1 -1
  20. package/esm/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
  21. package/esm/vs/base/common/codiconsLibrary.js +6 -3
  22. package/esm/vs/base/common/codiconsLibrary.js.map +1 -1
  23. package/esm/vs/base/common/glob.js +41 -31
  24. package/esm/vs/base/common/glob.js.map +1 -1
  25. package/esm/vs/base/common/htmlContent.js +5 -1
  26. package/esm/vs/base/common/htmlContent.js.map +1 -1
  27. package/esm/vs/base/common/network.js +2 -6
  28. package/esm/vs/base/common/network.js.map +1 -1
  29. package/esm/vs/base/common/strings.js +8 -6
  30. package/esm/vs/base/common/strings.js.map +1 -1
  31. package/esm/vs/editor/browser/editorExtensions.js +5 -0
  32. package/esm/vs/editor/browser/editorExtensions.js.map +1 -1
  33. package/esm/vs/editor/browser/triggerInlineEditCommandsRegistry.js +17 -0
  34. package/esm/vs/editor/browser/triggerInlineEditCommandsRegistry.js.map +1 -0
  35. package/esm/vs/editor/common/textModelEditSource.js +1 -0
  36. package/esm/vs/editor/common/textModelEditSource.js.map +1 -1
  37. package/esm/vs/editor/contrib/bracketMatching/browser/bracketMatching.js +2 -1
  38. package/esm/vs/editor/contrib/bracketMatching/browser/bracketMatching.js.map +1 -1
  39. package/esm/vs/editor/contrib/colorPicker/browser/hoverColorPicker/hoverColorPickerParticipant.js +4 -0
  40. package/esm/vs/editor/contrib/colorPicker/browser/hoverColorPicker/hoverColorPickerParticipant.js.map +1 -1
  41. package/esm/vs/editor/contrib/colorPicker/browser/standaloneColorPicker/standaloneColorPickerActions.js +7 -7
  42. package/esm/vs/editor/contrib/comment/browser/comment.js +16 -12
  43. package/esm/vs/editor/contrib/comment/browser/comment.js.map +1 -1
  44. package/esm/vs/editor/contrib/contextmenu/browser/contextmenu.js +10 -10
  45. package/esm/vs/editor/contrib/cursorUndo/browser/cursorUndo.js +2 -2
  46. package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js +7 -5
  47. package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js.map +1 -1
  48. package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js +9 -9
  49. package/esm/vs/editor/contrib/dropOrPasteInto/browser/defaultProviders.js +8 -8
  50. package/esm/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController.js +3 -3
  51. package/esm/vs/editor/contrib/dropOrPasteInto/browser/postEditWidget.js +2 -2
  52. package/esm/vs/editor/contrib/editorState/browser/keybindingCancellation.js +1 -1
  53. package/esm/vs/editor/contrib/find/browser/findController.js +16 -16
  54. package/esm/vs/editor/contrib/find/browser/findWidget.js +26 -26
  55. package/esm/vs/editor/contrib/folding/browser/folding.js +20 -20
  56. package/esm/vs/editor/contrib/folding/browser/folding.js.map +1 -1
  57. package/esm/vs/editor/contrib/folding/browser/foldingDecorations.js +9 -9
  58. package/esm/vs/editor/contrib/fontZoom/browser/fontZoom.js +3 -3
  59. package/esm/vs/editor/contrib/format/browser/formatActions.js +2 -2
  60. package/esm/vs/editor/contrib/gotoError/browser/gotoError.js +8 -8
  61. package/esm/vs/editor/contrib/gotoError/browser/gotoErrorWidget.js +14 -14
  62. package/esm/vs/editor/contrib/gotoSymbol/browser/goToCommands.js +39 -39
  63. package/esm/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js +1 -1
  64. package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesController.js +3 -3
  65. package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesTree.js +3 -3
  66. package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget.js +3 -3
  67. package/esm/vs/editor/contrib/gotoSymbol/browser/referencesModel.js +8 -8
  68. package/esm/vs/editor/contrib/gotoSymbol/browser/symbolNavigation.js +3 -3
  69. package/esm/vs/editor/contrib/gpu/browser/gpuActions.js +4 -4
  70. package/esm/vs/editor/contrib/hover/browser/contentHoverRendered.js +17 -6
  71. package/esm/vs/editor/contrib/hover/browser/contentHoverRendered.js.map +1 -1
  72. package/esm/vs/editor/contrib/hover/browser/contentHoverWidgetWrapper.js +6 -3
  73. package/esm/vs/editor/contrib/hover/browser/contentHoverWidgetWrapper.js.map +1 -1
  74. package/esm/vs/editor/contrib/hover/browser/hover.css +36 -0
  75. package/esm/vs/editor/contrib/hover/browser/hoverActionIds.js +2 -2
  76. package/esm/vs/editor/contrib/hover/browser/hoverActions.js +24 -24
  77. package/esm/vs/editor/contrib/hover/browser/hoverCopyButton.js +51 -0
  78. package/esm/vs/editor/contrib/hover/browser/hoverCopyButton.js.map +1 -0
  79. package/esm/vs/editor/contrib/hover/browser/hoverTypes.js.map +1 -1
  80. package/esm/vs/editor/contrib/hover/browser/markdownHoverParticipant.js +25 -9
  81. package/esm/vs/editor/contrib/hover/browser/markdownHoverParticipant.js.map +1 -1
  82. package/esm/vs/editor/contrib/hover/browser/markerHoverParticipant.js +8 -5
  83. package/esm/vs/editor/contrib/hover/browser/markerHoverParticipant.js.map +1 -1
  84. package/esm/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace.js +2 -2
  85. package/esm/vs/editor/contrib/indentation/browser/indentation.js +29 -27
  86. package/esm/vs/editor/contrib/indentation/browser/indentation.js.map +1 -1
  87. package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsHover.js +8 -8
  88. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/commands.js +20 -20
  89. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionContextKeys.js +12 -12
  90. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js +3 -1
  91. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js.map +1 -1
  92. package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/hoverParticipant.js +4 -1
  93. package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/hoverParticipant.js.map +1 -1
  94. package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/inlineCompletionsHintsWidget.js +5 -5
  95. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorMenu.js +6 -6
  96. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js +1 -1
  97. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js.map +1 -1
  98. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsModel.js +1 -1
  99. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/theme.js +20 -20
  100. package/esm/vs/editor/contrib/insertFinalNewLine/browser/insertFinalNewLine.js +1 -1
  101. package/esm/vs/editor/contrib/lineSelection/browser/lineSelection.js +1 -1
  102. package/esm/vs/editor/contrib/linesOperations/browser/linesOperations.js +87 -62
  103. package/esm/vs/editor/contrib/linesOperations/browser/linesOperations.js.map +1 -1
  104. package/esm/vs/editor/contrib/linkedEditing/browser/linkedEditing.js +2 -2
  105. package/esm/vs/editor/contrib/links/browser/links.js +10 -10
  106. package/esm/vs/editor/contrib/message/browser/messageController.js +1 -1
  107. package/esm/vs/editor/contrib/multicursor/browser/multicursor.js +22 -22
  108. package/esm/vs/editor/contrib/parameterHints/browser/parameterHints.js +1 -1
  109. package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +4 -4
  110. package/esm/vs/editor/contrib/peekView/browser/peekView.js +18 -18
  111. package/esm/vs/editor/contrib/placeholderText/browser/placeholderText.contribution.js +1 -1
  112. package/esm/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js +8 -8
  113. package/esm/vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess.js +32 -32
  114. package/esm/vs/editor/contrib/readOnlyMessage/browser/contribution.js +2 -2
  115. package/esm/vs/editor/contrib/rename/browser/rename.js +13 -12
  116. package/esm/vs/editor/contrib/rename/browser/rename.js.map +1 -1
  117. package/esm/vs/editor/contrib/rename/browser/renameWidget.js +7 -7
  118. package/esm/vs/editor/contrib/smartSelect/browser/smartSelect.js +4 -4
  119. package/esm/vs/editor/contrib/snippet/browser/snippetController2.js +4 -4
  120. package/esm/vs/editor/contrib/snippet/browser/snippetVariables.js +4 -4
  121. package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollActions.js +11 -11
  122. package/esm/vs/editor/contrib/suggest/browser/suggest.js +8 -8
  123. package/esm/vs/editor/contrib/suggest/browser/suggestController.js +10 -10
  124. package/esm/vs/editor/contrib/suggest/browser/suggestWidget.js +17 -17
  125. package/esm/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js +2 -2
  126. package/esm/vs/editor/contrib/suggest/browser/suggestWidgetRenderer.js +2 -2
  127. package/esm/vs/editor/contrib/suggest/browser/wordContextKey.js +1 -1
  128. package/esm/vs/editor/contrib/symbolIcons/browser/symbolIcons.js +33 -33
  129. package/esm/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js +4 -4
  130. package/esm/vs/editor/contrib/tokenization/browser/tokenization.js +1 -1
  131. package/esm/vs/editor/contrib/unicodeHighlighter/browser/bannerController.js +1 -1
  132. package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +27 -24
  133. package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js.map +1 -1
  134. package/esm/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js +5 -5
  135. package/esm/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.js +9 -9
  136. package/esm/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js +3 -3
  137. package/esm/vs/editor/contrib/wordOperations/browser/wordOperations.js +9 -9
  138. package/esm/vs/editor/contrib/wordOperations/browser/wordOperations.js.map +1 -1
  139. package/esm/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js +62 -62
  140. package/esm/vs/platform/action/common/actionCommonCategories.js +6 -6
  141. package/esm/vs/platform/actionWidget/browser/actionList.js +4 -4
  142. package/esm/vs/platform/actionWidget/browser/actionWidget.js +7 -7
  143. package/esm/vs/platform/actions/browser/menuEntryActionViewItem.js +5 -5
  144. package/esm/vs/platform/actions/browser/toolbar.js +2 -2
  145. package/esm/vs/platform/actions/common/actions.js +2 -0
  146. package/esm/vs/platform/actions/common/actions.js.map +1 -1
  147. package/esm/vs/platform/actions/common/menuService.js +2 -2
  148. package/esm/vs/platform/configuration/common/configurationRegistry.js +10 -10
  149. package/esm/vs/platform/contextkey/browser/contextKeyService.js +1 -1
  150. package/esm/vs/platform/contextkey/common/contextkey.js +9 -9
  151. package/esm/vs/platform/contextkey/common/contextkeys.js +9 -9
  152. package/esm/vs/platform/contextkey/common/scanner.js +5 -5
  153. package/esm/vs/platform/history/browser/contextScopedHistoryWidget.js +1 -1
  154. package/esm/vs/platform/hover/browser/hoverWidget.js +2 -2
  155. package/esm/vs/platform/hover/browser/hoverWidget.js.map +1 -1
  156. package/esm/vs/platform/hover/browser/updatableHoverWidget.js +1 -1
  157. package/esm/vs/platform/keybinding/common/abstractKeybindingService.js +4 -4
  158. package/esm/vs/platform/list/browser/listService.js +27 -27
  159. package/esm/vs/platform/markers/common/markerService.js +2 -2
  160. package/esm/vs/platform/markers/common/markers.js +6 -6
  161. package/esm/vs/platform/quickinput/browser/commandsQuickAccess.js +7 -7
  162. package/esm/vs/platform/quickinput/browser/helpQuickAccess.js +1 -1
  163. package/esm/vs/platform/quickinput/browser/quickInput.js +10 -10
  164. package/esm/vs/platform/quickinput/browser/quickInputActions.js +5 -5
  165. package/esm/vs/platform/quickinput/browser/quickInputController.js +6 -6
  166. package/esm/vs/platform/quickinput/browser/quickInputList.js +1 -1
  167. package/esm/vs/platform/quickinput/browser/quickInputUtils.js +1 -1
  168. package/esm/vs/platform/quickinput/browser/tree/quickInputTreeAccessibilityProvider.js +1 -1
  169. package/esm/vs/platform/theme/common/colorUtils.js +2 -2
  170. package/esm/vs/platform/theme/common/colors/baseColors.js +17 -17
  171. package/esm/vs/platform/theme/common/colors/chartsColors.js +8 -8
  172. package/esm/vs/platform/theme/common/colors/editorColors.js +95 -95
  173. package/esm/vs/platform/theme/common/colors/inputColors.js +47 -47
  174. package/esm/vs/platform/theme/common/colors/listColors.js +36 -36
  175. package/esm/vs/platform/theme/common/colors/menuColors.js +7 -7
  176. package/esm/vs/platform/theme/common/colors/minimapColors.js +11 -11
  177. package/esm/vs/platform/theme/common/colors/miscColors.js +16 -16
  178. package/esm/vs/platform/theme/common/colors/quickpickColors.js +9 -9
  179. package/esm/vs/platform/theme/common/colors/searchColors.js +3 -3
  180. package/esm/vs/platform/theme/common/iconRegistry.js +6 -6
  181. package/esm/vs/platform/undoRedo/common/undoRedoService.js +20 -20
  182. package/esm/vs/platform/workspace/common/workspace.js +1 -1
  183. package/package.json +2 -2
@@ -96,6 +96,9 @@ let MarkerHoverParticipant = class MarkerHoverParticipant {
96
96
  const disposables = this._renderMarkerStatusbar(context, markerHoverForStatusbar);
97
97
  return new RenderedHoverParts(renderedHoverParts, disposables);
98
98
  }
99
+ getAccessibleContent(hoverPart) {
100
+ return hoverPart.marker.message;
101
+ }
99
102
  _renderMarkerHover(markerHover) {
100
103
  const disposables = new DisposableStore();
101
104
  const hoverElement = $('div.hover-row');
@@ -169,7 +172,7 @@ let MarkerHoverParticipant = class MarkerHoverParticipant {
169
172
  const markerController = MarkerController.get(this._editor);
170
173
  if (markerController) {
171
174
  context.statusBar.addAction({
172
- label: nls.localize(1136, "View Problem"),
175
+ label: nls.localize(1138, "View Problem"),
173
176
  commandId: NextMarkerAction.ID,
174
177
  run: () => {
175
178
  context.hide();
@@ -184,14 +187,14 @@ let MarkerHoverParticipant = class MarkerHoverParticipant {
184
187
  if (this.recentMarkerCodeActionsInfo) {
185
188
  if (IMarkerData.makeKey(this.recentMarkerCodeActionsInfo.marker) === IMarkerData.makeKey(markerHover.marker)) {
186
189
  if (!this.recentMarkerCodeActionsInfo.hasCodeActions) {
187
- quickfixPlaceholderElement.textContent = nls.localize(1137, "No quick fixes available");
190
+ quickfixPlaceholderElement.textContent = nls.localize(1139, "No quick fixes available");
188
191
  }
189
192
  }
190
193
  else {
191
194
  this.recentMarkerCodeActionsInfo = undefined;
192
195
  }
193
196
  }
194
- const updatePlaceholderDisposable = this.recentMarkerCodeActionsInfo && !this.recentMarkerCodeActionsInfo.hasCodeActions ? Disposable.None : disposableTimeout(() => quickfixPlaceholderElement.textContent = nls.localize(1138, "Checking for quick fixes..."), 200, disposables);
197
+ const updatePlaceholderDisposable = this.recentMarkerCodeActionsInfo && !this.recentMarkerCodeActionsInfo.hasCodeActions ? Disposable.None : disposableTimeout(() => quickfixPlaceholderElement.textContent = nls.localize(1140, "Checking for quick fixes..."), 200, disposables);
195
198
  if (!quickfixPlaceholderElement.textContent) {
196
199
  // Have some content in here to avoid flickering
197
200
  quickfixPlaceholderElement.textContent = String.fromCharCode(0xA0); //  
@@ -203,7 +206,7 @@ let MarkerHoverParticipant = class MarkerHoverParticipant {
203
206
  this.recentMarkerCodeActionsInfo = { marker: markerHover.marker, hasCodeActions: actions.validActions.length > 0 };
204
207
  if (!this.recentMarkerCodeActionsInfo.hasCodeActions) {
205
208
  actions.dispose();
206
- quickfixPlaceholderElement.textContent = nls.localize(1139, "No quick fixes available");
209
+ quickfixPlaceholderElement.textContent = nls.localize(1141, "No quick fixes available");
207
210
  return;
208
211
  }
209
212
  quickfixPlaceholderElement.style.display = 'none';
@@ -214,7 +217,7 @@ let MarkerHoverParticipant = class MarkerHoverParticipant {
214
217
  }
215
218
  }));
216
219
  context.statusBar.addAction({
217
- label: nls.localize(1140, "Quick Fix..."),
220
+ label: nls.localize(1142, "Quick Fix..."),
218
221
  commandId: quickFixCommandId,
219
222
  run: (target) => {
220
223
  showing = true;
@@ -1 +1 @@
1
- {"version":3,"sources":["vs/editor/contrib/hover/browser/markerHoverParticipant.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;;;;;;;;;;AAEhG,OAAO,KAAK,GAAG,MAAM,iCAAiC,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAqB,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACjH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAe,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAC9G,OAAO,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAGhE,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAGtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAC;AACxF,OAAO,EAAE,yBAAyB,EAAE,MAAM,+CAA+C,CAAC;AAC1F,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAClH,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AACxF,OAAO,EAAE,cAAc,EAAoC,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC7H,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAC1F,OAAO,EAAyI,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC5L,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAC;AAE1C,OAAO,EAAW,WAAW,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AACtG,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,kDAAkD,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAC;AAE9D,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AAEhB,MAAM,OAAO,WAAW;IAEvB,YACiB,KAA2C,EAC3C,KAAY,EACZ,MAAe;QAFf,UAAK,GAAL,KAAK,CAAsC;QAC3C,UAAK,GAAL,KAAK,CAAO;QACZ,WAAM,GAAN,MAAM,CAAS;IAC5B,CAAC;IAEE,qBAAqB,CAAC,MAAmB;QAC/C,OAAO,CACN,MAAM,CAAC,IAAI,kCAA0B;eAClC,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW;eAClD,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CACjD,CAAC;IACH,CAAC;CACD;AAED,MAAM,uBAAuB,GAAsB;IAClD,IAAI,sCAA8B;IAClC,MAAM,EAAE,EAAE,OAAO,EAAE,cAAc,CAAC,QAAQ,EAAE;IAC5C,aAAa,EAAE,uBAAuB,CAAC,aAAa;CACpD,CAAC;AAEK,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAMlC,YACkB,OAAoB,EACV,yBAAqE,EAChF,cAA+C,EACrC,wBAAmE;QAH5E,YAAO,GAAP,OAAO,CAAa;QACO,8BAAyB,GAAzB,yBAAyB,CAA2B;QAC/D,mBAAc,GAAd,cAAc,CAAgB;QACpB,6BAAwB,GAAxB,wBAAwB,CAA0B;QAR9E,iBAAY,GAAW,CAAC,CAAC;QAEjC,gCAA2B,GAA6D,SAAS,CAAC;IAOtG,CAAC;IAEE,WAAW,CAAC,MAAmB,EAAE,eAAmC;QAC1E,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,MAAM,CAAC,IAAI,kCAA0B,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;YACtG,OAAO,EAAE,CAAC;QACX,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtC,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACvC,OAAO,EAAE,CAAC;QACX,CAAC;QACD,MAAM,UAAU,GAAG,WAAW,CAAC,eAAe,CAAC;QAC/C,MAAM,SAAS,GAAG,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACrD,MAAM,MAAM,GAAkB,EAAE,CAAC;QACjC,KAAK,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC;YACjC,MAAM,WAAW,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;YACvF,MAAM,SAAS,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;YAEzF,MAAM,MAAM,GAAG,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACtE,IAAI,CAAC,MAAM,EAAE,CAAC;gBACb,SAAS;YACV,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;YAC5G,MAAM,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;QACnD,CAAC;QAED,OAAO,MAAM,CAAC;IACf,CAAC;IAEM,gBAAgB,CAAC,OAAkC,EAAE,UAAyB;QACpF,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YACxB,OAAO,IAAI,kBAAkB,CAAC,EAAE,CAAC,CAAC;QACnC,CAAC;QACD,MAAM,kBAAkB,GAAsC,EAAE,CAAC;QACjE,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YAC9B,MAAM,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;YAC/D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;YAC/D,kBAAkB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QACH,MAAM,uBAAuB,GAAG,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrK,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;QAClF,OAAO,IAAI,kBAAkB,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;IAChE,CAAC;IAEO,kBAAkB,CAAC,WAAwB;QAClD,MAAM,WAAW,GAAoB,IAAI,eAAe,EAAE,CAAC;QAC3D,MAAM,YAAY,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC;QACxC,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC;QAC/E,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC;QAEzE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QAC1C,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5D,cAAc,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7C,cAAc,CAAC,SAAS,GAAG,OAAO,CAAC;QAEnC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACpB,gBAAgB;YAChB,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;gBACvC,IAAI,MAAM,EAAE,CAAC;oBACZ,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;oBAClE,aAAa,CAAC,SAAS,GAAG,MAAM,CAAC;gBAClC,CAAC;gBACD,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;gBACpE,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;gBAE1D,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,qBAAqB,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;oBAClE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC/D,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,CAAC,CAAC,eAAe,EAAE,CAAC;gBACrB,CAAC,CAAC,CAAC,CAAC;gBAEJ,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gBACpD,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;gBAEnC,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC;gBACvE,cAAc,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrC,cAAc,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;YAC1C,CAAC;iBAAM,CAAC;gBACP,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC5D,cAAc,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrC,cAAc,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;gBACzC,cAAc,CAAC,SAAS,GAAG,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC;YAClG,CAAC;QACF,CAAC;QAED,IAAI,eAAe,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACzC,KAAK,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,WAAW,EAAE,IAAI,kBAAkB,EAAE,CAAC;gBACtF,MAAM,oBAAoB,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;gBACjE,oBAAoB,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;gBAC7C,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACnD,CAAC,CAAC,SAAS,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,eAAe,KAAK,WAAW,KAAK,CAAC;gBAC5E,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;gBAC3B,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;oBAC3D,CAAC,CAAC,eAAe,EAAE,CAAC;oBACpB,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;wBACzB,MAAM,aAAa,GAAuB,EAAE,SAAS,EAAE,EAAE,eAAe,EAAE,WAAW,EAAE,EAAE,CAAC;wBAC1F,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE;4BAClC,eAAe,EAAE,IAAI;4BACrB,aAAa;yBACb,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;oBAC7B,CAAC;gBACF,CAAC,CAAC,CAAC,CAAC;gBACJ,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,CAAoB,oBAAoB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gBACtF,cAAc,CAAC,SAAS,GAAG,OAAO,CAAC;gBACnC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;YAC5C,CAAC;QACF,CAAC;QAED,MAAM,iBAAiB,GAAoC;YAC1D,SAAS,EAAE,WAAW;YACtB,YAAY;YACZ,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE;SACpC,CAAC;QACF,OAAO,iBAAiB,CAAC;IAC1B,CAAC;IAEO,sBAAsB,CAAC,OAAkC,EAAE,WAAwB;QAC1F,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE,CAAC;QAC1C,IAAI,WAAW,CAAC,MAAM,CAAC,QAAQ,KAAK,cAAc,CAAC,KAAK,IAAI,WAAW,CAAC,MAAM,CAAC,QAAQ,KAAK,cAAc,CAAC,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,QAAQ,KAAK,cAAc,CAAC,IAAI,EAAE,CAAC;YAC3K,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5D,IAAI,gBAAgB,EAAE,CAAC;gBACtB,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC;oBAC3B,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAc,EAAE,cAAc,CAAC;oBACnD,SAAS,EAAE,gBAAgB,CAAC,EAAE;oBAC9B,GAAG,EAAE,GAAG,EAAE;wBACT,OAAO,CAAC,IAAI,EAAE,CAAC;wBACf,gBAAgB,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;wBAClD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;oBACtB,CAAC;iBACD,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,iCAAuB,EAAE,CAAC;YACpD,MAAM,0BAA0B,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACtE,IAAI,IAAI,CAAC,2BAA2B,EAAE,CAAC;gBACtC,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,KAAK,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC9G,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,cAAc,EAAE,CAAC;wBACtD,0BAA0B,CAAC,WAAW,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAc,EAAE,0BAA0B,CAAC,CAAC;oBACnG,CAAC;gBACF,CAAC;qBAAM,CAAC;oBACP,IAAI,CAAC,2BAA2B,GAAG,SAAS,CAAC;gBAC9C,CAAC;YACF,CAAC;YACD,MAAM,2BAA2B,GAAG,IAAI,CAAC,2BAA2B,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,0BAA0B,CAAC,WAAW,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAuB,EAAE,6BAA6B,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;YACtS,IAAI,CAAC,0BAA0B,CAAC,WAAW,EAAE,CAAC;gBAC7C,gDAAgD;gBAChD,0BAA0B,CAAC,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YAC9E,CAAC;YACD,MAAM,kBAAkB,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACnE,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACjE,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;gBACjC,2BAA2B,CAAC,OAAO,EAAE,CAAC;gBACtC,IAAI,CAAC,2BAA2B,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAEnH,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,cAAc,EAAE,CAAC;oBACtD,OAAO,CAAC,OAAO,EAAE,CAAC;oBAClB,0BAA0B,CAAC,WAAW,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAc,EAAE,0BAA0B,CAAC,CAAC;oBAClG,OAAO;gBACR,CAAC;gBACD,0BAA0B,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;gBAElD,IAAI,OAAO,GAAG,KAAK,CAAC;gBACpB,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,EAAE;oBACjC,IAAI,CAAC,OAAO,EAAE,CAAC;wBACd,OAAO,CAAC,OAAO,EAAE,CAAC;oBACnB,CAAC;gBACF,CAAC,CAAC,CAAC,CAAC;gBAEJ,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC;oBAC3B,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAa,EAAE,cAAc,CAAC;oBAClD,SAAS,EAAE,iBAAiB;oBAC5B,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE;wBACf,OAAO,GAAG,IAAI,CAAC;wBACf,MAAM,UAAU,GAAG,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBAC1D,MAAM,eAAe,GAAG,GAAG,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;wBAC3D,gFAAgF;wBAChF,sDAAsD;wBACtD,OAAO,CAAC,IAAI,EAAE,CAAC;wBACf,UAAU,EAAE,eAAe,CAAC,uBAAuB,EAAE,OAAO,EAAE;4BAC7D,CAAC,EAAE,eAAe,CAAC,IAAI;4BACvB,CAAC,EAAE,eAAe,CAAC,GAAG;4BACtB,KAAK,EAAE,eAAe,CAAC,KAAK;4BAC5B,MAAM,EAAE,eAAe,CAAC,MAAM;yBAC9B,CAAC,CAAC;oBACJ,CAAC;iBACD,CAAC,CAAC;gBAEH,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC7E,IAAI,YAAY,EAAE,CAAC;oBAClB,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC;wBAC3B,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK;wBAChC,SAAS,EAAE,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE;wBAChD,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC;wBACjD,GAAG,EAAE,GAAG,EAAE;4BACT,MAAM,UAAU,GAAG,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;4BAC1D,UAAU,EAAE,eAAe,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;wBAClG,CAAC;qBACD,CAAC,CAAC;gBACJ,CAAC;gBAED,uDAAuD;gBACvD,uBAAuB;gBACvB,oDAAoD;gBACpD,OAAO,CAAC,iBAAiB,EAAE,CAAC;YAE7B,CAAC,EAAE,iBAAiB,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,WAAW,CAAC;IACpB,CAAC;IAEO,cAAc,CAAC,MAAe;QACrC,OAAO,uBAAuB,CAAC,iBAAiB,CAAC,EAAE;YAClD,OAAO,cAAc,CACpB,IAAI,CAAC,wBAAwB,CAAC,kBAAkB,EAChD,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAG,EACxB,IAAI,KAAK,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,SAAS,CAAC,EAC7F,uBAAuB,EACvB,QAAQ,CAAC,IAAI,EACb,iBAAiB,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACJ,CAAC;CACD,CAAA;AA7OY,sBAAsB;IAQhC,WAAA,yBAAyB,CAAA;IACzB,WAAA,cAAc,CAAA;IACd,WAAA,wBAAwB,CAAA;GAVd,sBAAsB,CA6OlC","file":"markerHoverParticipant.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 { isNonEmptyArray } from '../../../../base/common/arrays.js';\nimport { CancelablePromise, createCancelablePromise, disposableTimeout } from '../../../../base/common/async.js';\nimport { onUnexpectedError } from '../../../../base/common/errors.js';\nimport { Disposable, DisposableStore, IDisposable, toDisposable } from '../../../../base/common/lifecycle.js';\nimport { basename } from '../../../../base/common/resources.js';\nimport { ICodeEditor } from '../../../browser/editorBrowser.js';\nimport { EditorOption } from '../../../common/config/editorOptions.js';\nimport { Range } from '../../../common/core/range.js';\nimport { CodeActionTriggerType } from '../../../common/languages.js';\nimport { IModelDecoration } from '../../../common/model.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { IMarkerDecorationsService } from '../../../common/services/markerDecorations.js';\nimport { ApplyCodeActionReason, getCodeActions, quickFixCommandId } from '../../codeAction/browser/codeAction.js';\nimport { CodeActionController } from '../../codeAction/browser/codeActionController.js';\nimport { CodeActionKind, CodeActionSet, CodeActionTrigger, CodeActionTriggerSource } from '../../codeAction/common/types.js';\nimport { MarkerController, NextMarkerAction } from '../../gotoError/browser/gotoError.js';\nimport { HoverAnchor, HoverAnchorType, IEditorHoverParticipant, IEditorHoverRenderContext, IHoverPart, IRenderedHoverPart, IRenderedHoverParts, RenderedHoverParts } from './hoverTypes.js';\nimport * as nls from '../../../../nls.js';\nimport { ITextEditorOptions } from '../../../../platform/editor/common/editor.js';\nimport { IMarker, IMarkerData, MarkerSeverity } from '../../../../platform/markers/common/markers.js';\nimport { IOpenerService } from '../../../../platform/opener/common/opener.js';\nimport { Progress } from '../../../../platform/progress/common/progress.js';\nimport { ThemeIcon } from '../../../../base/common/themables.js';\nimport { Codicon } from '../../../../base/common/codicons.js';\n\nconst $ = dom.$;\n\nexport class MarkerHover implements IHoverPart {\n\n\tconstructor(\n\t\tpublic readonly owner: IEditorHoverParticipant<MarkerHover>,\n\t\tpublic readonly range: Range,\n\t\tpublic readonly marker: IMarker,\n\t) { }\n\n\tpublic isValidForHoverAnchor(anchor: HoverAnchor): boolean {\n\t\treturn (\n\t\t\tanchor.type === HoverAnchorType.Range\n\t\t\t&& this.range.startColumn <= anchor.range.startColumn\n\t\t\t&& this.range.endColumn >= anchor.range.endColumn\n\t\t);\n\t}\n}\n\nconst markerCodeActionTrigger: CodeActionTrigger = {\n\ttype: CodeActionTriggerType.Invoke,\n\tfilter: { include: CodeActionKind.QuickFix },\n\ttriggerAction: CodeActionTriggerSource.QuickFixHover\n};\n\nexport class MarkerHoverParticipant implements IEditorHoverParticipant<MarkerHover> {\n\n\tpublic readonly hoverOrdinal: number = 1;\n\n\tprivate recentMarkerCodeActionsInfo: { marker: IMarker; hasCodeActions: boolean } | undefined = undefined;\n\n\tconstructor(\n\t\tprivate readonly _editor: ICodeEditor,\n\t\t@IMarkerDecorationsService private readonly _markerDecorationsService: IMarkerDecorationsService,\n\t\t@IOpenerService private readonly _openerService: IOpenerService,\n\t\t@ILanguageFeaturesService private readonly _languageFeaturesService: ILanguageFeaturesService,\n\t) { }\n\n\tpublic computeSync(anchor: HoverAnchor, lineDecorations: IModelDecoration[]): MarkerHover[] {\n\t\tif (!this._editor.hasModel() || anchor.type !== HoverAnchorType.Range && !anchor.supportsMarkerHover) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst model = this._editor.getModel();\n\t\tconst anchorRange = anchor.range;\n\t\tif (!model.isValidRange(anchor.range)) {\n\t\t\treturn [];\n\t\t}\n\t\tconst lineNumber = anchorRange.startLineNumber;\n\t\tconst maxColumn = model.getLineMaxColumn(lineNumber);\n\t\tconst result: MarkerHover[] = [];\n\t\tfor (const d of lineDecorations) {\n\t\t\tconst startColumn = (d.range.startLineNumber === lineNumber) ? d.range.startColumn : 1;\n\t\t\tconst endColumn = (d.range.endLineNumber === lineNumber) ? d.range.endColumn : maxColumn;\n\n\t\t\tconst marker = this._markerDecorationsService.getMarker(model.uri, d);\n\t\t\tif (!marker) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst range = new Range(anchor.range.startLineNumber, startColumn, anchor.range.startLineNumber, endColumn);\n\t\t\tresult.push(new MarkerHover(this, range, marker));\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tpublic renderHoverParts(context: IEditorHoverRenderContext, hoverParts: MarkerHover[]): IRenderedHoverParts<MarkerHover> {\n\t\tif (!hoverParts.length) {\n\t\t\treturn new RenderedHoverParts([]);\n\t\t}\n\t\tconst renderedHoverParts: IRenderedHoverPart<MarkerHover>[] = [];\n\t\thoverParts.forEach(hoverPart => {\n\t\t\tconst renderedMarkerHover = this._renderMarkerHover(hoverPart);\n\t\t\tcontext.fragment.appendChild(renderedMarkerHover.hoverElement);\n\t\t\trenderedHoverParts.push(renderedMarkerHover);\n\t\t});\n\t\tconst markerHoverForStatusbar = hoverParts.length === 1 ? hoverParts[0] : hoverParts.sort((a, b) => MarkerSeverity.compare(a.marker.severity, b.marker.severity))[0];\n\t\tconst disposables = this._renderMarkerStatusbar(context, markerHoverForStatusbar);\n\t\treturn new RenderedHoverParts(renderedHoverParts, disposables);\n\t}\n\n\tprivate _renderMarkerHover(markerHover: MarkerHover): IRenderedHoverPart<MarkerHover> {\n\t\tconst disposables: DisposableStore = new DisposableStore();\n\t\tconst hoverElement = $('div.hover-row');\n\t\tconst markerElement = dom.append(hoverElement, $('div.marker.hover-contents'));\n\t\tconst { source, message, code, relatedInformation } = markerHover.marker;\n\n\t\tthis._editor.applyFontInfo(markerElement);\n\t\tconst messageElement = dom.append(markerElement, $('span'));\n\t\tmessageElement.style.whiteSpace = 'pre-wrap';\n\t\tmessageElement.innerText = message;\n\n\t\tif (source || code) {\n\t\t\t// Code has link\n\t\t\tif (code && typeof code !== 'string') {\n\t\t\t\tconst sourceAndCodeElement = $('span');\n\t\t\t\tif (source) {\n\t\t\t\t\tconst sourceElement = dom.append(sourceAndCodeElement, $('span'));\n\t\t\t\t\tsourceElement.innerText = source;\n\t\t\t\t}\n\t\t\t\tconst codeLink = dom.append(sourceAndCodeElement, $('a.code-link'));\n\t\t\t\tcodeLink.setAttribute('href', code.target.toString(true));\n\n\t\t\t\tdisposables.add(dom.addDisposableListener(codeLink, 'click', (e) => {\n\t\t\t\t\tthis._openerService.open(code.target, { allowCommands: true });\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t}));\n\n\t\t\t\tconst codeElement = dom.append(codeLink, $('span'));\n\t\t\t\tcodeElement.innerText = code.value;\n\n\t\t\t\tconst detailsElement = dom.append(markerElement, sourceAndCodeElement);\n\t\t\t\tdetailsElement.style.opacity = '0.6';\n\t\t\t\tdetailsElement.style.paddingLeft = '6px';\n\t\t\t} else {\n\t\t\t\tconst detailsElement = dom.append(markerElement, $('span'));\n\t\t\t\tdetailsElement.style.opacity = '0.6';\n\t\t\t\tdetailsElement.style.paddingLeft = '6px';\n\t\t\t\tdetailsElement.innerText = source && code ? `${source}(${code})` : source ? source : `(${code})`;\n\t\t\t}\n\t\t}\n\n\t\tif (isNonEmptyArray(relatedInformation)) {\n\t\t\tfor (const { message, resource, startLineNumber, startColumn } of relatedInformation) {\n\t\t\t\tconst relatedInfoContainer = dom.append(markerElement, $('div'));\n\t\t\t\trelatedInfoContainer.style.marginTop = '8px';\n\t\t\t\tconst a = dom.append(relatedInfoContainer, $('a'));\n\t\t\t\ta.innerText = `${basename(resource)}(${startLineNumber}, ${startColumn}): `;\n\t\t\t\ta.style.cursor = 'pointer';\n\t\t\t\tdisposables.add(dom.addDisposableListener(a, 'click', (e) => {\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tif (this._openerService) {\n\t\t\t\t\t\tconst editorOptions: ITextEditorOptions = { selection: { startLineNumber, startColumn } };\n\t\t\t\t\t\tthis._openerService.open(resource, {\n\t\t\t\t\t\t\tfromUserGesture: true,\n\t\t\t\t\t\t\teditorOptions\n\t\t\t\t\t\t}).catch(onUnexpectedError);\n\t\t\t\t\t}\n\t\t\t\t}));\n\t\t\t\tconst messageElement = dom.append<HTMLAnchorElement>(relatedInfoContainer, $('span'));\n\t\t\t\tmessageElement.innerText = message;\n\t\t\t\tthis._editor.applyFontInfo(messageElement);\n\t\t\t}\n\t\t}\n\n\t\tconst renderedHoverPart: IRenderedHoverPart<MarkerHover> = {\n\t\t\thoverPart: markerHover,\n\t\t\thoverElement,\n\t\t\tdispose: () => disposables.dispose()\n\t\t};\n\t\treturn renderedHoverPart;\n\t}\n\n\tprivate _renderMarkerStatusbar(context: IEditorHoverRenderContext, markerHover: MarkerHover): IDisposable {\n\t\tconst disposables = new DisposableStore();\n\t\tif (markerHover.marker.severity === MarkerSeverity.Error || markerHover.marker.severity === MarkerSeverity.Warning || markerHover.marker.severity === MarkerSeverity.Info) {\n\t\t\tconst markerController = MarkerController.get(this._editor);\n\t\t\tif (markerController) {\n\t\t\t\tcontext.statusBar.addAction({\n\t\t\t\t\tlabel: nls.localize('view problem', \"View Problem\"),\n\t\t\t\t\tcommandId: NextMarkerAction.ID,\n\t\t\t\t\trun: () => {\n\t\t\t\t\t\tcontext.hide();\n\t\t\t\t\t\tmarkerController.showAtMarker(markerHover.marker);\n\t\t\t\t\t\tthis._editor.focus();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tif (!this._editor.getOption(EditorOption.readOnly)) {\n\t\t\tconst quickfixPlaceholderElement = context.statusBar.append($('div'));\n\t\t\tif (this.recentMarkerCodeActionsInfo) {\n\t\t\t\tif (IMarkerData.makeKey(this.recentMarkerCodeActionsInfo.marker) === IMarkerData.makeKey(markerHover.marker)) {\n\t\t\t\t\tif (!this.recentMarkerCodeActionsInfo.hasCodeActions) {\n\t\t\t\t\t\tquickfixPlaceholderElement.textContent = nls.localize('noQuickFixes', \"No quick fixes available\");\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.recentMarkerCodeActionsInfo = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst updatePlaceholderDisposable = this.recentMarkerCodeActionsInfo && !this.recentMarkerCodeActionsInfo.hasCodeActions ? Disposable.None : disposableTimeout(() => quickfixPlaceholderElement.textContent = nls.localize('checkingForQuickFixes', \"Checking for quick fixes...\"), 200, disposables);\n\t\t\tif (!quickfixPlaceholderElement.textContent) {\n\t\t\t\t// Have some content in here to avoid flickering\n\t\t\t\tquickfixPlaceholderElement.textContent = String.fromCharCode(0xA0); // &nbsp;\n\t\t\t}\n\t\t\tconst codeActionsPromise = this.getCodeActions(markerHover.marker);\n\t\t\tdisposables.add(toDisposable(() => codeActionsPromise.cancel()));\n\t\t\tcodeActionsPromise.then(actions => {\n\t\t\t\tupdatePlaceholderDisposable.dispose();\n\t\t\t\tthis.recentMarkerCodeActionsInfo = { marker: markerHover.marker, hasCodeActions: actions.validActions.length > 0 };\n\n\t\t\t\tif (!this.recentMarkerCodeActionsInfo.hasCodeActions) {\n\t\t\t\t\tactions.dispose();\n\t\t\t\t\tquickfixPlaceholderElement.textContent = nls.localize('noQuickFixes', \"No quick fixes available\");\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tquickfixPlaceholderElement.style.display = 'none';\n\n\t\t\t\tlet showing = false;\n\t\t\t\tdisposables.add(toDisposable(() => {\n\t\t\t\t\tif (!showing) {\n\t\t\t\t\t\tactions.dispose();\n\t\t\t\t\t}\n\t\t\t\t}));\n\n\t\t\t\tcontext.statusBar.addAction({\n\t\t\t\t\tlabel: nls.localize('quick fixes', \"Quick Fix...\"),\n\t\t\t\t\tcommandId: quickFixCommandId,\n\t\t\t\t\trun: (target) => {\n\t\t\t\t\t\tshowing = true;\n\t\t\t\t\t\tconst controller = CodeActionController.get(this._editor);\n\t\t\t\t\t\tconst elementPosition = dom.getDomNodePagePosition(target);\n\t\t\t\t\t\t// Hide the hover pre-emptively, otherwise the editor can close the code actions\n\t\t\t\t\t\t// context menu as well when using keyboard navigation\n\t\t\t\t\t\tcontext.hide();\n\t\t\t\t\t\tcontroller?.showCodeActions(markerCodeActionTrigger, actions, {\n\t\t\t\t\t\t\tx: elementPosition.left,\n\t\t\t\t\t\t\ty: elementPosition.top,\n\t\t\t\t\t\t\twidth: elementPosition.width,\n\t\t\t\t\t\t\theight: elementPosition.height\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tconst aiCodeAction = actions.validActions.find(action => action.action.isAI);\n\t\t\t\tif (aiCodeAction) {\n\t\t\t\t\tcontext.statusBar.addAction({\n\t\t\t\t\t\tlabel: aiCodeAction.action.title,\n\t\t\t\t\t\tcommandId: aiCodeAction.action.command?.id ?? '',\n\t\t\t\t\t\ticonClass: ThemeIcon.asClassName(Codicon.sparkle),\n\t\t\t\t\t\trun: () => {\n\t\t\t\t\t\t\tconst controller = CodeActionController.get(this._editor);\n\t\t\t\t\t\t\tcontroller?.applyCodeAction(aiCodeAction, false, false, ApplyCodeActionReason.FromProblemsHover);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t// Notify that the contents have changed given we added\n\t\t\t\t// actions to the hover\n\t\t\t\t// https://github.com/microsoft/vscode/issues/250424\n\t\t\t\tcontext.onContentsChanged();\n\n\t\t\t}, onUnexpectedError);\n\t\t}\n\t\treturn disposables;\n\t}\n\n\tprivate getCodeActions(marker: IMarker): CancelablePromise<CodeActionSet> {\n\t\treturn createCancelablePromise(cancellationToken => {\n\t\t\treturn getCodeActions(\n\t\t\t\tthis._languageFeaturesService.codeActionProvider,\n\t\t\t\tthis._editor.getModel()!,\n\t\t\t\tnew Range(marker.startLineNumber, marker.startColumn, marker.endLineNumber, marker.endColumn),\n\t\t\t\tmarkerCodeActionTrigger,\n\t\t\t\tProgress.None,\n\t\t\t\tcancellationToken);\n\t\t});\n\t}\n}\n"]}
1
+ {"version":3,"sources":["vs/editor/contrib/hover/browser/markerHoverParticipant.ts"],"names":[],"mappings":"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","file":"markerHoverParticipant.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 { isNonEmptyArray } from '../../../../base/common/arrays.js';\nimport { CancelablePromise, createCancelablePromise, disposableTimeout } from '../../../../base/common/async.js';\nimport { onUnexpectedError } from '../../../../base/common/errors.js';\nimport { Disposable, DisposableStore, IDisposable, toDisposable } from '../../../../base/common/lifecycle.js';\nimport { basename } from '../../../../base/common/resources.js';\nimport { ICodeEditor } from '../../../browser/editorBrowser.js';\nimport { EditorOption } from '../../../common/config/editorOptions.js';\nimport { Range } from '../../../common/core/range.js';\nimport { CodeActionTriggerType } from '../../../common/languages.js';\nimport { IModelDecoration } from '../../../common/model.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { IMarkerDecorationsService } from '../../../common/services/markerDecorations.js';\nimport { ApplyCodeActionReason, getCodeActions, quickFixCommandId } from '../../codeAction/browser/codeAction.js';\nimport { CodeActionController } from '../../codeAction/browser/codeActionController.js';\nimport { CodeActionKind, CodeActionSet, CodeActionTrigger, CodeActionTriggerSource } from '../../codeAction/common/types.js';\nimport { MarkerController, NextMarkerAction } from '../../gotoError/browser/gotoError.js';\nimport { HoverAnchor, HoverAnchorType, IEditorHoverParticipant, IEditorHoverRenderContext, IHoverPart, IRenderedHoverPart, IRenderedHoverParts, RenderedHoverParts } from './hoverTypes.js';\nimport * as nls from '../../../../nls.js';\nimport { ITextEditorOptions } from '../../../../platform/editor/common/editor.js';\nimport { IMarker, IMarkerData, MarkerSeverity } from '../../../../platform/markers/common/markers.js';\nimport { IOpenerService } from '../../../../platform/opener/common/opener.js';\nimport { Progress } from '../../../../platform/progress/common/progress.js';\nimport { ThemeIcon } from '../../../../base/common/themables.js';\nimport { Codicon } from '../../../../base/common/codicons.js';\n\nconst $ = dom.$;\n\nexport class MarkerHover implements IHoverPart {\n\n\tconstructor(\n\t\tpublic readonly owner: IEditorHoverParticipant<MarkerHover>,\n\t\tpublic readonly range: Range,\n\t\tpublic readonly marker: IMarker,\n\t) { }\n\n\tpublic isValidForHoverAnchor(anchor: HoverAnchor): boolean {\n\t\treturn (\n\t\t\tanchor.type === HoverAnchorType.Range\n\t\t\t&& this.range.startColumn <= anchor.range.startColumn\n\t\t\t&& this.range.endColumn >= anchor.range.endColumn\n\t\t);\n\t}\n}\n\nconst markerCodeActionTrigger: CodeActionTrigger = {\n\ttype: CodeActionTriggerType.Invoke,\n\tfilter: { include: CodeActionKind.QuickFix },\n\ttriggerAction: CodeActionTriggerSource.QuickFixHover\n};\n\nexport class MarkerHoverParticipant implements IEditorHoverParticipant<MarkerHover> {\n\n\tpublic readonly hoverOrdinal: number = 1;\n\n\tprivate recentMarkerCodeActionsInfo: { marker: IMarker; hasCodeActions: boolean } | undefined = undefined;\n\n\tconstructor(\n\t\tprivate readonly _editor: ICodeEditor,\n\t\t@IMarkerDecorationsService private readonly _markerDecorationsService: IMarkerDecorationsService,\n\t\t@IOpenerService private readonly _openerService: IOpenerService,\n\t\t@ILanguageFeaturesService private readonly _languageFeaturesService: ILanguageFeaturesService,\n\t) { }\n\n\tpublic computeSync(anchor: HoverAnchor, lineDecorations: IModelDecoration[]): MarkerHover[] {\n\t\tif (!this._editor.hasModel() || anchor.type !== HoverAnchorType.Range && !anchor.supportsMarkerHover) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst model = this._editor.getModel();\n\t\tconst anchorRange = anchor.range;\n\t\tif (!model.isValidRange(anchor.range)) {\n\t\t\treturn [];\n\t\t}\n\t\tconst lineNumber = anchorRange.startLineNumber;\n\t\tconst maxColumn = model.getLineMaxColumn(lineNumber);\n\t\tconst result: MarkerHover[] = [];\n\t\tfor (const d of lineDecorations) {\n\t\t\tconst startColumn = (d.range.startLineNumber === lineNumber) ? d.range.startColumn : 1;\n\t\t\tconst endColumn = (d.range.endLineNumber === lineNumber) ? d.range.endColumn : maxColumn;\n\n\t\t\tconst marker = this._markerDecorationsService.getMarker(model.uri, d);\n\t\t\tif (!marker) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst range = new Range(anchor.range.startLineNumber, startColumn, anchor.range.startLineNumber, endColumn);\n\t\t\tresult.push(new MarkerHover(this, range, marker));\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tpublic renderHoverParts(context: IEditorHoverRenderContext, hoverParts: MarkerHover[]): IRenderedHoverParts<MarkerHover> {\n\t\tif (!hoverParts.length) {\n\t\t\treturn new RenderedHoverParts([]);\n\t\t}\n\t\tconst renderedHoverParts: IRenderedHoverPart<MarkerHover>[] = [];\n\t\thoverParts.forEach(hoverPart => {\n\t\t\tconst renderedMarkerHover = this._renderMarkerHover(hoverPart);\n\t\t\tcontext.fragment.appendChild(renderedMarkerHover.hoverElement);\n\t\t\trenderedHoverParts.push(renderedMarkerHover);\n\t\t});\n\t\tconst markerHoverForStatusbar = hoverParts.length === 1 ? hoverParts[0] : hoverParts.sort((a, b) => MarkerSeverity.compare(a.marker.severity, b.marker.severity))[0];\n\t\tconst disposables = this._renderMarkerStatusbar(context, markerHoverForStatusbar);\n\t\treturn new RenderedHoverParts(renderedHoverParts, disposables);\n\t}\n\n\tpublic getAccessibleContent(hoverPart: MarkerHover): string {\n\t\treturn hoverPart.marker.message;\n\t}\n\n\tprivate _renderMarkerHover(markerHover: MarkerHover): IRenderedHoverPart<MarkerHover> {\n\t\tconst disposables: DisposableStore = new DisposableStore();\n\t\tconst hoverElement = $('div.hover-row');\n\t\tconst markerElement = dom.append(hoverElement, $('div.marker.hover-contents'));\n\t\tconst { source, message, code, relatedInformation } = markerHover.marker;\n\n\t\tthis._editor.applyFontInfo(markerElement);\n\t\tconst messageElement = dom.append(markerElement, $('span'));\n\t\tmessageElement.style.whiteSpace = 'pre-wrap';\n\t\tmessageElement.innerText = message;\n\n\t\tif (source || code) {\n\t\t\t// Code has link\n\t\t\tif (code && typeof code !== 'string') {\n\t\t\t\tconst sourceAndCodeElement = $('span');\n\t\t\t\tif (source) {\n\t\t\t\t\tconst sourceElement = dom.append(sourceAndCodeElement, $('span'));\n\t\t\t\t\tsourceElement.innerText = source;\n\t\t\t\t}\n\t\t\t\tconst codeLink = dom.append(sourceAndCodeElement, $('a.code-link'));\n\t\t\t\tcodeLink.setAttribute('href', code.target.toString(true));\n\n\t\t\t\tdisposables.add(dom.addDisposableListener(codeLink, 'click', (e) => {\n\t\t\t\t\tthis._openerService.open(code.target, { allowCommands: true });\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t}));\n\n\t\t\t\tconst codeElement = dom.append(codeLink, $('span'));\n\t\t\t\tcodeElement.innerText = code.value;\n\n\t\t\t\tconst detailsElement = dom.append(markerElement, sourceAndCodeElement);\n\t\t\t\tdetailsElement.style.opacity = '0.6';\n\t\t\t\tdetailsElement.style.paddingLeft = '6px';\n\t\t\t} else {\n\t\t\t\tconst detailsElement = dom.append(markerElement, $('span'));\n\t\t\t\tdetailsElement.style.opacity = '0.6';\n\t\t\t\tdetailsElement.style.paddingLeft = '6px';\n\t\t\t\tdetailsElement.innerText = source && code ? `${source}(${code})` : source ? source : `(${code})`;\n\t\t\t}\n\t\t}\n\n\t\tif (isNonEmptyArray(relatedInformation)) {\n\t\t\tfor (const { message, resource, startLineNumber, startColumn } of relatedInformation) {\n\t\t\t\tconst relatedInfoContainer = dom.append(markerElement, $('div'));\n\t\t\t\trelatedInfoContainer.style.marginTop = '8px';\n\t\t\t\tconst a = dom.append(relatedInfoContainer, $('a'));\n\t\t\t\ta.innerText = `${basename(resource)}(${startLineNumber}, ${startColumn}): `;\n\t\t\t\ta.style.cursor = 'pointer';\n\t\t\t\tdisposables.add(dom.addDisposableListener(a, 'click', (e) => {\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tif (this._openerService) {\n\t\t\t\t\t\tconst editorOptions: ITextEditorOptions = { selection: { startLineNumber, startColumn } };\n\t\t\t\t\t\tthis._openerService.open(resource, {\n\t\t\t\t\t\t\tfromUserGesture: true,\n\t\t\t\t\t\t\teditorOptions\n\t\t\t\t\t\t}).catch(onUnexpectedError);\n\t\t\t\t\t}\n\t\t\t\t}));\n\t\t\t\tconst messageElement = dom.append<HTMLAnchorElement>(relatedInfoContainer, $('span'));\n\t\t\t\tmessageElement.innerText = message;\n\t\t\t\tthis._editor.applyFontInfo(messageElement);\n\t\t\t}\n\t\t}\n\n\t\tconst renderedHoverPart: IRenderedHoverPart<MarkerHover> = {\n\t\t\thoverPart: markerHover,\n\t\t\thoverElement,\n\t\t\tdispose: () => disposables.dispose()\n\t\t};\n\t\treturn renderedHoverPart;\n\t}\n\n\tprivate _renderMarkerStatusbar(context: IEditorHoverRenderContext, markerHover: MarkerHover): IDisposable {\n\t\tconst disposables = new DisposableStore();\n\t\tif (markerHover.marker.severity === MarkerSeverity.Error || markerHover.marker.severity === MarkerSeverity.Warning || markerHover.marker.severity === MarkerSeverity.Info) {\n\t\t\tconst markerController = MarkerController.get(this._editor);\n\t\t\tif (markerController) {\n\t\t\t\tcontext.statusBar.addAction({\n\t\t\t\t\tlabel: nls.localize('view problem', \"View Problem\"),\n\t\t\t\t\tcommandId: NextMarkerAction.ID,\n\t\t\t\t\trun: () => {\n\t\t\t\t\t\tcontext.hide();\n\t\t\t\t\t\tmarkerController.showAtMarker(markerHover.marker);\n\t\t\t\t\t\tthis._editor.focus();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tif (!this._editor.getOption(EditorOption.readOnly)) {\n\t\t\tconst quickfixPlaceholderElement = context.statusBar.append($('div'));\n\t\t\tif (this.recentMarkerCodeActionsInfo) {\n\t\t\t\tif (IMarkerData.makeKey(this.recentMarkerCodeActionsInfo.marker) === IMarkerData.makeKey(markerHover.marker)) {\n\t\t\t\t\tif (!this.recentMarkerCodeActionsInfo.hasCodeActions) {\n\t\t\t\t\t\tquickfixPlaceholderElement.textContent = nls.localize('noQuickFixes', \"No quick fixes available\");\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.recentMarkerCodeActionsInfo = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst updatePlaceholderDisposable = this.recentMarkerCodeActionsInfo && !this.recentMarkerCodeActionsInfo.hasCodeActions ? Disposable.None : disposableTimeout(() => quickfixPlaceholderElement.textContent = nls.localize('checkingForQuickFixes', \"Checking for quick fixes...\"), 200, disposables);\n\t\t\tif (!quickfixPlaceholderElement.textContent) {\n\t\t\t\t// Have some content in here to avoid flickering\n\t\t\t\tquickfixPlaceholderElement.textContent = String.fromCharCode(0xA0); // &nbsp;\n\t\t\t}\n\t\t\tconst codeActionsPromise = this.getCodeActions(markerHover.marker);\n\t\t\tdisposables.add(toDisposable(() => codeActionsPromise.cancel()));\n\t\t\tcodeActionsPromise.then(actions => {\n\t\t\t\tupdatePlaceholderDisposable.dispose();\n\t\t\t\tthis.recentMarkerCodeActionsInfo = { marker: markerHover.marker, hasCodeActions: actions.validActions.length > 0 };\n\n\t\t\t\tif (!this.recentMarkerCodeActionsInfo.hasCodeActions) {\n\t\t\t\t\tactions.dispose();\n\t\t\t\t\tquickfixPlaceholderElement.textContent = nls.localize('noQuickFixes', \"No quick fixes available\");\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tquickfixPlaceholderElement.style.display = 'none';\n\n\t\t\t\tlet showing = false;\n\t\t\t\tdisposables.add(toDisposable(() => {\n\t\t\t\t\tif (!showing) {\n\t\t\t\t\t\tactions.dispose();\n\t\t\t\t\t}\n\t\t\t\t}));\n\n\t\t\t\tcontext.statusBar.addAction({\n\t\t\t\t\tlabel: nls.localize('quick fixes', \"Quick Fix...\"),\n\t\t\t\t\tcommandId: quickFixCommandId,\n\t\t\t\t\trun: (target) => {\n\t\t\t\t\t\tshowing = true;\n\t\t\t\t\t\tconst controller = CodeActionController.get(this._editor);\n\t\t\t\t\t\tconst elementPosition = dom.getDomNodePagePosition(target);\n\t\t\t\t\t\t// Hide the hover pre-emptively, otherwise the editor can close the code actions\n\t\t\t\t\t\t// context menu as well when using keyboard navigation\n\t\t\t\t\t\tcontext.hide();\n\t\t\t\t\t\tcontroller?.showCodeActions(markerCodeActionTrigger, actions, {\n\t\t\t\t\t\t\tx: elementPosition.left,\n\t\t\t\t\t\t\ty: elementPosition.top,\n\t\t\t\t\t\t\twidth: elementPosition.width,\n\t\t\t\t\t\t\theight: elementPosition.height\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tconst aiCodeAction = actions.validActions.find(action => action.action.isAI);\n\t\t\t\tif (aiCodeAction) {\n\t\t\t\t\tcontext.statusBar.addAction({\n\t\t\t\t\t\tlabel: aiCodeAction.action.title,\n\t\t\t\t\t\tcommandId: aiCodeAction.action.command?.id ?? '',\n\t\t\t\t\t\ticonClass: ThemeIcon.asClassName(Codicon.sparkle),\n\t\t\t\t\t\trun: () => {\n\t\t\t\t\t\t\tconst controller = CodeActionController.get(this._editor);\n\t\t\t\t\t\t\tcontroller?.applyCodeAction(aiCodeAction, false, false, ApplyCodeActionReason.FromProblemsHover);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t// Notify that the contents have changed given we added\n\t\t\t\t// actions to the hover\n\t\t\t\t// https://github.com/microsoft/vscode/issues/250424\n\t\t\t\tcontext.onContentsChanged();\n\n\t\t\t}, onUnexpectedError);\n\t\t}\n\t\treturn disposables;\n\t}\n\n\tprivate getCodeActions(marker: IMarker): CancelablePromise<CodeActionSet> {\n\t\treturn createCancelablePromise(cancellationToken => {\n\t\t\treturn getCodeActions(\n\t\t\t\tthis._languageFeaturesService.codeActionProvider,\n\t\t\t\tthis._editor.getModel()!,\n\t\t\t\tnew Range(marker.startLineNumber, marker.startColumn, marker.endLineNumber, marker.endColumn),\n\t\t\t\tmarkerCodeActionTrigger,\n\t\t\t\tProgress.None,\n\t\t\t\tcancellationToken);\n\t\t});\n\t}\n}\n"]}
@@ -107,7 +107,7 @@ class InPlaceReplaceUp extends EditorAction {
107
107
  constructor() {
108
108
  super({
109
109
  id: 'editor.action.inPlaceReplace.up',
110
- label: nls.localize2(1236, "Replace with Previous Value"),
110
+ label: nls.localize2(1239, "Replace with Previous Value"),
111
111
  precondition: EditorContextKeys.writable,
112
112
  kbOpts: {
113
113
  kbExpr: EditorContextKeys.editorTextFocus,
@@ -128,7 +128,7 @@ class InPlaceReplaceDown extends EditorAction {
128
128
  constructor() {
129
129
  super({
130
130
  id: 'editor.action.inPlaceReplace.down',
131
- label: nls.localize2(1237, "Replace with Next Value"),
131
+ label: nls.localize2(1240, "Replace with Next Value"),
132
132
  precondition: EditorContextKeys.writable,
133
133
  kbOpts: {
134
134
  kbExpr: EditorContextKeys.editorTextFocus,
@@ -13,27 +13,27 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
13
13
  };
14
14
  import { DisposableStore } from '../../../../base/common/lifecycle.js';
15
15
  import * as strings from '../../../../base/common/strings.js';
16
+ import * as nls from '../../../../nls.js';
17
+ import { IQuickInputService } from '../../../../platform/quickinput/common/quickInput.js';
16
18
  import { EditorAction, registerEditorAction, registerEditorContribution } from '../../../browser/editorExtensions.js';
17
19
  import { ShiftCommand } from '../../../common/commands/shiftCommand.js';
18
20
  import { Range } from '../../../common/core/range.js';
19
21
  import { EditorContextKeys } from '../../../common/editorContextKeys.js';
22
+ import { getGoodIndentForLine, getIndentMetadata } from '../../../common/languages/autoIndent.js';
20
23
  import { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';
21
24
  import { IModelService } from '../../../common/services/model.js';
22
- import * as indentUtils from '../common/indentUtils.js';
23
- import * as nls from '../../../../nls.js';
24
- import { IQuickInputService } from '../../../../platform/quickinput/common/quickInput.js';
25
- import { getGoodIndentForLine, getIndentMetadata } from '../../../common/languages/autoIndent.js';
26
- import { getReindentEditOperations } from '../common/indentation.js';
27
25
  import { getStandardTokenTypeAtPosition } from '../../../common/tokens/lineTokens.js';
26
+ import { getReindentEditOperations } from '../common/indentation.js';
27
+ import * as indentUtils from '../common/indentUtils.js';
28
28
  export class IndentationToSpacesAction extends EditorAction {
29
29
  static { this.ID = 'editor.action.indentationToSpaces'; }
30
30
  constructor() {
31
31
  super({
32
32
  id: IndentationToSpacesAction.ID,
33
- label: nls.localize2(1145, "Convert Indentation to Spaces"),
33
+ label: nls.localize2(1147, "Convert Indentation to Spaces"),
34
34
  precondition: EditorContextKeys.writable,
35
35
  metadata: {
36
- description: nls.localize2(1146, "Convert the tab indentation to spaces."),
36
+ description: nls.localize2(1148, "Convert the tab indentation to spaces."),
37
37
  }
38
38
  });
39
39
  }
@@ -61,10 +61,10 @@ export class IndentationToTabsAction extends EditorAction {
61
61
  constructor() {
62
62
  super({
63
63
  id: IndentationToTabsAction.ID,
64
- label: nls.localize2(1147, "Convert Indentation to Tabs"),
64
+ label: nls.localize2(1149, "Convert Indentation to Tabs"),
65
65
  precondition: EditorContextKeys.writable,
66
66
  metadata: {
67
- description: nls.localize2(1148, "Convert the spaces indentation to tabs."),
67
+ description: nls.localize2(1150, "Convert the spaces indentation to tabs."),
68
68
  }
69
69
  });
70
70
  }
@@ -107,17 +107,17 @@ export class ChangeIndentationSizeAction extends EditorAction {
107
107
  label: n.toString(),
108
108
  // add description for tabSize value set in the configuration
109
109
  description: (n === creationOpts.tabSize && n === modelOpts.tabSize
110
- ? nls.localize(1141, "Configured Tab Size")
110
+ ? nls.localize(1143, "Configured Tab Size")
111
111
  : n === creationOpts.tabSize
112
- ? nls.localize(1142, "Default Tab Size")
112
+ ? nls.localize(1144, "Default Tab Size")
113
113
  : n === modelOpts.tabSize
114
- ? nls.localize(1143, "Current Tab Size")
114
+ ? nls.localize(1145, "Current Tab Size")
115
115
  : undefined)
116
116
  }));
117
117
  // auto focus the tabSize set for the current editor
118
118
  const autoFocusIndex = Math.min(model.getOptions().tabSize - 1, 7);
119
119
  setTimeout(() => {
120
- quickInputService.pick(picks, { placeHolder: nls.localize(1144, "Select Tab Size for Current File"), activeItem: picks[autoFocusIndex] }).then(pick => {
120
+ quickInputService.pick(picks, { placeHolder: nls.localize(1146, "Select Tab Size for Current File"), activeItem: picks[autoFocusIndex] }).then(pick => {
121
121
  if (pick) {
122
122
  if (model && !model.isDisposed()) {
123
123
  const pickedVal = parseInt(pick.label, 10);
@@ -144,10 +144,10 @@ export class IndentUsingTabs extends ChangeIndentationSizeAction {
144
144
  constructor() {
145
145
  super(false, false, {
146
146
  id: IndentUsingTabs.ID,
147
- label: nls.localize2(1149, "Indent Using Tabs"),
147
+ label: nls.localize2(1151, "Indent Using Tabs"),
148
148
  precondition: undefined,
149
149
  metadata: {
150
- description: nls.localize2(1150, "Use indentation with tabs."),
150
+ description: nls.localize2(1152, "Use indentation with tabs."),
151
151
  }
152
152
  });
153
153
  }
@@ -157,10 +157,10 @@ export class IndentUsingSpaces extends ChangeIndentationSizeAction {
157
157
  constructor() {
158
158
  super(true, false, {
159
159
  id: IndentUsingSpaces.ID,
160
- label: nls.localize2(1151, "Indent Using Spaces"),
160
+ label: nls.localize2(1153, "Indent Using Spaces"),
161
161
  precondition: undefined,
162
162
  metadata: {
163
- description: nls.localize2(1152, "Use indentation with spaces."),
163
+ description: nls.localize2(1154, "Use indentation with spaces."),
164
164
  }
165
165
  });
166
166
  }
@@ -170,10 +170,10 @@ export class ChangeTabDisplaySize extends ChangeIndentationSizeAction {
170
170
  constructor() {
171
171
  super(true, true, {
172
172
  id: ChangeTabDisplaySize.ID,
173
- label: nls.localize2(1153, "Change Tab Display Size"),
173
+ label: nls.localize2(1155, "Change Tab Display Size"),
174
174
  precondition: undefined,
175
175
  metadata: {
176
- description: nls.localize2(1154, "Change the space size equivalent of the tab."),
176
+ description: nls.localize2(1156, "Change the space size equivalent of the tab."),
177
177
  }
178
178
  });
179
179
  }
@@ -183,10 +183,10 @@ export class DetectIndentation extends EditorAction {
183
183
  constructor() {
184
184
  super({
185
185
  id: DetectIndentation.ID,
186
- label: nls.localize2(1155, "Detect Indentation from Content"),
186
+ label: nls.localize2(1157, "Detect Indentation from Content"),
187
187
  precondition: undefined,
188
188
  metadata: {
189
- description: nls.localize2(1156, "Detect the indentation from content."),
189
+ description: nls.localize2(1158, "Detect the indentation from content."),
190
190
  }
191
191
  });
192
192
  }
@@ -204,11 +204,12 @@ export class ReindentLinesAction extends EditorAction {
204
204
  constructor() {
205
205
  super({
206
206
  id: 'editor.action.reindentlines',
207
- label: nls.localize2(1157, "Reindent Lines"),
207
+ label: nls.localize2(1159, "Reindent Lines"),
208
208
  precondition: EditorContextKeys.writable,
209
209
  metadata: {
210
- description: nls.localize2(1158, "Reindent the lines of the editor."),
211
- }
210
+ description: nls.localize2(1160, "Reindent the lines of the editor."),
211
+ },
212
+ canTriggerInlineEdits: true,
212
213
  });
213
214
  }
214
215
  run(accessor, editor) {
@@ -229,11 +230,12 @@ export class ReindentSelectedLinesAction extends EditorAction {
229
230
  constructor() {
230
231
  super({
231
232
  id: 'editor.action.reindentselectedlines',
232
- label: nls.localize2(1159, "Reindent Selected Lines"),
233
+ label: nls.localize2(1161, "Reindent Selected Lines"),
233
234
  precondition: EditorContextKeys.writable,
234
235
  metadata: {
235
- description: nls.localize2(1160, "Reindent the selected lines of the editor."),
236
- }
236
+ description: nls.localize2(1162, "Reindent the selected lines of the editor."),
237
+ },
238
+ canTriggerInlineEdits: true,
237
239
  });
238
240
  }
239
241
  run(accessor, editor) {
@@ -1 +1 @@
1
- {"version":3,"sources":["vs/editor/contrib/indentation/browser/indentation.ts"],"names":[],"mappings":"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","file":"indentation.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 { DisposableStore } from '../../../../base/common/lifecycle.js';\nimport * as strings from '../../../../base/common/strings.js';\nimport { ICodeEditor } from '../../../browser/editorBrowser.js';\nimport { EditorAction, EditorContributionInstantiation, IActionOptions, registerEditorAction, registerEditorContribution, ServicesAccessor } from '../../../browser/editorExtensions.js';\nimport { ShiftCommand } from '../../../common/commands/shiftCommand.js';\nimport { EditorAutoIndentStrategy, EditorOption } from '../../../common/config/editorOptions.js';\nimport { ISingleEditOperation } from '../../../common/core/editOperation.js';\nimport { IRange, Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { ICommand, ICursorStateComputerData, IEditOperationBuilder, IEditorContribution } from '../../../common/editorCommon.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { EndOfLineSequence, ITextModel } from '../../../common/model.js';\nimport { TextEdit } from '../../../common/languages.js';\nimport { StandardTokenType } from '../../../common/encodedTokenAttributes.js';\nimport { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';\nimport { IndentConsts } from '../../../common/languages/supports/indentRules.js';\nimport { IModelService } from '../../../common/services/model.js';\nimport * as indentUtils from '../common/indentUtils.js';\nimport * as nls from '../../../../nls.js';\nimport { IQuickInputService } from '../../../../platform/quickinput/common/quickInput.js';\nimport { getGoodIndentForLine, getIndentMetadata } from '../../../common/languages/autoIndent.js';\nimport { getReindentEditOperations } from '../common/indentation.js';\nimport { getStandardTokenTypeAtPosition } from '../../../common/tokens/lineTokens.js';\nimport { Position } from '../../../common/core/position.js';\n\nexport class IndentationToSpacesAction extends EditorAction {\n\tpublic static readonly ID = 'editor.action.indentationToSpaces';\n\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: IndentationToSpacesAction.ID,\n\t\t\tlabel: nls.localize2('indentationToSpaces', \"Convert Indentation to Spaces\"),\n\t\t\tprecondition: EditorContextKeys.writable,\n\t\t\tmetadata: {\n\t\t\t\tdescription: nls.localize2('indentationToSpacesDescription', \"Convert the tab indentation to spaces.\"),\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic run(accessor: ServicesAccessor, editor: ICodeEditor): void {\n\t\tconst model = editor.getModel();\n\t\tif (!model) {\n\t\t\treturn;\n\t\t}\n\t\tconst modelOpts = model.getOptions();\n\t\tconst selection = editor.getSelection();\n\t\tif (!selection) {\n\t\t\treturn;\n\t\t}\n\t\tconst command = new IndentationToSpacesCommand(selection, modelOpts.tabSize);\n\n\t\teditor.pushUndoStop();\n\t\teditor.executeCommands(this.id, [command]);\n\t\teditor.pushUndoStop();\n\n\t\tmodel.updateOptions({\n\t\t\tinsertSpaces: true\n\t\t});\n\t}\n}\n\nexport class IndentationToTabsAction extends EditorAction {\n\tpublic static readonly ID = 'editor.action.indentationToTabs';\n\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: IndentationToTabsAction.ID,\n\t\t\tlabel: nls.localize2('indentationToTabs', \"Convert Indentation to Tabs\"),\n\t\t\tprecondition: EditorContextKeys.writable,\n\t\t\tmetadata: {\n\t\t\t\tdescription: nls.localize2('indentationToTabsDescription', \"Convert the spaces indentation to tabs.\"),\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic run(accessor: ServicesAccessor, editor: ICodeEditor): void {\n\t\tconst model = editor.getModel();\n\t\tif (!model) {\n\t\t\treturn;\n\t\t}\n\t\tconst modelOpts = model.getOptions();\n\t\tconst selection = editor.getSelection();\n\t\tif (!selection) {\n\t\t\treturn;\n\t\t}\n\t\tconst command = new IndentationToTabsCommand(selection, modelOpts.tabSize);\n\n\t\teditor.pushUndoStop();\n\t\teditor.executeCommands(this.id, [command]);\n\t\teditor.pushUndoStop();\n\n\t\tmodel.updateOptions({\n\t\t\tinsertSpaces: false\n\t\t});\n\t}\n}\n\nexport class ChangeIndentationSizeAction extends EditorAction {\n\n\tconstructor(private readonly insertSpaces: boolean, private readonly displaySizeOnly: boolean, opts: IActionOptions) {\n\t\tsuper(opts);\n\t}\n\n\tpublic run(accessor: ServicesAccessor, editor: ICodeEditor): void {\n\t\tconst quickInputService = accessor.get(IQuickInputService);\n\t\tconst modelService = accessor.get(IModelService);\n\n\t\tconst model = editor.getModel();\n\t\tif (!model) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst creationOpts = modelService.getCreationOptions(model.getLanguageId(), model.uri, model.isForSimpleWidget);\n\t\tconst modelOpts = model.getOptions();\n\t\tconst picks = [1, 2, 3, 4, 5, 6, 7, 8].map(n => ({\n\t\t\tid: n.toString(),\n\t\t\tlabel: n.toString(),\n\t\t\t// add description for tabSize value set in the configuration\n\t\t\tdescription: (\n\t\t\t\tn === creationOpts.tabSize && n === modelOpts.tabSize\n\t\t\t\t\t? nls.localize('configuredTabSize', \"Configured Tab Size\")\n\t\t\t\t\t: n === creationOpts.tabSize\n\t\t\t\t\t\t? nls.localize('defaultTabSize', \"Default Tab Size\")\n\t\t\t\t\t\t: n === modelOpts.tabSize\n\t\t\t\t\t\t\t? nls.localize('currentTabSize', \"Current Tab Size\")\n\t\t\t\t\t\t\t: undefined\n\t\t\t)\n\t\t}));\n\n\t\t// auto focus the tabSize set for the current editor\n\t\tconst autoFocusIndex = Math.min(model.getOptions().tabSize - 1, 7);\n\n\t\tsetTimeout(() => {\n\t\t\tquickInputService.pick(picks, { placeHolder: nls.localize({ key: 'selectTabWidth', comment: ['Tab corresponds to the tab key'] }, \"Select Tab Size for Current File\"), activeItem: picks[autoFocusIndex] }).then(pick => {\n\t\t\t\tif (pick) {\n\t\t\t\t\tif (model && !model.isDisposed()) {\n\t\t\t\t\t\tconst pickedVal = parseInt(pick.label, 10);\n\t\t\t\t\t\tif (this.displaySizeOnly) {\n\t\t\t\t\t\t\tmodel.updateOptions({\n\t\t\t\t\t\t\t\ttabSize: pickedVal\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmodel.updateOptions({\n\t\t\t\t\t\t\t\ttabSize: pickedVal,\n\t\t\t\t\t\t\t\tindentSize: pickedVal,\n\t\t\t\t\t\t\t\tinsertSpaces: this.insertSpaces\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}, 50/* quick input is sensitive to being opened so soon after another */);\n\t}\n}\n\nexport class IndentUsingTabs extends ChangeIndentationSizeAction {\n\n\tpublic static readonly ID = 'editor.action.indentUsingTabs';\n\n\tconstructor() {\n\t\tsuper(false, false, {\n\t\t\tid: IndentUsingTabs.ID,\n\t\t\tlabel: nls.localize2('indentUsingTabs', \"Indent Using Tabs\"),\n\t\t\tprecondition: undefined,\n\t\t\tmetadata: {\n\t\t\t\tdescription: nls.localize2('indentUsingTabsDescription', \"Use indentation with tabs.\"),\n\t\t\t}\n\t\t});\n\t}\n}\n\nexport class IndentUsingSpaces extends ChangeIndentationSizeAction {\n\n\tpublic static readonly ID = 'editor.action.indentUsingSpaces';\n\n\tconstructor() {\n\t\tsuper(true, false, {\n\t\t\tid: IndentUsingSpaces.ID,\n\t\t\tlabel: nls.localize2('indentUsingSpaces', \"Indent Using Spaces\"),\n\t\t\tprecondition: undefined,\n\t\t\tmetadata: {\n\t\t\t\tdescription: nls.localize2('indentUsingSpacesDescription', \"Use indentation with spaces.\"),\n\t\t\t}\n\t\t});\n\t}\n}\n\nexport class ChangeTabDisplaySize extends ChangeIndentationSizeAction {\n\n\tpublic static readonly ID = 'editor.action.changeTabDisplaySize';\n\n\tconstructor() {\n\t\tsuper(true, true, {\n\t\t\tid: ChangeTabDisplaySize.ID,\n\t\t\tlabel: nls.localize2('changeTabDisplaySize', \"Change Tab Display Size\"),\n\t\t\tprecondition: undefined,\n\t\t\tmetadata: {\n\t\t\t\tdescription: nls.localize2('changeTabDisplaySizeDescription', \"Change the space size equivalent of the tab.\"),\n\t\t\t}\n\t\t});\n\t}\n}\n\nexport class DetectIndentation extends EditorAction {\n\n\tpublic static readonly ID = 'editor.action.detectIndentation';\n\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: DetectIndentation.ID,\n\t\t\tlabel: nls.localize2('detectIndentation', \"Detect Indentation from Content\"),\n\t\t\tprecondition: undefined,\n\t\t\tmetadata: {\n\t\t\t\tdescription: nls.localize2('detectIndentationDescription', \"Detect the indentation from content.\"),\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic run(accessor: ServicesAccessor, editor: ICodeEditor): void {\n\t\tconst modelService = accessor.get(IModelService);\n\n\t\tconst model = editor.getModel();\n\t\tif (!model) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst creationOpts = modelService.getCreationOptions(model.getLanguageId(), model.uri, model.isForSimpleWidget);\n\t\tmodel.detectIndentation(creationOpts.insertSpaces, creationOpts.tabSize);\n\t}\n}\n\nexport class ReindentLinesAction extends EditorAction {\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: 'editor.action.reindentlines',\n\t\t\tlabel: nls.localize2('editor.reindentlines', \"Reindent Lines\"),\n\t\t\tprecondition: EditorContextKeys.writable,\n\t\t\tmetadata: {\n\t\t\t\tdescription: nls.localize2('editor.reindentlinesDescription', \"Reindent the lines of the editor.\"),\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic run(accessor: ServicesAccessor, editor: ICodeEditor): void {\n\t\tconst languageConfigurationService = accessor.get(ILanguageConfigurationService);\n\n\t\tconst model = editor.getModel();\n\t\tif (!model) {\n\t\t\treturn;\n\t\t}\n\t\tconst edits = getReindentEditOperations(model, languageConfigurationService, 1, model.getLineCount());\n\t\tif (edits.length > 0) {\n\t\t\teditor.pushUndoStop();\n\t\t\teditor.executeEdits(this.id, edits);\n\t\t\teditor.pushUndoStop();\n\t\t}\n\t}\n}\n\nexport class ReindentSelectedLinesAction extends EditorAction {\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: 'editor.action.reindentselectedlines',\n\t\t\tlabel: nls.localize2('editor.reindentselectedlines', \"Reindent Selected Lines\"),\n\t\t\tprecondition: EditorContextKeys.writable,\n\t\t\tmetadata: {\n\t\t\t\tdescription: nls.localize2('editor.reindentselectedlinesDescription', \"Reindent the selected lines of the editor.\"),\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic run(accessor: ServicesAccessor, editor: ICodeEditor): void {\n\t\tconst languageConfigurationService = accessor.get(ILanguageConfigurationService);\n\n\t\tconst model = editor.getModel();\n\t\tif (!model) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst selections = editor.getSelections();\n\t\tif (selections === null) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst edits: ISingleEditOperation[] = [];\n\n\t\tfor (const selection of selections) {\n\t\t\tlet startLineNumber = selection.startLineNumber;\n\t\t\tlet endLineNumber = selection.endLineNumber;\n\n\t\t\tif (startLineNumber !== endLineNumber && selection.endColumn === 1) {\n\t\t\t\tendLineNumber--;\n\t\t\t}\n\n\t\t\tif (startLineNumber === 1) {\n\t\t\t\tif (startLineNumber === endLineNumber) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tstartLineNumber--;\n\t\t\t}\n\n\t\t\tconst editOperations = getReindentEditOperations(model, languageConfigurationService, startLineNumber, endLineNumber);\n\t\t\tedits.push(...editOperations);\n\t\t}\n\n\t\tif (edits.length > 0) {\n\t\t\teditor.pushUndoStop();\n\t\t\teditor.executeEdits(this.id, edits);\n\t\t\teditor.pushUndoStop();\n\t\t}\n\t}\n}\n\nexport class AutoIndentOnPasteCommand implements ICommand {\n\n\tprivate readonly _edits: { range: IRange; text: string; eol?: EndOfLineSequence }[];\n\n\tprivate readonly _initialSelection: Selection;\n\tprivate _selectionId: string | null;\n\n\tconstructor(edits: TextEdit[], initialSelection: Selection) {\n\t\tthis._initialSelection = initialSelection;\n\t\tthis._edits = [];\n\t\tthis._selectionId = null;\n\n\t\tfor (const edit of edits) {\n\t\t\tif (edit.range && typeof edit.text === 'string') {\n\t\t\t\tthis._edits.push(edit as { range: IRange; text: string; eol?: EndOfLineSequence });\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic getEditOperations(model: ITextModel, builder: IEditOperationBuilder): void {\n\t\tfor (const edit of this._edits) {\n\t\t\tbuilder.addEditOperation(Range.lift(edit.range), edit.text);\n\t\t}\n\n\t\tlet selectionIsSet = false;\n\t\tif (Array.isArray(this._edits) && this._edits.length === 1 && this._initialSelection.isEmpty()) {\n\t\t\tif (this._edits[0].range.startColumn === this._initialSelection.endColumn &&\n\t\t\t\tthis._edits[0].range.startLineNumber === this._initialSelection.endLineNumber) {\n\t\t\t\tselectionIsSet = true;\n\t\t\t\tthis._selectionId = builder.trackSelection(this._initialSelection, true);\n\t\t\t} else if (this._edits[0].range.endColumn === this._initialSelection.startColumn &&\n\t\t\t\tthis._edits[0].range.endLineNumber === this._initialSelection.startLineNumber) {\n\t\t\t\tselectionIsSet = true;\n\t\t\t\tthis._selectionId = builder.trackSelection(this._initialSelection, false);\n\t\t\t}\n\t\t}\n\n\t\tif (!selectionIsSet) {\n\t\t\tthis._selectionId = builder.trackSelection(this._initialSelection);\n\t\t}\n\t}\n\n\tpublic computeCursorState(model: ITextModel, helper: ICursorStateComputerData): Selection {\n\t\treturn helper.getTrackedSelection(this._selectionId!);\n\t}\n}\n\nexport class AutoIndentOnPaste implements IEditorContribution {\n\tpublic static readonly ID = 'editor.contrib.autoIndentOnPaste';\n\n\tprivate readonly callOnDispose = new DisposableStore();\n\tprivate readonly callOnModel = new DisposableStore();\n\n\tconstructor(\n\t\tprivate readonly editor: ICodeEditor,\n\t\t@ILanguageConfigurationService private readonly _languageConfigurationService: ILanguageConfigurationService\n\t) {\n\n\t\tthis.callOnDispose.add(editor.onDidChangeConfiguration(() => this.update()));\n\t\tthis.callOnDispose.add(editor.onDidChangeModel(() => this.update()));\n\t\tthis.callOnDispose.add(editor.onDidChangeModelLanguage(() => this.update()));\n\t}\n\n\tprivate update(): void {\n\n\t\t// clean up\n\t\tthis.callOnModel.clear();\n\n\t\t// we are disabled\n\t\tif (!this.editor.getOption(EditorOption.autoIndentOnPaste) || this.editor.getOption(EditorOption.autoIndent) < EditorAutoIndentStrategy.Full) {\n\t\t\treturn;\n\t\t}\n\n\t\t// no model\n\t\tif (!this.editor.hasModel()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.callOnModel.add(this.editor.onDidPaste(({ range }) => {\n\t\t\tthis.trigger(range);\n\t\t}));\n\t}\n\n\tpublic trigger(range: Range): void {\n\t\tconst selections = this.editor.getSelections();\n\t\tif (selections === null || selections.length > 1) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst model = this.editor.getModel();\n\t\tif (!model) {\n\t\t\treturn;\n\t\t}\n\t\tconst containsOnlyWhitespace = this.rangeContainsOnlyWhitespaceCharacters(model, range);\n\t\tif (containsOnlyWhitespace) {\n\t\t\treturn;\n\t\t}\n\t\tif (!this.editor.getOption(EditorOption.autoIndentOnPasteWithinString) && isStartOrEndInString(model, range)) {\n\t\t\treturn;\n\t\t}\n\t\tif (!model.tokenization.isCheapToTokenize(range.getStartPosition().lineNumber)) {\n\t\t\treturn;\n\t\t}\n\t\tconst autoIndent = this.editor.getOption(EditorOption.autoIndent);\n\t\tconst { tabSize, indentSize, insertSpaces } = model.getOptions();\n\t\tconst textEdits: TextEdit[] = [];\n\n\t\tconst indentConverter = {\n\t\t\tshiftIndent: (indentation: string) => {\n\t\t\t\treturn ShiftCommand.shiftIndent(indentation, indentation.length + 1, tabSize, indentSize, insertSpaces);\n\t\t\t},\n\t\t\tunshiftIndent: (indentation: string) => {\n\t\t\t\treturn ShiftCommand.unshiftIndent(indentation, indentation.length + 1, tabSize, indentSize, insertSpaces);\n\t\t\t}\n\t\t};\n\n\t\tlet startLineNumber = range.startLineNumber;\n\n\t\tlet firstLineText = model.getLineContent(startLineNumber);\n\t\tif (!/\\S/.test(firstLineText.substring(0, range.startColumn - 1))) {\n\t\t\tconst indentOfFirstLine = getGoodIndentForLine(autoIndent, model, model.getLanguageId(), startLineNumber, indentConverter, this._languageConfigurationService);\n\n\t\t\tif (indentOfFirstLine !== null) {\n\t\t\t\tconst oldIndentation = strings.getLeadingWhitespace(firstLineText);\n\t\t\t\tconst newSpaceCnt = indentUtils.getSpaceCnt(indentOfFirstLine, tabSize);\n\t\t\t\tconst oldSpaceCnt = indentUtils.getSpaceCnt(oldIndentation, tabSize);\n\n\t\t\t\tif (newSpaceCnt !== oldSpaceCnt) {\n\t\t\t\t\tconst newIndent = indentUtils.generateIndent(newSpaceCnt, tabSize, insertSpaces);\n\t\t\t\t\ttextEdits.push({\n\t\t\t\t\t\trange: new Range(startLineNumber, 1, startLineNumber, oldIndentation.length + 1),\n\t\t\t\t\t\ttext: newIndent\n\t\t\t\t\t});\n\t\t\t\t\tfirstLineText = newIndent + firstLineText.substring(oldIndentation.length);\n\t\t\t\t} else {\n\t\t\t\t\tconst indentMetadata = getIndentMetadata(model, startLineNumber, this._languageConfigurationService);\n\n\t\t\t\t\tif (indentMetadata === 0 || indentMetadata === IndentConsts.UNINDENT_MASK) {\n\t\t\t\t\t\t// we paste content into a line where only contains whitespaces\n\t\t\t\t\t\t// after pasting, the indentation of the first line is already correct\n\t\t\t\t\t\t// the first line doesn't match any indentation rule\n\t\t\t\t\t\t// then no-op.\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst firstLineNumber = startLineNumber;\n\n\t\t// ignore empty or ignored lines\n\t\twhile (startLineNumber < range.endLineNumber) {\n\t\t\tif (!/\\S/.test(model.getLineContent(startLineNumber + 1))) {\n\t\t\t\tstartLineNumber++;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\n\t\tif (startLineNumber !== range.endLineNumber) {\n\t\t\tconst virtualModel = {\n\t\t\t\ttokenization: {\n\t\t\t\t\tgetLineTokens: (lineNumber: number) => {\n\t\t\t\t\t\treturn model.tokenization.getLineTokens(lineNumber);\n\t\t\t\t\t},\n\t\t\t\t\tgetLanguageId: () => {\n\t\t\t\t\t\treturn model.getLanguageId();\n\t\t\t\t\t},\n\t\t\t\t\tgetLanguageIdAtPosition: (lineNumber: number, column: number) => {\n\t\t\t\t\t\treturn model.getLanguageIdAtPosition(lineNumber, column);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tgetLineContent: (lineNumber: number) => {\n\t\t\t\t\tif (lineNumber === firstLineNumber) {\n\t\t\t\t\t\treturn firstLineText;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn model.getLineContent(lineNumber);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t\tconst indentOfSecondLine = getGoodIndentForLine(autoIndent, virtualModel, model.getLanguageId(), startLineNumber + 1, indentConverter, this._languageConfigurationService);\n\t\t\tif (indentOfSecondLine !== null) {\n\t\t\t\tconst newSpaceCntOfSecondLine = indentUtils.getSpaceCnt(indentOfSecondLine, tabSize);\n\t\t\t\tconst oldSpaceCntOfSecondLine = indentUtils.getSpaceCnt(strings.getLeadingWhitespace(model.getLineContent(startLineNumber + 1)), tabSize);\n\n\t\t\t\tif (newSpaceCntOfSecondLine !== oldSpaceCntOfSecondLine) {\n\t\t\t\t\tconst spaceCntOffset = newSpaceCntOfSecondLine - oldSpaceCntOfSecondLine;\n\t\t\t\t\tfor (let i = startLineNumber + 1; i <= range.endLineNumber; i++) {\n\t\t\t\t\t\tconst lineContent = model.getLineContent(i);\n\t\t\t\t\t\tconst originalIndent = strings.getLeadingWhitespace(lineContent);\n\t\t\t\t\t\tconst originalSpacesCnt = indentUtils.getSpaceCnt(originalIndent, tabSize);\n\t\t\t\t\t\tconst newSpacesCnt = originalSpacesCnt + spaceCntOffset;\n\t\t\t\t\t\tconst newIndent = indentUtils.generateIndent(newSpacesCnt, tabSize, insertSpaces);\n\n\t\t\t\t\t\tif (newIndent !== originalIndent) {\n\t\t\t\t\t\t\ttextEdits.push({\n\t\t\t\t\t\t\t\trange: new Range(i, 1, i, originalIndent.length + 1),\n\t\t\t\t\t\t\t\ttext: newIndent\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (textEdits.length > 0) {\n\t\t\tthis.editor.pushUndoStop();\n\t\t\tconst cmd = new AutoIndentOnPasteCommand(textEdits, this.editor.getSelection()!);\n\t\t\tthis.editor.executeCommand('autoIndentOnPaste', cmd);\n\t\t\tthis.editor.pushUndoStop();\n\t\t}\n\t}\n\n\tprivate rangeContainsOnlyWhitespaceCharacters(model: ITextModel, range: Range): boolean {\n\t\tconst lineContainsOnlyWhitespace = (content: string): boolean => {\n\t\t\treturn content.trim().length === 0;\n\t\t};\n\t\tlet containsOnlyWhitespace: boolean = true;\n\t\tif (range.startLineNumber === range.endLineNumber) {\n\t\t\tconst lineContent = model.getLineContent(range.startLineNumber);\n\t\t\tconst linePart = lineContent.substring(range.startColumn - 1, range.endColumn - 1);\n\t\t\tcontainsOnlyWhitespace = lineContainsOnlyWhitespace(linePart);\n\t\t} else {\n\t\t\tfor (let i = range.startLineNumber; i <= range.endLineNumber; i++) {\n\t\t\t\tconst lineContent = model.getLineContent(i);\n\t\t\t\tif (i === range.startLineNumber) {\n\t\t\t\t\tconst linePart = lineContent.substring(range.startColumn - 1);\n\t\t\t\t\tcontainsOnlyWhitespace = lineContainsOnlyWhitespace(linePart);\n\t\t\t\t} else if (i === range.endLineNumber) {\n\t\t\t\t\tconst linePart = lineContent.substring(0, range.endColumn - 1);\n\t\t\t\t\tcontainsOnlyWhitespace = lineContainsOnlyWhitespace(linePart);\n\t\t\t\t} else {\n\t\t\t\t\tcontainsOnlyWhitespace = model.getLineFirstNonWhitespaceColumn(i) === 0;\n\t\t\t\t}\n\t\t\t\tif (!containsOnlyWhitespace) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn containsOnlyWhitespace;\n\t}\n\n\tpublic dispose(): void {\n\t\tthis.callOnDispose.dispose();\n\t\tthis.callOnModel.dispose();\n\t}\n}\n\nfunction isStartOrEndInString(model: ITextModel, range: Range): boolean {\n\tconst isPositionInString = (position: Position): boolean => {\n\t\tconst tokenType = getStandardTokenTypeAtPosition(model, position);\n\t\treturn tokenType === StandardTokenType.String;\n\t};\n\treturn isPositionInString(range.getStartPosition()) || isPositionInString(range.getEndPosition());\n}\n\nfunction getIndentationEditOperations(model: ITextModel, builder: IEditOperationBuilder, tabSize: number, tabsToSpaces: boolean): void {\n\tif (model.getLineCount() === 1 && model.getLineMaxColumn(1) === 1) {\n\t\t// Model is empty\n\t\treturn;\n\t}\n\n\tlet spaces = '';\n\tfor (let i = 0; i < tabSize; i++) {\n\t\tspaces += ' ';\n\t}\n\n\tconst spacesRegExp = new RegExp(spaces, 'gi');\n\n\tfor (let lineNumber = 1, lineCount = model.getLineCount(); lineNumber <= lineCount; lineNumber++) {\n\t\tlet lastIndentationColumn = model.getLineFirstNonWhitespaceColumn(lineNumber);\n\t\tif (lastIndentationColumn === 0) {\n\t\t\tlastIndentationColumn = model.getLineMaxColumn(lineNumber);\n\t\t}\n\n\t\tif (lastIndentationColumn === 1) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst originalIndentationRange = new Range(lineNumber, 1, lineNumber, lastIndentationColumn);\n\t\tconst originalIndentation = model.getValueInRange(originalIndentationRange);\n\t\tconst newIndentation = (\n\t\t\ttabsToSpaces\n\t\t\t\t? originalIndentation.replace(/\\t/ig, spaces)\n\t\t\t\t: originalIndentation.replace(spacesRegExp, '\\t')\n\t\t);\n\n\t\tbuilder.addEditOperation(originalIndentationRange, newIndentation);\n\t}\n}\n\nexport class IndentationToSpacesCommand implements ICommand {\n\n\tprivate selectionId: string | null = null;\n\n\tconstructor(private readonly selection: Selection, private tabSize: number) { }\n\n\tpublic getEditOperations(model: ITextModel, builder: IEditOperationBuilder): void {\n\t\tthis.selectionId = builder.trackSelection(this.selection);\n\t\tgetIndentationEditOperations(model, builder, this.tabSize, true);\n\t}\n\n\tpublic computeCursorState(model: ITextModel, helper: ICursorStateComputerData): Selection {\n\t\treturn helper.getTrackedSelection(this.selectionId!);\n\t}\n}\n\nexport class IndentationToTabsCommand implements ICommand {\n\n\tprivate selectionId: string | null = null;\n\n\tconstructor(private readonly selection: Selection, private tabSize: number) { }\n\n\tpublic getEditOperations(model: ITextModel, builder: IEditOperationBuilder): void {\n\t\tthis.selectionId = builder.trackSelection(this.selection);\n\t\tgetIndentationEditOperations(model, builder, this.tabSize, false);\n\t}\n\n\tpublic computeCursorState(model: ITextModel, helper: ICursorStateComputerData): Selection {\n\t\treturn helper.getTrackedSelection(this.selectionId!);\n\t}\n}\n\nregisterEditorContribution(AutoIndentOnPaste.ID, AutoIndentOnPaste, EditorContributionInstantiation.BeforeFirstInteraction);\nregisterEditorAction(IndentationToSpacesAction);\nregisterEditorAction(IndentationToTabsAction);\nregisterEditorAction(IndentUsingTabs);\nregisterEditorAction(IndentUsingSpaces);\nregisterEditorAction(ChangeTabDisplaySize);\nregisterEditorAction(DetectIndentation);\nregisterEditorAction(ReindentLinesAction);\nregisterEditorAction(ReindentSelectedLinesAction);\n"]}
1
+ {"version":3,"sources":["vs/editor/contrib/indentation/browser/indentation.ts"],"names":[],"mappings":"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","file":"indentation.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 { DisposableStore } from '../../../../base/common/lifecycle.js';\nimport * as strings from '../../../../base/common/strings.js';\nimport * as nls from '../../../../nls.js';\nimport { IQuickInputService } from '../../../../platform/quickinput/common/quickInput.js';\nimport { ICodeEditor } from '../../../browser/editorBrowser.js';\nimport { EditorAction, EditorContributionInstantiation, IActionOptions, registerEditorAction, registerEditorContribution, ServicesAccessor } from '../../../browser/editorExtensions.js';\nimport { ShiftCommand } from '../../../common/commands/shiftCommand.js';\nimport { EditorAutoIndentStrategy, EditorOption } from '../../../common/config/editorOptions.js';\nimport { ISingleEditOperation } from '../../../common/core/editOperation.js';\nimport { Position } from '../../../common/core/position.js';\nimport { IRange, Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { ICommand, ICursorStateComputerData, IEditOperationBuilder, IEditorContribution } from '../../../common/editorCommon.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { StandardTokenType } from '../../../common/encodedTokenAttributes.js';\nimport { TextEdit } from '../../../common/languages.js';\nimport { getGoodIndentForLine, getIndentMetadata } from '../../../common/languages/autoIndent.js';\nimport { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';\nimport { IndentConsts } from '../../../common/languages/supports/indentRules.js';\nimport { EndOfLineSequence, ITextModel } from '../../../common/model.js';\nimport { IModelService } from '../../../common/services/model.js';\nimport { getStandardTokenTypeAtPosition } from '../../../common/tokens/lineTokens.js';\nimport { getReindentEditOperations } from '../common/indentation.js';\nimport * as indentUtils from '../common/indentUtils.js';\n\nexport class IndentationToSpacesAction extends EditorAction {\n\tpublic static readonly ID = 'editor.action.indentationToSpaces';\n\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: IndentationToSpacesAction.ID,\n\t\t\tlabel: nls.localize2('indentationToSpaces', \"Convert Indentation to Spaces\"),\n\t\t\tprecondition: EditorContextKeys.writable,\n\t\t\tmetadata: {\n\t\t\t\tdescription: nls.localize2('indentationToSpacesDescription', \"Convert the tab indentation to spaces.\"),\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic run(accessor: ServicesAccessor, editor: ICodeEditor): void {\n\t\tconst model = editor.getModel();\n\t\tif (!model) {\n\t\t\treturn;\n\t\t}\n\t\tconst modelOpts = model.getOptions();\n\t\tconst selection = editor.getSelection();\n\t\tif (!selection) {\n\t\t\treturn;\n\t\t}\n\t\tconst command = new IndentationToSpacesCommand(selection, modelOpts.tabSize);\n\n\t\teditor.pushUndoStop();\n\t\teditor.executeCommands(this.id, [command]);\n\t\teditor.pushUndoStop();\n\n\t\tmodel.updateOptions({\n\t\t\tinsertSpaces: true\n\t\t});\n\t}\n}\n\nexport class IndentationToTabsAction extends EditorAction {\n\tpublic static readonly ID = 'editor.action.indentationToTabs';\n\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: IndentationToTabsAction.ID,\n\t\t\tlabel: nls.localize2('indentationToTabs', \"Convert Indentation to Tabs\"),\n\t\t\tprecondition: EditorContextKeys.writable,\n\t\t\tmetadata: {\n\t\t\t\tdescription: nls.localize2('indentationToTabsDescription', \"Convert the spaces indentation to tabs.\"),\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic run(accessor: ServicesAccessor, editor: ICodeEditor): void {\n\t\tconst model = editor.getModel();\n\t\tif (!model) {\n\t\t\treturn;\n\t\t}\n\t\tconst modelOpts = model.getOptions();\n\t\tconst selection = editor.getSelection();\n\t\tif (!selection) {\n\t\t\treturn;\n\t\t}\n\t\tconst command = new IndentationToTabsCommand(selection, modelOpts.tabSize);\n\n\t\teditor.pushUndoStop();\n\t\teditor.executeCommands(this.id, [command]);\n\t\teditor.pushUndoStop();\n\n\t\tmodel.updateOptions({\n\t\t\tinsertSpaces: false\n\t\t});\n\t}\n}\n\nexport class ChangeIndentationSizeAction extends EditorAction {\n\n\tconstructor(private readonly insertSpaces: boolean, private readonly displaySizeOnly: boolean, opts: IActionOptions) {\n\t\tsuper(opts);\n\t}\n\n\tpublic run(accessor: ServicesAccessor, editor: ICodeEditor): void {\n\t\tconst quickInputService = accessor.get(IQuickInputService);\n\t\tconst modelService = accessor.get(IModelService);\n\n\t\tconst model = editor.getModel();\n\t\tif (!model) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst creationOpts = modelService.getCreationOptions(model.getLanguageId(), model.uri, model.isForSimpleWidget);\n\t\tconst modelOpts = model.getOptions();\n\t\tconst picks = [1, 2, 3, 4, 5, 6, 7, 8].map(n => ({\n\t\t\tid: n.toString(),\n\t\t\tlabel: n.toString(),\n\t\t\t// add description for tabSize value set in the configuration\n\t\t\tdescription: (\n\t\t\t\tn === creationOpts.tabSize && n === modelOpts.tabSize\n\t\t\t\t\t? nls.localize('configuredTabSize', \"Configured Tab Size\")\n\t\t\t\t\t: n === creationOpts.tabSize\n\t\t\t\t\t\t? nls.localize('defaultTabSize', \"Default Tab Size\")\n\t\t\t\t\t\t: n === modelOpts.tabSize\n\t\t\t\t\t\t\t? nls.localize('currentTabSize', \"Current Tab Size\")\n\t\t\t\t\t\t\t: undefined\n\t\t\t)\n\t\t}));\n\n\t\t// auto focus the tabSize set for the current editor\n\t\tconst autoFocusIndex = Math.min(model.getOptions().tabSize - 1, 7);\n\n\t\tsetTimeout(() => {\n\t\t\tquickInputService.pick(picks, { placeHolder: nls.localize({ key: 'selectTabWidth', comment: ['Tab corresponds to the tab key'] }, \"Select Tab Size for Current File\"), activeItem: picks[autoFocusIndex] }).then(pick => {\n\t\t\t\tif (pick) {\n\t\t\t\t\tif (model && !model.isDisposed()) {\n\t\t\t\t\t\tconst pickedVal = parseInt(pick.label, 10);\n\t\t\t\t\t\tif (this.displaySizeOnly) {\n\t\t\t\t\t\t\tmodel.updateOptions({\n\t\t\t\t\t\t\t\ttabSize: pickedVal\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmodel.updateOptions({\n\t\t\t\t\t\t\t\ttabSize: pickedVal,\n\t\t\t\t\t\t\t\tindentSize: pickedVal,\n\t\t\t\t\t\t\t\tinsertSpaces: this.insertSpaces\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}, 50/* quick input is sensitive to being opened so soon after another */);\n\t}\n}\n\nexport class IndentUsingTabs extends ChangeIndentationSizeAction {\n\n\tpublic static readonly ID = 'editor.action.indentUsingTabs';\n\n\tconstructor() {\n\t\tsuper(false, false, {\n\t\t\tid: IndentUsingTabs.ID,\n\t\t\tlabel: nls.localize2('indentUsingTabs', \"Indent Using Tabs\"),\n\t\t\tprecondition: undefined,\n\t\t\tmetadata: {\n\t\t\t\tdescription: nls.localize2('indentUsingTabsDescription', \"Use indentation with tabs.\"),\n\t\t\t}\n\t\t});\n\t}\n}\n\nexport class IndentUsingSpaces extends ChangeIndentationSizeAction {\n\n\tpublic static readonly ID = 'editor.action.indentUsingSpaces';\n\n\tconstructor() {\n\t\tsuper(true, false, {\n\t\t\tid: IndentUsingSpaces.ID,\n\t\t\tlabel: nls.localize2('indentUsingSpaces', \"Indent Using Spaces\"),\n\t\t\tprecondition: undefined,\n\t\t\tmetadata: {\n\t\t\t\tdescription: nls.localize2('indentUsingSpacesDescription', \"Use indentation with spaces.\"),\n\t\t\t}\n\t\t});\n\t}\n}\n\nexport class ChangeTabDisplaySize extends ChangeIndentationSizeAction {\n\n\tpublic static readonly ID = 'editor.action.changeTabDisplaySize';\n\n\tconstructor() {\n\t\tsuper(true, true, {\n\t\t\tid: ChangeTabDisplaySize.ID,\n\t\t\tlabel: nls.localize2('changeTabDisplaySize', \"Change Tab Display Size\"),\n\t\t\tprecondition: undefined,\n\t\t\tmetadata: {\n\t\t\t\tdescription: nls.localize2('changeTabDisplaySizeDescription', \"Change the space size equivalent of the tab.\"),\n\t\t\t}\n\t\t});\n\t}\n}\n\nexport class DetectIndentation extends EditorAction {\n\n\tpublic static readonly ID = 'editor.action.detectIndentation';\n\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: DetectIndentation.ID,\n\t\t\tlabel: nls.localize2('detectIndentation', \"Detect Indentation from Content\"),\n\t\t\tprecondition: undefined,\n\t\t\tmetadata: {\n\t\t\t\tdescription: nls.localize2('detectIndentationDescription', \"Detect the indentation from content.\"),\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic run(accessor: ServicesAccessor, editor: ICodeEditor): void {\n\t\tconst modelService = accessor.get(IModelService);\n\n\t\tconst model = editor.getModel();\n\t\tif (!model) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst creationOpts = modelService.getCreationOptions(model.getLanguageId(), model.uri, model.isForSimpleWidget);\n\t\tmodel.detectIndentation(creationOpts.insertSpaces, creationOpts.tabSize);\n\t}\n}\n\nexport class ReindentLinesAction extends EditorAction {\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: 'editor.action.reindentlines',\n\t\t\tlabel: nls.localize2('editor.reindentlines', \"Reindent Lines\"),\n\t\t\tprecondition: EditorContextKeys.writable,\n\t\t\tmetadata: {\n\t\t\t\tdescription: nls.localize2('editor.reindentlinesDescription', \"Reindent the lines of the editor.\"),\n\t\t\t},\n\t\t\tcanTriggerInlineEdits: true,\n\t\t});\n\t}\n\n\tpublic run(accessor: ServicesAccessor, editor: ICodeEditor): void {\n\t\tconst languageConfigurationService = accessor.get(ILanguageConfigurationService);\n\n\t\tconst model = editor.getModel();\n\t\tif (!model) {\n\t\t\treturn;\n\t\t}\n\t\tconst edits = getReindentEditOperations(model, languageConfigurationService, 1, model.getLineCount());\n\t\tif (edits.length > 0) {\n\t\t\teditor.pushUndoStop();\n\t\t\teditor.executeEdits(this.id, edits);\n\t\t\teditor.pushUndoStop();\n\t\t}\n\t}\n}\n\nexport class ReindentSelectedLinesAction extends EditorAction {\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: 'editor.action.reindentselectedlines',\n\t\t\tlabel: nls.localize2('editor.reindentselectedlines', \"Reindent Selected Lines\"),\n\t\t\tprecondition: EditorContextKeys.writable,\n\t\t\tmetadata: {\n\t\t\t\tdescription: nls.localize2('editor.reindentselectedlinesDescription', \"Reindent the selected lines of the editor.\"),\n\t\t\t},\n\t\t\tcanTriggerInlineEdits: true,\n\t\t});\n\t}\n\n\tpublic run(accessor: ServicesAccessor, editor: ICodeEditor): void {\n\t\tconst languageConfigurationService = accessor.get(ILanguageConfigurationService);\n\n\t\tconst model = editor.getModel();\n\t\tif (!model) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst selections = editor.getSelections();\n\t\tif (selections === null) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst edits: ISingleEditOperation[] = [];\n\n\t\tfor (const selection of selections) {\n\t\t\tlet startLineNumber = selection.startLineNumber;\n\t\t\tlet endLineNumber = selection.endLineNumber;\n\n\t\t\tif (startLineNumber !== endLineNumber && selection.endColumn === 1) {\n\t\t\t\tendLineNumber--;\n\t\t\t}\n\n\t\t\tif (startLineNumber === 1) {\n\t\t\t\tif (startLineNumber === endLineNumber) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tstartLineNumber--;\n\t\t\t}\n\n\t\t\tconst editOperations = getReindentEditOperations(model, languageConfigurationService, startLineNumber, endLineNumber);\n\t\t\tedits.push(...editOperations);\n\t\t}\n\n\t\tif (edits.length > 0) {\n\t\t\teditor.pushUndoStop();\n\t\t\teditor.executeEdits(this.id, edits);\n\t\t\teditor.pushUndoStop();\n\t\t}\n\t}\n}\n\nexport class AutoIndentOnPasteCommand implements ICommand {\n\n\tprivate readonly _edits: { range: IRange; text: string; eol?: EndOfLineSequence }[];\n\n\tprivate readonly _initialSelection: Selection;\n\tprivate _selectionId: string | null;\n\n\tconstructor(edits: TextEdit[], initialSelection: Selection) {\n\t\tthis._initialSelection = initialSelection;\n\t\tthis._edits = [];\n\t\tthis._selectionId = null;\n\n\t\tfor (const edit of edits) {\n\t\t\tif (edit.range && typeof edit.text === 'string') {\n\t\t\t\tthis._edits.push(edit as { range: IRange; text: string; eol?: EndOfLineSequence });\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic getEditOperations(model: ITextModel, builder: IEditOperationBuilder): void {\n\t\tfor (const edit of this._edits) {\n\t\t\tbuilder.addEditOperation(Range.lift(edit.range), edit.text);\n\t\t}\n\n\t\tlet selectionIsSet = false;\n\t\tif (Array.isArray(this._edits) && this._edits.length === 1 && this._initialSelection.isEmpty()) {\n\t\t\tif (this._edits[0].range.startColumn === this._initialSelection.endColumn &&\n\t\t\t\tthis._edits[0].range.startLineNumber === this._initialSelection.endLineNumber) {\n\t\t\t\tselectionIsSet = true;\n\t\t\t\tthis._selectionId = builder.trackSelection(this._initialSelection, true);\n\t\t\t} else if (this._edits[0].range.endColumn === this._initialSelection.startColumn &&\n\t\t\t\tthis._edits[0].range.endLineNumber === this._initialSelection.startLineNumber) {\n\t\t\t\tselectionIsSet = true;\n\t\t\t\tthis._selectionId = builder.trackSelection(this._initialSelection, false);\n\t\t\t}\n\t\t}\n\n\t\tif (!selectionIsSet) {\n\t\t\tthis._selectionId = builder.trackSelection(this._initialSelection);\n\t\t}\n\t}\n\n\tpublic computeCursorState(model: ITextModel, helper: ICursorStateComputerData): Selection {\n\t\treturn helper.getTrackedSelection(this._selectionId!);\n\t}\n}\n\nexport class AutoIndentOnPaste implements IEditorContribution {\n\tpublic static readonly ID = 'editor.contrib.autoIndentOnPaste';\n\n\tprivate readonly callOnDispose = new DisposableStore();\n\tprivate readonly callOnModel = new DisposableStore();\n\n\tconstructor(\n\t\tprivate readonly editor: ICodeEditor,\n\t\t@ILanguageConfigurationService private readonly _languageConfigurationService: ILanguageConfigurationService\n\t) {\n\n\t\tthis.callOnDispose.add(editor.onDidChangeConfiguration(() => this.update()));\n\t\tthis.callOnDispose.add(editor.onDidChangeModel(() => this.update()));\n\t\tthis.callOnDispose.add(editor.onDidChangeModelLanguage(() => this.update()));\n\t}\n\n\tprivate update(): void {\n\n\t\t// clean up\n\t\tthis.callOnModel.clear();\n\n\t\t// we are disabled\n\t\tif (!this.editor.getOption(EditorOption.autoIndentOnPaste) || this.editor.getOption(EditorOption.autoIndent) < EditorAutoIndentStrategy.Full) {\n\t\t\treturn;\n\t\t}\n\n\t\t// no model\n\t\tif (!this.editor.hasModel()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.callOnModel.add(this.editor.onDidPaste(({ range }) => {\n\t\t\tthis.trigger(range);\n\t\t}));\n\t}\n\n\tpublic trigger(range: Range): void {\n\t\tconst selections = this.editor.getSelections();\n\t\tif (selections === null || selections.length > 1) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst model = this.editor.getModel();\n\t\tif (!model) {\n\t\t\treturn;\n\t\t}\n\t\tconst containsOnlyWhitespace = this.rangeContainsOnlyWhitespaceCharacters(model, range);\n\t\tif (containsOnlyWhitespace) {\n\t\t\treturn;\n\t\t}\n\t\tif (!this.editor.getOption(EditorOption.autoIndentOnPasteWithinString) && isStartOrEndInString(model, range)) {\n\t\t\treturn;\n\t\t}\n\t\tif (!model.tokenization.isCheapToTokenize(range.getStartPosition().lineNumber)) {\n\t\t\treturn;\n\t\t}\n\t\tconst autoIndent = this.editor.getOption(EditorOption.autoIndent);\n\t\tconst { tabSize, indentSize, insertSpaces } = model.getOptions();\n\t\tconst textEdits: TextEdit[] = [];\n\n\t\tconst indentConverter = {\n\t\t\tshiftIndent: (indentation: string) => {\n\t\t\t\treturn ShiftCommand.shiftIndent(indentation, indentation.length + 1, tabSize, indentSize, insertSpaces);\n\t\t\t},\n\t\t\tunshiftIndent: (indentation: string) => {\n\t\t\t\treturn ShiftCommand.unshiftIndent(indentation, indentation.length + 1, tabSize, indentSize, insertSpaces);\n\t\t\t}\n\t\t};\n\n\t\tlet startLineNumber = range.startLineNumber;\n\n\t\tlet firstLineText = model.getLineContent(startLineNumber);\n\t\tif (!/\\S/.test(firstLineText.substring(0, range.startColumn - 1))) {\n\t\t\tconst indentOfFirstLine = getGoodIndentForLine(autoIndent, model, model.getLanguageId(), startLineNumber, indentConverter, this._languageConfigurationService);\n\n\t\t\tif (indentOfFirstLine !== null) {\n\t\t\t\tconst oldIndentation = strings.getLeadingWhitespace(firstLineText);\n\t\t\t\tconst newSpaceCnt = indentUtils.getSpaceCnt(indentOfFirstLine, tabSize);\n\t\t\t\tconst oldSpaceCnt = indentUtils.getSpaceCnt(oldIndentation, tabSize);\n\n\t\t\t\tif (newSpaceCnt !== oldSpaceCnt) {\n\t\t\t\t\tconst newIndent = indentUtils.generateIndent(newSpaceCnt, tabSize, insertSpaces);\n\t\t\t\t\ttextEdits.push({\n\t\t\t\t\t\trange: new Range(startLineNumber, 1, startLineNumber, oldIndentation.length + 1),\n\t\t\t\t\t\ttext: newIndent\n\t\t\t\t\t});\n\t\t\t\t\tfirstLineText = newIndent + firstLineText.substring(oldIndentation.length);\n\t\t\t\t} else {\n\t\t\t\t\tconst indentMetadata = getIndentMetadata(model, startLineNumber, this._languageConfigurationService);\n\n\t\t\t\t\tif (indentMetadata === 0 || indentMetadata === IndentConsts.UNINDENT_MASK) {\n\t\t\t\t\t\t// we paste content into a line where only contains whitespaces\n\t\t\t\t\t\t// after pasting, the indentation of the first line is already correct\n\t\t\t\t\t\t// the first line doesn't match any indentation rule\n\t\t\t\t\t\t// then no-op.\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst firstLineNumber = startLineNumber;\n\n\t\t// ignore empty or ignored lines\n\t\twhile (startLineNumber < range.endLineNumber) {\n\t\t\tif (!/\\S/.test(model.getLineContent(startLineNumber + 1))) {\n\t\t\t\tstartLineNumber++;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\n\t\tif (startLineNumber !== range.endLineNumber) {\n\t\t\tconst virtualModel = {\n\t\t\t\ttokenization: {\n\t\t\t\t\tgetLineTokens: (lineNumber: number) => {\n\t\t\t\t\t\treturn model.tokenization.getLineTokens(lineNumber);\n\t\t\t\t\t},\n\t\t\t\t\tgetLanguageId: () => {\n\t\t\t\t\t\treturn model.getLanguageId();\n\t\t\t\t\t},\n\t\t\t\t\tgetLanguageIdAtPosition: (lineNumber: number, column: number) => {\n\t\t\t\t\t\treturn model.getLanguageIdAtPosition(lineNumber, column);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tgetLineContent: (lineNumber: number) => {\n\t\t\t\t\tif (lineNumber === firstLineNumber) {\n\t\t\t\t\t\treturn firstLineText;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn model.getLineContent(lineNumber);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t\tconst indentOfSecondLine = getGoodIndentForLine(autoIndent, virtualModel, model.getLanguageId(), startLineNumber + 1, indentConverter, this._languageConfigurationService);\n\t\t\tif (indentOfSecondLine !== null) {\n\t\t\t\tconst newSpaceCntOfSecondLine = indentUtils.getSpaceCnt(indentOfSecondLine, tabSize);\n\t\t\t\tconst oldSpaceCntOfSecondLine = indentUtils.getSpaceCnt(strings.getLeadingWhitespace(model.getLineContent(startLineNumber + 1)), tabSize);\n\n\t\t\t\tif (newSpaceCntOfSecondLine !== oldSpaceCntOfSecondLine) {\n\t\t\t\t\tconst spaceCntOffset = newSpaceCntOfSecondLine - oldSpaceCntOfSecondLine;\n\t\t\t\t\tfor (let i = startLineNumber + 1; i <= range.endLineNumber; i++) {\n\t\t\t\t\t\tconst lineContent = model.getLineContent(i);\n\t\t\t\t\t\tconst originalIndent = strings.getLeadingWhitespace(lineContent);\n\t\t\t\t\t\tconst originalSpacesCnt = indentUtils.getSpaceCnt(originalIndent, tabSize);\n\t\t\t\t\t\tconst newSpacesCnt = originalSpacesCnt + spaceCntOffset;\n\t\t\t\t\t\tconst newIndent = indentUtils.generateIndent(newSpacesCnt, tabSize, insertSpaces);\n\n\t\t\t\t\t\tif (newIndent !== originalIndent) {\n\t\t\t\t\t\t\ttextEdits.push({\n\t\t\t\t\t\t\t\trange: new Range(i, 1, i, originalIndent.length + 1),\n\t\t\t\t\t\t\t\ttext: newIndent\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (textEdits.length > 0) {\n\t\t\tthis.editor.pushUndoStop();\n\t\t\tconst cmd = new AutoIndentOnPasteCommand(textEdits, this.editor.getSelection()!);\n\t\t\tthis.editor.executeCommand('autoIndentOnPaste', cmd);\n\t\t\tthis.editor.pushUndoStop();\n\t\t}\n\t}\n\n\tprivate rangeContainsOnlyWhitespaceCharacters(model: ITextModel, range: Range): boolean {\n\t\tconst lineContainsOnlyWhitespace = (content: string): boolean => {\n\t\t\treturn content.trim().length === 0;\n\t\t};\n\t\tlet containsOnlyWhitespace: boolean = true;\n\t\tif (range.startLineNumber === range.endLineNumber) {\n\t\t\tconst lineContent = model.getLineContent(range.startLineNumber);\n\t\t\tconst linePart = lineContent.substring(range.startColumn - 1, range.endColumn - 1);\n\t\t\tcontainsOnlyWhitespace = lineContainsOnlyWhitespace(linePart);\n\t\t} else {\n\t\t\tfor (let i = range.startLineNumber; i <= range.endLineNumber; i++) {\n\t\t\t\tconst lineContent = model.getLineContent(i);\n\t\t\t\tif (i === range.startLineNumber) {\n\t\t\t\t\tconst linePart = lineContent.substring(range.startColumn - 1);\n\t\t\t\t\tcontainsOnlyWhitespace = lineContainsOnlyWhitespace(linePart);\n\t\t\t\t} else if (i === range.endLineNumber) {\n\t\t\t\t\tconst linePart = lineContent.substring(0, range.endColumn - 1);\n\t\t\t\t\tcontainsOnlyWhitespace = lineContainsOnlyWhitespace(linePart);\n\t\t\t\t} else {\n\t\t\t\t\tcontainsOnlyWhitespace = model.getLineFirstNonWhitespaceColumn(i) === 0;\n\t\t\t\t}\n\t\t\t\tif (!containsOnlyWhitespace) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn containsOnlyWhitespace;\n\t}\n\n\tpublic dispose(): void {\n\t\tthis.callOnDispose.dispose();\n\t\tthis.callOnModel.dispose();\n\t}\n}\n\nfunction isStartOrEndInString(model: ITextModel, range: Range): boolean {\n\tconst isPositionInString = (position: Position): boolean => {\n\t\tconst tokenType = getStandardTokenTypeAtPosition(model, position);\n\t\treturn tokenType === StandardTokenType.String;\n\t};\n\treturn isPositionInString(range.getStartPosition()) || isPositionInString(range.getEndPosition());\n}\n\nfunction getIndentationEditOperations(model: ITextModel, builder: IEditOperationBuilder, tabSize: number, tabsToSpaces: boolean): void {\n\tif (model.getLineCount() === 1 && model.getLineMaxColumn(1) === 1) {\n\t\t// Model is empty\n\t\treturn;\n\t}\n\n\tlet spaces = '';\n\tfor (let i = 0; i < tabSize; i++) {\n\t\tspaces += ' ';\n\t}\n\n\tconst spacesRegExp = new RegExp(spaces, 'gi');\n\n\tfor (let lineNumber = 1, lineCount = model.getLineCount(); lineNumber <= lineCount; lineNumber++) {\n\t\tlet lastIndentationColumn = model.getLineFirstNonWhitespaceColumn(lineNumber);\n\t\tif (lastIndentationColumn === 0) {\n\t\t\tlastIndentationColumn = model.getLineMaxColumn(lineNumber);\n\t\t}\n\n\t\tif (lastIndentationColumn === 1) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst originalIndentationRange = new Range(lineNumber, 1, lineNumber, lastIndentationColumn);\n\t\tconst originalIndentation = model.getValueInRange(originalIndentationRange);\n\t\tconst newIndentation = (\n\t\t\ttabsToSpaces\n\t\t\t\t? originalIndentation.replace(/\\t/ig, spaces)\n\t\t\t\t: originalIndentation.replace(spacesRegExp, '\\t')\n\t\t);\n\n\t\tbuilder.addEditOperation(originalIndentationRange, newIndentation);\n\t}\n}\n\nexport class IndentationToSpacesCommand implements ICommand {\n\n\tprivate selectionId: string | null = null;\n\n\tconstructor(private readonly selection: Selection, private tabSize: number) { }\n\n\tpublic getEditOperations(model: ITextModel, builder: IEditOperationBuilder): void {\n\t\tthis.selectionId = builder.trackSelection(this.selection);\n\t\tgetIndentationEditOperations(model, builder, this.tabSize, true);\n\t}\n\n\tpublic computeCursorState(model: ITextModel, helper: ICursorStateComputerData): Selection {\n\t\treturn helper.getTrackedSelection(this.selectionId!);\n\t}\n}\n\nexport class IndentationToTabsCommand implements ICommand {\n\n\tprivate selectionId: string | null = null;\n\n\tconstructor(private readonly selection: Selection, private tabSize: number) { }\n\n\tpublic getEditOperations(model: ITextModel, builder: IEditOperationBuilder): void {\n\t\tthis.selectionId = builder.trackSelection(this.selection);\n\t\tgetIndentationEditOperations(model, builder, this.tabSize, false);\n\t}\n\n\tpublic computeCursorState(model: ITextModel, helper: ICursorStateComputerData): Selection {\n\t\treturn helper.getTrackedSelection(this.selectionId!);\n\t}\n}\n\nregisterEditorContribution(AutoIndentOnPaste.ID, AutoIndentOnPaste, EditorContributionInstantiation.BeforeFirstInteraction);\nregisterEditorAction(IndentationToSpacesAction);\nregisterEditorAction(IndentationToTabsAction);\nregisterEditorAction(IndentUsingTabs);\nregisterEditorAction(IndentUsingSpaces);\nregisterEditorAction(ChangeTabDisplaySize);\nregisterEditorAction(DetectIndentation);\nregisterEditorAction(ReindentLinesAction);\nregisterEditorAction(ReindentSelectedLinesAction);\n"]}
@@ -82,7 +82,7 @@ let InlayHintsHover = class InlayHintsHover extends MarkdownHoverParticipant {
82
82
  }
83
83
  // (1.2) Inlay dbl-click gesture
84
84
  if (isNonEmptyArray(part.item.hint.textEdits)) {
85
- executor.emitOne(new MarkdownHover(this, anchor.range, [new MarkdownString().appendText(localize(1161, "Double-click to insert"))], false, 10001));
85
+ executor.emitOne(new MarkdownHover(this, anchor.range, [new MarkdownString().appendText(localize(1163, "Double-click to insert"))], false, 10001));
86
86
  }
87
87
  // (2) Inlay Label Part Tooltip
88
88
  let partTooltip;
@@ -101,19 +101,19 @@ let InlayHintsHover = class InlayHintsHover extends MarkdownHoverParticipant {
101
101
  const useMetaKey = this._editor.getOption(86 /* EditorOption.multiCursorModifier */) === 'altKey';
102
102
  const kb = useMetaKey
103
103
  ? platform.isMacintosh
104
- ? localize(1162, "cmd + click")
105
- : localize(1163, "ctrl + click")
104
+ ? localize(1164, "cmd + click")
105
+ : localize(1165, "ctrl + click")
106
106
  : platform.isMacintosh
107
- ? localize(1164, "option + click")
108
- : localize(1165, "alt + click");
107
+ ? localize(1166, "option + click")
108
+ : localize(1167, "alt + click");
109
109
  if (part.part.location && part.part.command) {
110
- linkHint = new MarkdownString().appendText(localize(1166, 'Go to Definition ({0}), right click for more', kb));
110
+ linkHint = new MarkdownString().appendText(localize(1168, 'Go to Definition ({0}), right click for more', kb));
111
111
  }
112
112
  else if (part.part.location) {
113
- linkHint = new MarkdownString().appendText(localize(1167, 'Go to Definition ({0})', kb));
113
+ linkHint = new MarkdownString().appendText(localize(1169, 'Go to Definition ({0})', kb));
114
114
  }
115
115
  else if (part.part.command) {
116
- linkHint = new MarkdownString(`[${localize(1168, "Execute Command")}](${asCommandLink(part.part.command)} "${part.part.command.title}") (${kb})`, { isTrusted: true });
116
+ linkHint = new MarkdownString(`[${localize(1170, "Execute Command")}](${asCommandLink(part.part.command)} "${part.part.command.title}") (${kb})`, { isTrusted: true });
117
117
  }
118
118
  if (linkHint) {
119
119
  executor.emitOne(new MarkdownHover(this, anchor.range, [linkHint], false, 10000));