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
@@ -22,7 +22,7 @@ export class ShowOrFocusHoverAction extends EditorAction {
22
22
  constructor() {
23
23
  super({
24
24
  id: SHOW_OR_FOCUS_HOVER_ACTION_ID,
25
- label: nls.localize2(1106, "Show or Focus Hover"),
25
+ label: nls.localize2(1107, "Show or Focus Hover"),
26
26
 
27
27
 
28
28
 
@@ -31,7 +31,7 @@ export class ShowOrFocusHoverAction extends EditorAction {
31
31
 
32
32
 
33
33
  metadata: {
34
- description: nls.localize2(1107, 'Show or focus the editor hover which shows documentation, references, and other content for a symbol at the current cursor position.'),
34
+ description: nls.localize2(1108, 'Show or focus the editor hover which shows documentation, references, and other content for a symbol at the current cursor position.'),
35
35
  args: [{
36
36
  name: 'args',
37
37
  schema: {
@@ -41,9 +41,9 @@ export class ShowOrFocusHoverAction extends EditorAction {
41
41
  description: 'Controls if and when the hover should take focus upon being triggered by this action.',
42
42
  enum: [HoverFocusBehavior.NoAutoFocus, HoverFocusBehavior.FocusIfVisible, HoverFocusBehavior.AutoFocusImmediately],
43
43
  enumDescriptions: [
44
- nls.localize(1103, 'The hover will not automatically take focus.'),
45
- nls.localize(1104, 'The hover will take focus only if it is already visible.'),
46
- nls.localize(1105, 'The hover will automatically take focus when it appears.'),
44
+ nls.localize(1104, 'The hover will not automatically take focus.'),
45
+ nls.localize(1105, 'The hover will take focus only if it is already visible.'),
46
+ nls.localize(1106, 'The hover will automatically take focus when it appears.'),
47
47
  ],
48
48
  default: HoverFocusBehavior.FocusIfVisible,
49
49
  }
@@ -98,7 +98,7 @@ export class ShowDefinitionPreviewHoverAction extends EditorAction {
98
98
  constructor() {
99
99
  super({
100
100
  id: SHOW_DEFINITION_PREVIEW_HOVER_ACTION_ID,
101
- label: nls.localize2(1108, "Show Definition Preview Hover"),
101
+ label: nls.localize2(1109, "Show Definition Preview Hover"),
102
102
 
103
103
 
104
104
 
@@ -107,7 +107,7 @@ export class ShowDefinitionPreviewHoverAction extends EditorAction {
107
107
 
108
108
  precondition: undefined,
109
109
  metadata: {
110
- description: nls.localize2(1109, 'Show the definition preview hover in the editor.'),
110
+ description: nls.localize2(1110, 'Show the definition preview hover in the editor.'),
111
111
  },
112
112
  });
113
113
  }
@@ -135,7 +135,7 @@ export class HideContentHoverAction extends EditorAction {
135
135
  constructor() {
136
136
  super({
137
137
  id: HIDE_HOVER_ACTION_ID,
138
- label: nls.localize2(1110, "Hide Hover"),
138
+ label: nls.localize2(1111, "Hide Hover"),
139
139
 
140
140
 
141
141
 
@@ -151,7 +151,7 @@ export class ScrollUpHoverAction extends EditorAction {
151
151
  constructor() {
152
152
  super({
153
153
  id: SCROLL_UP_HOVER_ACTION_ID,
154
- label: nls.localize2(1111, "Scroll Up Hover"),
154
+ label: nls.localize2(1112, "Scroll Up Hover"),
155
155
 
156
156
 
157
157
 
@@ -164,7 +164,7 @@ export class ScrollUpHoverAction extends EditorAction {
164
164
  weight: 100 /* KeybindingWeight.EditorContrib */
165
165
  },
166
166
  metadata: {
167
- description: nls.localize2(1112, 'Scroll up the editor hover.')
167
+ description: nls.localize2(1113, 'Scroll up the editor hover.')
168
168
  },
169
169
  });
170
170
  }
@@ -180,7 +180,7 @@ export class ScrollDownHoverAction extends EditorAction {
180
180
  constructor() {
181
181
  super({
182
182
  id: SCROLL_DOWN_HOVER_ACTION_ID,
183
- label: nls.localize2(1113, "Scroll Down Hover"),
183
+ label: nls.localize2(1114, "Scroll Down Hover"),
184
184
 
185
185
 
186
186
 
@@ -193,7 +193,7 @@ export class ScrollDownHoverAction extends EditorAction {
193
193
  weight: 100 /* KeybindingWeight.EditorContrib */
194
194
  },
195
195
  metadata: {
196
- description: nls.localize2(1114, 'Scroll down the editor hover.'),
196
+ description: nls.localize2(1115, 'Scroll down the editor hover.'),
197
197
  },
198
198
  });
199
199
  }
@@ -209,7 +209,7 @@ export class ScrollLeftHoverAction extends EditorAction {
209
209
  constructor() {
210
210
  super({
211
211
  id: SCROLL_LEFT_HOVER_ACTION_ID,
212
- label: nls.localize2(1115, "Scroll Left Hover"),
212
+ label: nls.localize2(1116, "Scroll Left Hover"),
213
213
 
214
214
 
215
215
 
@@ -222,7 +222,7 @@ export class ScrollLeftHoverAction extends EditorAction {
222
222
  weight: 100 /* KeybindingWeight.EditorContrib */
223
223
  },
224
224
  metadata: {
225
- description: nls.localize2(1116, 'Scroll left the editor hover.'),
225
+ description: nls.localize2(1117, 'Scroll left the editor hover.'),
226
226
  },
227
227
  });
228
228
  }
@@ -238,7 +238,7 @@ export class ScrollRightHoverAction extends EditorAction {
238
238
  constructor() {
239
239
  super({
240
240
  id: SCROLL_RIGHT_HOVER_ACTION_ID,
241
- label: nls.localize2(1117, "Scroll Right Hover"),
241
+ label: nls.localize2(1118, "Scroll Right Hover"),
242
242
 
243
243
 
244
244
 
@@ -251,7 +251,7 @@ export class ScrollRightHoverAction extends EditorAction {
251
251
  weight: 100 /* KeybindingWeight.EditorContrib */
252
252
  },
253
253
  metadata: {
254
- description: nls.localize2(1118, 'Scroll right the editor hover.')
254
+ description: nls.localize2(1119, 'Scroll right the editor hover.')
255
255
  },
256
256
  });
257
257
  }
@@ -267,7 +267,7 @@ export class PageUpHoverAction extends EditorAction {
267
267
  constructor() {
268
268
  super({
269
269
  id: PAGE_UP_HOVER_ACTION_ID,
270
- label: nls.localize2(1119, "Page Up Hover"),
270
+ label: nls.localize2(1120, "Page Up Hover"),
271
271
 
272
272
 
273
273
 
@@ -281,7 +281,7 @@ export class PageUpHoverAction extends EditorAction {
281
281
  weight: 100 /* KeybindingWeight.EditorContrib */
282
282
  },
283
283
  metadata: {
284
- description: nls.localize2(1120, 'Page up the editor hover.'),
284
+ description: nls.localize2(1121, 'Page up the editor hover.'),
285
285
  },
286
286
  });
287
287
  }
@@ -297,7 +297,7 @@ export class PageDownHoverAction extends EditorAction {
297
297
  constructor() {
298
298
  super({
299
299
  id: PAGE_DOWN_HOVER_ACTION_ID,
300
- label: nls.localize2(1121, "Page Down Hover"),
300
+ label: nls.localize2(1122, "Page Down Hover"),
301
301
 
302
302
 
303
303
 
@@ -311,7 +311,7 @@ export class PageDownHoverAction extends EditorAction {
311
311
  weight: 100 /* KeybindingWeight.EditorContrib */
312
312
  },
313
313
  metadata: {
314
- description: nls.localize2(1122, 'Page down the editor hover.'),
314
+ description: nls.localize2(1123, 'Page down the editor hover.'),
315
315
  },
316
316
  });
317
317
  }
@@ -327,7 +327,7 @@ export class GoToTopHoverAction extends EditorAction {
327
327
  constructor() {
328
328
  super({
329
329
  id: GO_TO_TOP_HOVER_ACTION_ID,
330
- label: nls.localize2(1123, "Go To Top Hover"),
330
+ label: nls.localize2(1124, "Go To Top Hover"),
331
331
 
332
332
 
333
333
 
@@ -341,7 +341,7 @@ export class GoToTopHoverAction extends EditorAction {
341
341
  weight: 100 /* KeybindingWeight.EditorContrib */
342
342
  },
343
343
  metadata: {
344
- description: nls.localize2(1124, 'Go to the top of the editor hover.'),
344
+ description: nls.localize2(1125, 'Go to the top of the editor hover.'),
345
345
  },
346
346
  });
347
347
  }
@@ -357,7 +357,7 @@ export class GoToBottomHoverAction extends EditorAction {
357
357
  constructor() {
358
358
  super({
359
359
  id: GO_TO_BOTTOM_HOVER_ACTION_ID,
360
- label: nls.localize2(1125, "Go To Bottom Hover"),
360
+ label: nls.localize2(1126, "Go To Bottom Hover"),
361
361
 
362
362
 
363
363
 
@@ -371,7 +371,7 @@ export class GoToBottomHoverAction extends EditorAction {
371
371
  weight: 100 /* KeybindingWeight.EditorContrib */
372
372
  },
373
373
  metadata: {
374
- description: nls.localize2(1126, 'Go to the bottom of the editor hover.')
374
+ description: nls.localize2(1127, 'Go to the bottom of the editor hover.')
375
375
  },
376
376
  });
377
377
  }
@@ -0,0 +1,51 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Microsoft Corporation. All rights reserved.
3
+ * Licensed under the MIT License. See License.txt in the project root for license information.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
6
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
8
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
9
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ import { Disposable } from '../../../../base/common/lifecycle.js';
15
+ import { IClipboardService } from '../../../../platform/clipboard/common/clipboardService.js';
16
+ import { IHoverService } from '../../../../platform/hover/browser/hover.js';
17
+ import { localize } from '../../../../nls.js';
18
+ import { Codicon } from '../../../../base/common/codicons.js';
19
+ import { SimpleButton } from '../../find/browser/findWidget.js';
20
+ /**
21
+ * A button that appears in hover parts to copy their content to the clipboard.
22
+ */
23
+ let HoverCopyButton = class HoverCopyButton extends Disposable {
24
+ constructor(_container, _getContent, _clipboardService, _hoverService) {
25
+ super();
26
+ this._container = _container;
27
+ this._getContent = _getContent;
28
+ this._clipboardService = _clipboardService;
29
+ this._hoverService = _hoverService;
30
+ this._container.classList.add('hover-row-with-copy');
31
+ this._button = this._register(new SimpleButton({
32
+ label: localize(1128, "Copy"),
33
+ icon: Codicon.copy,
34
+ onTrigger: () => this._copyContent(),
35
+ className: 'hover-copy-button',
36
+ }, this._hoverService));
37
+ this._container.appendChild(this._button.domNode);
38
+ }
39
+ async _copyContent() {
40
+ const content = this._getContent();
41
+ if (content) {
42
+ await this._clipboardService.writeText(content);
43
+ }
44
+ }
45
+ };
46
+ HoverCopyButton = __decorate([
47
+ __param(2, IClipboardService),
48
+ __param(3, IHoverService)
49
+ ], HoverCopyButton);
50
+ export { HoverCopyButton };
51
+ //# sourceMappingURL=hoverCopyButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["vs/editor/contrib/hover/browser/hoverCopyButton.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;;;;;;;;;;AAEhG,OAAO,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2DAA2D,CAAC;AAC9F,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEhE;;GAEG;AACI,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,UAAU;IAI9C,YACkB,UAAuB,EACvB,WAAyB,EACN,iBAAoC,EACxC,aAA4B;QAE5D,KAAK,EAAE,CAAC;QALS,eAAU,GAAV,UAAU,CAAa;QACvB,gBAAW,GAAX,WAAW,CAAc;QACN,sBAAiB,GAAjB,iBAAiB,CAAmB;QACxC,kBAAa,GAAb,aAAa,CAAe;QAI5D,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QAErD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC;YAC9C,KAAK,EAAE,QAAQ,CAAC,IAAY,EAAE,MAAM,CAAC;YACrC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE;YACpC,SAAS,EAAE,mBAAmB;SAC9B,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QAExB,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;IAEO,KAAK,CAAC,YAAY;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACnC,IAAI,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACjD,CAAC;IACF,CAAC;CACD,CAAA;AA9BY,eAAe;IAOzB,WAAA,iBAAiB,CAAA;IACjB,WAAA,aAAa,CAAA;GARH,eAAe,CA8B3B","file":"hoverCopyButton.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 { Disposable } from '../../../../base/common/lifecycle.js';\nimport { IClipboardService } from '../../../../platform/clipboard/common/clipboardService.js';\nimport { IHoverService } from '../../../../platform/hover/browser/hover.js';\nimport { localize } from '../../../../nls.js';\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { SimpleButton } from '../../find/browser/findWidget.js';\n\n/**\n * A button that appears in hover parts to copy their content to the clipboard.\n */\nexport class HoverCopyButton extends Disposable {\n\n\tprivate readonly _button: SimpleButton;\n\n\tconstructor(\n\t\tprivate readonly _container: HTMLElement,\n\t\tprivate readonly _getContent: () => string,\n\t\t@IClipboardService private readonly _clipboardService: IClipboardService,\n\t\t@IHoverService private readonly _hoverService: IHoverService\n\t) {\n\t\tsuper();\n\n\t\tthis._container.classList.add('hover-row-with-copy');\n\n\t\tthis._button = this._register(new SimpleButton({\n\t\t\tlabel: localize('hover.copy', \"Copy\"),\n\t\t\ticon: Codicon.copy,\n\t\t\tonTrigger: () => this._copyContent(),\n\t\t\tclassName: 'hover-copy-button',\n\t\t}, this._hoverService));\n\n\t\tthis._container.appendChild(this._button.domNode);\n\t}\n\n\tprivate async _copyContent(): Promise<void> {\n\t\tconst content = this._getContent();\n\t\tif (content) {\n\t\t\tawait this._clipboardService.writeText(content);\n\t\t}\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/contrib/hover/browser/hoverTypes.ts","vs/editor/contrib/hover/browser/hoverTypes.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AA2ChG,MAAM,OAAO,gBAAgB;IAE5B,YACiB,QAAgB,EAChB,KAAY,EACZ,gBAAoC,EACpC,gBAAoC;QAHpC,aAAQ,GAAR,QAAQ,CAAQ;QAChB,UAAK,GAAL,KAAK,CAAO;QACZ,qBAAgB,GAAhB,gBAAgB,CAAoB;QACpC,qBAAgB,GAAhB,gBAAgB,CAAoB;QALrC,SAAI,iCAAyB;IAO7C,CAAC;IACM,MAAM,CAAC,KAAkB;QAC/B,OAAO,CAAC,KAAK,CAAC,IAAI,kCAA0B,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACtF,CAAC;IACM,oBAAoB,CAAC,UAAuB,EAAE,cAAwB;QAC5E,OAAO,CAAC,UAAU,CAAC,IAAI,kCAA0B,IAAI,cAAc,CAAC,UAAU,KAAK,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAChH,CAAC;CACD;AAED,MAAM,OAAO,yBAAyB;IAErC,YACiB,QAAgB,EAChB,KAA8B,EAC9B,KAAY,EACZ,gBAAoC,EACpC,gBAAoC,EACpC,mBAAwC;QALxC,aAAQ,GAAR,QAAQ,CAAQ;QAChB,UAAK,GAAL,KAAK,CAAyB;QAC9B,UAAK,GAAL,KAAK,CAAO;QACZ,qBAAgB,GAAhB,gBAAgB,CAAoB;QACpC,qBAAgB,GAAhB,gBAAgB,CAAoB;QACpC,wBAAmB,GAAnB,mBAAmB,CAAqB;QAPzC,SAAI,0CAAkC;IAStD,CAAC;IACM,MAAM,CAAC,KAAkB;QAC/B,OAAO,CAAC,KAAK,CAAC,IAAI,2CAAmC,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC;IACtF,CAAC;IACM,oBAAoB,CAAC,UAAuB,EAAE,cAAwB;QAC5E,OAAO,CAAC,UAAU,CAAC,IAAI,2CAAmC,IAAI,IAAI,CAAC,KAAK,KAAK,UAAU,CAAC,KAAK,CAAC,CAAC;IAChG,CAAC;CACD;AA+DD;;GAEG;AACH,MAAM,OAAO,kBAAkB;IAE9B,YAA4B,kBAA2C,EAAmB,WAAyB;QAAvF,uBAAkB,GAAlB,kBAAkB,CAAyB;QAAmB,gBAAW,GAAX,WAAW,CAAc;IAAI,CAAC;IAExH,OAAO;QACN,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;QAChB,CAAC;QACD,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC;IAC7B,CAAC;CACD;AAiBD,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,IAAI,MAAM,wBAAwB;IAA9B;QAE5C,kBAAa,GAAkC,EAAE,CAAC;IAUnD,CAAC;IARO,QAAQ,CAAoC,IAAkF;QACpI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAmC,CAAC,CAAC;IAC9D,CAAC;IAEM,MAAM;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC;IAC3B,CAAC;CAED,EAAE,CAAC,CAAC","file":"hoverTypes.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 { Dimension } from '../../../../base/browser/dom.js';\nimport { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { IDisposable } from '../../../../base/common/lifecycle.js';\nimport { ScrollEvent } from '../../../../base/common/scrollable.js';\nimport { BrandedService, IConstructorSignature } from '../../../../platform/instantiation/common/instantiation.js';\nimport { ICodeEditor, IEditorMouseEvent } from '../../../browser/editorBrowser.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { IModelDecoration } from '../../../common/model.js';\nimport { HoverStartSource } from './hoverOperation.js';\n\nexport interface IHoverPart {\n\t/**\n\t * The creator of this hover part.\n\t */\n\treadonly owner: IEditorHoverParticipant;\n\t/**\n\t * The range where this hover part applies.\n\t */\n\treadonly range: Range;\n\t/**\n\t * Force the hover to always be rendered at this specific range,\n\t * even in the case of multiple hover parts.\n\t */\n\treadonly forceShowAtRange?: boolean;\n\n\t/**\n\t * If true, the hover item should appear before content\n\t */\n\treadonly isBeforeContent?: boolean;\n\t/**\n\t * Is this hover part still valid for this new anchor?\n\t */\n\tisValidForHoverAnchor(anchor: HoverAnchor): boolean;\n}\n\nexport const enum HoverAnchorType {\n\tRange = 1,\n\tForeignElement = 2\n}\n\nexport class HoverRangeAnchor {\n\tpublic readonly type = HoverAnchorType.Range;\n\tconstructor(\n\t\tpublic readonly priority: number,\n\t\tpublic readonly range: Range,\n\t\tpublic readonly initialMousePosX: number | undefined,\n\t\tpublic readonly initialMousePosY: number | undefined,\n\t) {\n\t}\n\tpublic equals(other: HoverAnchor) {\n\t\treturn (other.type === HoverAnchorType.Range && this.range.equalsRange(other.range));\n\t}\n\tpublic canAdoptVisibleHover(lastAnchor: HoverAnchor, showAtPosition: Position): boolean {\n\t\treturn (lastAnchor.type === HoverAnchorType.Range && showAtPosition.lineNumber === this.range.startLineNumber);\n\t}\n}\n\nexport class HoverForeignElementAnchor {\n\tpublic readonly type = HoverAnchorType.ForeignElement;\n\tconstructor(\n\t\tpublic readonly priority: number,\n\t\tpublic readonly owner: IEditorHoverParticipant,\n\t\tpublic readonly range: Range,\n\t\tpublic readonly initialMousePosX: number | undefined,\n\t\tpublic readonly initialMousePosY: number | undefined,\n\t\tpublic readonly supportsMarkerHover: boolean | undefined\n\t) {\n\t}\n\tpublic equals(other: HoverAnchor) {\n\t\treturn (other.type === HoverAnchorType.ForeignElement && this.owner === other.owner);\n\t}\n\tpublic canAdoptVisibleHover(lastAnchor: HoverAnchor, showAtPosition: Position): boolean {\n\t\treturn (lastAnchor.type === HoverAnchorType.ForeignElement && this.owner === lastAnchor.owner);\n\t}\n}\n\nexport type HoverAnchor = HoverRangeAnchor | HoverForeignElementAnchor;\n\nexport interface IEditorHoverStatusBar {\n\taddAction(actionOptions: { label: string; iconClass?: string; run: (target: HTMLElement) => void; commandId: string }): IEditorHoverAction;\n\tappend(element: HTMLElement): HTMLElement;\n}\n\nexport interface IEditorHoverAction {\n}\n\nexport interface IEditorHoverColorPickerWidget {\n}\n\nexport interface IEditorHoverContext {\n\t/**\n\t * The contents rendered inside the fragment have been changed, which means that the hover should relayout.\n\t */\n\tonContentsChanged(): void;\n\t/**\n\t * Set the minimum dimensions of the resizable hover\n\t */\n\tsetMinimumDimensions(dimensions: Dimension): void;\n\t/**\n\t * Hide the hover.\n\t */\n\thide(): void;\n\t/**\n\t * Focus the hover.\n\t */\n\tfocus(): void;\n}\n\nexport interface IEditorHoverRenderContext extends IEditorHoverContext {\n\t/**\n\t * The fragment where dom elements should be attached.\n\t */\n\treadonly fragment: DocumentFragment;\n\t/**\n\t * The status bar for actions for this hover.\n\t */\n\treadonly statusBar: IEditorHoverStatusBar;\n}\n\nexport interface IRenderedHoverPart<T extends IHoverPart> extends IDisposable {\n\t/**\n\t * The rendered hover part.\n\t */\n\thoverPart: T;\n\t/**\n\t * The HTML element containing the hover part.\n\t */\n\thoverElement: HTMLElement;\n}\n\nexport interface IRenderedHoverParts<T extends IHoverPart> extends IDisposable {\n\t/**\n\t * Array of rendered hover parts.\n\t */\n\trenderedHoverParts: IRenderedHoverPart<T>[];\n}\n\n/**\n * Default implementation of IRenderedHoverParts.\n */\nexport class RenderedHoverParts<T extends IHoverPart> implements IRenderedHoverParts<T> {\n\n\tconstructor(public readonly renderedHoverParts: IRenderedHoverPart<T>[], private readonly disposables?: IDisposable) { }\n\n\tdispose() {\n\t\tfor (const part of this.renderedHoverParts) {\n\t\t\tpart.dispose();\n\t\t}\n\t\tthis.disposables?.dispose();\n\t}\n}\n\nexport interface IEditorHoverParticipant<T extends IHoverPart = IHoverPart> {\n\treadonly hoverOrdinal: number;\n\tsuggestHoverAnchor?(mouseEvent: IEditorMouseEvent): HoverAnchor | null;\n\tcomputeSync(anchor: HoverAnchor, lineDecorations: IModelDecoration[], source: HoverStartSource): T[];\n\tcomputeAsync?(anchor: HoverAnchor, lineDecorations: IModelDecoration[], source: HoverStartSource, token: CancellationToken): AsyncIterable<T>;\n\tcreateLoadingMessage?(anchor: HoverAnchor): T | null;\n\trenderHoverParts(context: IEditorHoverRenderContext, hoverParts: T[]): IRenderedHoverParts<T>;\n\thandleResize?(): void;\n\thandleHide?(): void;\n\thandleContentsChanged?(): void;\n\thandleScroll?(e: ScrollEvent): void;\n}\n\nexport type IEditorHoverParticipantCtor = IConstructorSignature<IEditorHoverParticipant, [ICodeEditor]>;\n\nexport const HoverParticipantRegistry = (new class HoverParticipantRegistry {\n\n\t_participants: IEditorHoverParticipantCtor[] = [];\n\n\tpublic register<Services extends BrandedService[]>(ctor: { new(editor: ICodeEditor, ...services: Services): IEditorHoverParticipant }): void {\n\t\tthis._participants.push(ctor as IEditorHoverParticipantCtor);\n\t}\n\n\tpublic getAll(): IEditorHoverParticipantCtor[] {\n\t\treturn this._participants;\n\t}\n\n}());\n\nexport interface IHoverWidget {\n\t/**\n\t * Returns whether the hover widget is shown or should show in the future.\n\t * If the widget should show, this triggers the display.\n\t * @param mouseEvent editor mouse event\n\t */\n\tshowsOrWillShow(mouseEvent: IEditorMouseEvent): boolean;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { Dimension } from '../../../../base/browser/dom.js';\nimport { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { IDisposable } from '../../../../base/common/lifecycle.js';\nimport { ScrollEvent } from '../../../../base/common/scrollable.js';\nimport { BrandedService, IConstructorSignature } from '../../../../platform/instantiation/common/instantiation.js';\nimport { ICodeEditor, IEditorMouseEvent } from '../../../browser/editorBrowser.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { IModelDecoration } from '../../../common/model.js';\nimport { HoverStartSource } from './hoverOperation.js';\n\nexport interface IHoverPart {\n\t/**\n\t * The creator of this hover part.\n\t */\n\treadonly owner: IEditorHoverParticipant;\n\t/**\n\t * The range where this hover part applies.\n\t */\n\treadonly range: Range;\n\t/**\n\t * Force the hover to always be rendered at this specific range,\n\t * even in the case of multiple hover parts.\n\t */\n\treadonly forceShowAtRange?: boolean;\n\n\t/**\n\t * If true, the hover item should appear before content\n\t */\n\treadonly isBeforeContent?: boolean;\n\t/**\n\t * Is this hover part still valid for this new anchor?\n\t */\n\tisValidForHoverAnchor(anchor: HoverAnchor): boolean;\n}\n\nexport const enum HoverAnchorType {\n\tRange = 1,\n\tForeignElement = 2\n}\n\nexport class HoverRangeAnchor {\n\tpublic readonly type = HoverAnchorType.Range;\n\tconstructor(\n\t\tpublic readonly priority: number,\n\t\tpublic readonly range: Range,\n\t\tpublic readonly initialMousePosX: number | undefined,\n\t\tpublic readonly initialMousePosY: number | undefined,\n\t) {\n\t}\n\tpublic equals(other: HoverAnchor) {\n\t\treturn (other.type === HoverAnchorType.Range && this.range.equalsRange(other.range));\n\t}\n\tpublic canAdoptVisibleHover(lastAnchor: HoverAnchor, showAtPosition: Position): boolean {\n\t\treturn (lastAnchor.type === HoverAnchorType.Range && showAtPosition.lineNumber === this.range.startLineNumber);\n\t}\n}\n\nexport class HoverForeignElementAnchor {\n\tpublic readonly type = HoverAnchorType.ForeignElement;\n\tconstructor(\n\t\tpublic readonly priority: number,\n\t\tpublic readonly owner: IEditorHoverParticipant,\n\t\tpublic readonly range: Range,\n\t\tpublic readonly initialMousePosX: number | undefined,\n\t\tpublic readonly initialMousePosY: number | undefined,\n\t\tpublic readonly supportsMarkerHover: boolean | undefined\n\t) {\n\t}\n\tpublic equals(other: HoverAnchor) {\n\t\treturn (other.type === HoverAnchorType.ForeignElement && this.owner === other.owner);\n\t}\n\tpublic canAdoptVisibleHover(lastAnchor: HoverAnchor, showAtPosition: Position): boolean {\n\t\treturn (lastAnchor.type === HoverAnchorType.ForeignElement && this.owner === lastAnchor.owner);\n\t}\n}\n\nexport type HoverAnchor = HoverRangeAnchor | HoverForeignElementAnchor;\n\nexport interface IEditorHoverStatusBar {\n\taddAction(actionOptions: { label: string; iconClass?: string; run: (target: HTMLElement) => void; commandId: string }): IEditorHoverAction;\n\tappend(element: HTMLElement): HTMLElement;\n}\n\nexport interface IEditorHoverAction {\n}\n\nexport interface IEditorHoverColorPickerWidget {\n}\n\nexport interface IEditorHoverContext {\n\t/**\n\t * The contents rendered inside the fragment have been changed, which means that the hover should relayout.\n\t */\n\tonContentsChanged(): void;\n\t/**\n\t * Set the minimum dimensions of the resizable hover\n\t */\n\tsetMinimumDimensions(dimensions: Dimension): void;\n\t/**\n\t * Hide the hover.\n\t */\n\thide(): void;\n\t/**\n\t * Focus the hover.\n\t */\n\tfocus(): void;\n}\n\nexport interface IEditorHoverRenderContext extends IEditorHoverContext {\n\t/**\n\t * The fragment where dom elements should be attached.\n\t */\n\treadonly fragment: DocumentFragment;\n\t/**\n\t * The status bar for actions for this hover.\n\t */\n\treadonly statusBar: IEditorHoverStatusBar;\n}\n\nexport interface IRenderedHoverPart<T extends IHoverPart> extends IDisposable {\n\t/**\n\t * The rendered hover part.\n\t */\n\thoverPart: T;\n\t/**\n\t * The HTML element containing the hover part.\n\t */\n\thoverElement: HTMLElement;\n}\n\nexport interface IRenderedHoverParts<T extends IHoverPart> extends IDisposable {\n\t/**\n\t * Array of rendered hover parts.\n\t */\n\trenderedHoverParts: IRenderedHoverPart<T>[];\n}\n\n/**\n * Default implementation of IRenderedHoverParts.\n */\nexport class RenderedHoverParts<T extends IHoverPart> implements IRenderedHoverParts<T> {\n\n\tconstructor(public readonly renderedHoverParts: IRenderedHoverPart<T>[], private readonly disposables?: IDisposable) { }\n\n\tdispose() {\n\t\tfor (const part of this.renderedHoverParts) {\n\t\t\tpart.dispose();\n\t\t}\n\t\tthis.disposables?.dispose();\n\t}\n}\n\nexport interface IEditorHoverParticipant<T extends IHoverPart = IHoverPart> {\n\treadonly hoverOrdinal: number;\n\tsuggestHoverAnchor?(mouseEvent: IEditorMouseEvent): HoverAnchor | null;\n\tcomputeSync(anchor: HoverAnchor, lineDecorations: IModelDecoration[], source: HoverStartSource): T[];\n\tcomputeAsync?(anchor: HoverAnchor, lineDecorations: IModelDecoration[], source: HoverStartSource, token: CancellationToken): AsyncIterable<T>;\n\tcreateLoadingMessage?(anchor: HoverAnchor): T | null;\n\trenderHoverParts(context: IEditorHoverRenderContext, hoverParts: T[]): IRenderedHoverParts<T>;\n\thandleResize?(): void;\n\thandleHide?(): void;\n\thandleContentsChanged?(): void;\n\thandleScroll?(e: ScrollEvent): void;\n}\n\nexport type IEditorHoverParticipantCtor = IConstructorSignature<IEditorHoverParticipant, [ICodeEditor]>;\n\nexport const HoverParticipantRegistry = (new class HoverParticipantRegistry {\n\n\t_participants: IEditorHoverParticipantCtor[] = [];\n\n\tpublic register<Services extends BrandedService[]>(ctor: { new(editor: ICodeEditor, ...services: Services): IEditorHoverParticipant }): void {\n\t\tthis._participants.push(ctor as IEditorHoverParticipantCtor);\n\t}\n\n\tpublic getAll(): IEditorHoverParticipantCtor[] {\n\t\treturn this._participants;\n\t}\n\n}());\n\nexport interface IHoverWidget {\n\t/**\n\t * Returns whether the hover widget is shown or should show in the future.\n\t * If the widget should show, this triggers the display.\n\t * @param mouseEvent editor mouse event\n\t */\n\tshowsOrWillShow(mouseEvent: IEditorMouseEvent): boolean;\n}\n"]}
1
+ {"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/contrib/hover/browser/hoverTypes.ts","vs/editor/contrib/hover/browser/hoverTypes.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AA2ChG,MAAM,OAAO,gBAAgB;IAE5B,YACiB,QAAgB,EAChB,KAAY,EACZ,gBAAoC,EACpC,gBAAoC;QAHpC,aAAQ,GAAR,QAAQ,CAAQ;QAChB,UAAK,GAAL,KAAK,CAAO;QACZ,qBAAgB,GAAhB,gBAAgB,CAAoB;QACpC,qBAAgB,GAAhB,gBAAgB,CAAoB;QALrC,SAAI,iCAAyB;IAO7C,CAAC;IACM,MAAM,CAAC,KAAkB;QAC/B,OAAO,CAAC,KAAK,CAAC,IAAI,kCAA0B,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACtF,CAAC;IACM,oBAAoB,CAAC,UAAuB,EAAE,cAAwB;QAC5E,OAAO,CAAC,UAAU,CAAC,IAAI,kCAA0B,IAAI,cAAc,CAAC,UAAU,KAAK,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAChH,CAAC;CACD;AAED,MAAM,OAAO,yBAAyB;IAErC,YACiB,QAAgB,EAChB,KAA8B,EAC9B,KAAY,EACZ,gBAAoC,EACpC,gBAAoC,EACpC,mBAAwC;QALxC,aAAQ,GAAR,QAAQ,CAAQ;QAChB,UAAK,GAAL,KAAK,CAAyB;QAC9B,UAAK,GAAL,KAAK,CAAO;QACZ,qBAAgB,GAAhB,gBAAgB,CAAoB;QACpC,qBAAgB,GAAhB,gBAAgB,CAAoB;QACpC,wBAAmB,GAAnB,mBAAmB,CAAqB;QAPzC,SAAI,0CAAkC;IAStD,CAAC;IACM,MAAM,CAAC,KAAkB;QAC/B,OAAO,CAAC,KAAK,CAAC,IAAI,2CAAmC,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC;IACtF,CAAC;IACM,oBAAoB,CAAC,UAAuB,EAAE,cAAwB;QAC5E,OAAO,CAAC,UAAU,CAAC,IAAI,2CAAmC,IAAI,IAAI,CAAC,KAAK,KAAK,UAAU,CAAC,KAAK,CAAC,CAAC;IAChG,CAAC;CACD;AA+DD;;GAEG;AACH,MAAM,OAAO,kBAAkB;IAE9B,YAA4B,kBAA2C,EAAmB,WAAyB;QAAvF,uBAAkB,GAAlB,kBAAkB,CAAyB;QAAmB,gBAAW,GAAX,WAAW,CAAc;IAAI,CAAC;IAExH,OAAO;QACN,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;QAChB,CAAC;QACD,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC;IAC7B,CAAC;CACD;AAkBD,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,IAAI,MAAM,wBAAwB;IAA9B;QAE5C,kBAAa,GAAkC,EAAE,CAAC;IAUnD,CAAC;IARO,QAAQ,CAAoC,IAAkF;QACpI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAmC,CAAC,CAAC;IAC9D,CAAC;IAEM,MAAM;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC;IAC3B,CAAC;CAED,EAAE,CAAC,CAAC","file":"hoverTypes.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 { Dimension } from '../../../../base/browser/dom.js';\nimport { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { IDisposable } from '../../../../base/common/lifecycle.js';\nimport { ScrollEvent } from '../../../../base/common/scrollable.js';\nimport { BrandedService, IConstructorSignature } from '../../../../platform/instantiation/common/instantiation.js';\nimport { ICodeEditor, IEditorMouseEvent } from '../../../browser/editorBrowser.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { IModelDecoration } from '../../../common/model.js';\nimport { HoverStartSource } from './hoverOperation.js';\n\nexport interface IHoverPart {\n\t/**\n\t * The creator of this hover part.\n\t */\n\treadonly owner: IEditorHoverParticipant;\n\t/**\n\t * The range where this hover part applies.\n\t */\n\treadonly range: Range;\n\t/**\n\t * Force the hover to always be rendered at this specific range,\n\t * even in the case of multiple hover parts.\n\t */\n\treadonly forceShowAtRange?: boolean;\n\n\t/**\n\t * If true, the hover item should appear before content\n\t */\n\treadonly isBeforeContent?: boolean;\n\t/**\n\t * Is this hover part still valid for this new anchor?\n\t */\n\tisValidForHoverAnchor(anchor: HoverAnchor): boolean;\n}\n\nexport const enum HoverAnchorType {\n\tRange = 1,\n\tForeignElement = 2\n}\n\nexport class HoverRangeAnchor {\n\tpublic readonly type = HoverAnchorType.Range;\n\tconstructor(\n\t\tpublic readonly priority: number,\n\t\tpublic readonly range: Range,\n\t\tpublic readonly initialMousePosX: number | undefined,\n\t\tpublic readonly initialMousePosY: number | undefined,\n\t) {\n\t}\n\tpublic equals(other: HoverAnchor) {\n\t\treturn (other.type === HoverAnchorType.Range && this.range.equalsRange(other.range));\n\t}\n\tpublic canAdoptVisibleHover(lastAnchor: HoverAnchor, showAtPosition: Position): boolean {\n\t\treturn (lastAnchor.type === HoverAnchorType.Range && showAtPosition.lineNumber === this.range.startLineNumber);\n\t}\n}\n\nexport class HoverForeignElementAnchor {\n\tpublic readonly type = HoverAnchorType.ForeignElement;\n\tconstructor(\n\t\tpublic readonly priority: number,\n\t\tpublic readonly owner: IEditorHoverParticipant,\n\t\tpublic readonly range: Range,\n\t\tpublic readonly initialMousePosX: number | undefined,\n\t\tpublic readonly initialMousePosY: number | undefined,\n\t\tpublic readonly supportsMarkerHover: boolean | undefined\n\t) {\n\t}\n\tpublic equals(other: HoverAnchor) {\n\t\treturn (other.type === HoverAnchorType.ForeignElement && this.owner === other.owner);\n\t}\n\tpublic canAdoptVisibleHover(lastAnchor: HoverAnchor, showAtPosition: Position): boolean {\n\t\treturn (lastAnchor.type === HoverAnchorType.ForeignElement && this.owner === lastAnchor.owner);\n\t}\n}\n\nexport type HoverAnchor = HoverRangeAnchor | HoverForeignElementAnchor;\n\nexport interface IEditorHoverStatusBar {\n\taddAction(actionOptions: { label: string; iconClass?: string; run: (target: HTMLElement) => void; commandId: string }): IEditorHoverAction;\n\tappend(element: HTMLElement): HTMLElement;\n}\n\nexport interface IEditorHoverAction {\n}\n\nexport interface IEditorHoverColorPickerWidget {\n}\n\nexport interface IEditorHoverContext {\n\t/**\n\t * The contents rendered inside the fragment have been changed, which means that the hover should relayout.\n\t */\n\tonContentsChanged(): void;\n\t/**\n\t * Set the minimum dimensions of the resizable hover\n\t */\n\tsetMinimumDimensions(dimensions: Dimension): void;\n\t/**\n\t * Hide the hover.\n\t */\n\thide(): void;\n\t/**\n\t * Focus the hover.\n\t */\n\tfocus(): void;\n}\n\nexport interface IEditorHoverRenderContext extends IEditorHoverContext {\n\t/**\n\t * The fragment where dom elements should be attached.\n\t */\n\treadonly fragment: DocumentFragment;\n\t/**\n\t * The status bar for actions for this hover.\n\t */\n\treadonly statusBar: IEditorHoverStatusBar;\n}\n\nexport interface IRenderedHoverPart<T extends IHoverPart> extends IDisposable {\n\t/**\n\t * The rendered hover part.\n\t */\n\thoverPart: T;\n\t/**\n\t * The HTML element containing the hover part.\n\t */\n\thoverElement: HTMLElement;\n}\n\nexport interface IRenderedHoverParts<T extends IHoverPart> extends IDisposable {\n\t/**\n\t * Array of rendered hover parts.\n\t */\n\trenderedHoverParts: IRenderedHoverPart<T>[];\n}\n\n/**\n * Default implementation of IRenderedHoverParts.\n */\nexport class RenderedHoverParts<T extends IHoverPart> implements IRenderedHoverParts<T> {\n\n\tconstructor(public readonly renderedHoverParts: IRenderedHoverPart<T>[], private readonly disposables?: IDisposable) { }\n\n\tdispose() {\n\t\tfor (const part of this.renderedHoverParts) {\n\t\t\tpart.dispose();\n\t\t}\n\t\tthis.disposables?.dispose();\n\t}\n}\n\nexport interface IEditorHoverParticipant<T extends IHoverPart = IHoverPart> {\n\treadonly hoverOrdinal: number;\n\tsuggestHoverAnchor?(mouseEvent: IEditorMouseEvent): HoverAnchor | null;\n\tcomputeSync(anchor: HoverAnchor, lineDecorations: IModelDecoration[], source: HoverStartSource): T[];\n\tcomputeAsync?(anchor: HoverAnchor, lineDecorations: IModelDecoration[], source: HoverStartSource, token: CancellationToken): AsyncIterable<T>;\n\tcreateLoadingMessage?(anchor: HoverAnchor): T | null;\n\trenderHoverParts(context: IEditorHoverRenderContext, hoverParts: T[]): IRenderedHoverParts<T>;\n\tgetAccessibleContent(hoverPart: T): string;\n\thandleResize?(): void;\n\thandleHide?(): void;\n\thandleContentsChanged?(): void;\n\thandleScroll?(e: ScrollEvent): void;\n}\n\nexport type IEditorHoverParticipantCtor = IConstructorSignature<IEditorHoverParticipant, [ICodeEditor]>;\n\nexport const HoverParticipantRegistry = (new class HoverParticipantRegistry {\n\n\t_participants: IEditorHoverParticipantCtor[] = [];\n\n\tpublic register<Services extends BrandedService[]>(ctor: { new(editor: ICodeEditor, ...services: Services): IEditorHoverParticipant }): void {\n\t\tthis._participants.push(ctor as IEditorHoverParticipantCtor);\n\t}\n\n\tpublic getAll(): IEditorHoverParticipantCtor[] {\n\t\treturn this._participants;\n\t}\n\n}());\n\nexport interface IHoverWidget {\n\t/**\n\t * Returns whether the hover widget is shown or should show in the future.\n\t * If the widget should show, this triggers the display.\n\t * @param mouseEvent editor mouse event\n\t */\n\tshowsOrWillShow(mouseEvent: IEditorMouseEvent): boolean;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { Dimension } from '../../../../base/browser/dom.js';\nimport { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { IDisposable } from '../../../../base/common/lifecycle.js';\nimport { ScrollEvent } from '../../../../base/common/scrollable.js';\nimport { BrandedService, IConstructorSignature } from '../../../../platform/instantiation/common/instantiation.js';\nimport { ICodeEditor, IEditorMouseEvent } from '../../../browser/editorBrowser.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { IModelDecoration } from '../../../common/model.js';\nimport { HoverStartSource } from './hoverOperation.js';\n\nexport interface IHoverPart {\n\t/**\n\t * The creator of this hover part.\n\t */\n\treadonly owner: IEditorHoverParticipant;\n\t/**\n\t * The range where this hover part applies.\n\t */\n\treadonly range: Range;\n\t/**\n\t * Force the hover to always be rendered at this specific range,\n\t * even in the case of multiple hover parts.\n\t */\n\treadonly forceShowAtRange?: boolean;\n\n\t/**\n\t * If true, the hover item should appear before content\n\t */\n\treadonly isBeforeContent?: boolean;\n\t/**\n\t * Is this hover part still valid for this new anchor?\n\t */\n\tisValidForHoverAnchor(anchor: HoverAnchor): boolean;\n}\n\nexport const enum HoverAnchorType {\n\tRange = 1,\n\tForeignElement = 2\n}\n\nexport class HoverRangeAnchor {\n\tpublic readonly type = HoverAnchorType.Range;\n\tconstructor(\n\t\tpublic readonly priority: number,\n\t\tpublic readonly range: Range,\n\t\tpublic readonly initialMousePosX: number | undefined,\n\t\tpublic readonly initialMousePosY: number | undefined,\n\t) {\n\t}\n\tpublic equals(other: HoverAnchor) {\n\t\treturn (other.type === HoverAnchorType.Range && this.range.equalsRange(other.range));\n\t}\n\tpublic canAdoptVisibleHover(lastAnchor: HoverAnchor, showAtPosition: Position): boolean {\n\t\treturn (lastAnchor.type === HoverAnchorType.Range && showAtPosition.lineNumber === this.range.startLineNumber);\n\t}\n}\n\nexport class HoverForeignElementAnchor {\n\tpublic readonly type = HoverAnchorType.ForeignElement;\n\tconstructor(\n\t\tpublic readonly priority: number,\n\t\tpublic readonly owner: IEditorHoverParticipant,\n\t\tpublic readonly range: Range,\n\t\tpublic readonly initialMousePosX: number | undefined,\n\t\tpublic readonly initialMousePosY: number | undefined,\n\t\tpublic readonly supportsMarkerHover: boolean | undefined\n\t) {\n\t}\n\tpublic equals(other: HoverAnchor) {\n\t\treturn (other.type === HoverAnchorType.ForeignElement && this.owner === other.owner);\n\t}\n\tpublic canAdoptVisibleHover(lastAnchor: HoverAnchor, showAtPosition: Position): boolean {\n\t\treturn (lastAnchor.type === HoverAnchorType.ForeignElement && this.owner === lastAnchor.owner);\n\t}\n}\n\nexport type HoverAnchor = HoverRangeAnchor | HoverForeignElementAnchor;\n\nexport interface IEditorHoverStatusBar {\n\taddAction(actionOptions: { label: string; iconClass?: string; run: (target: HTMLElement) => void; commandId: string }): IEditorHoverAction;\n\tappend(element: HTMLElement): HTMLElement;\n}\n\nexport interface IEditorHoverAction {\n}\n\nexport interface IEditorHoverColorPickerWidget {\n}\n\nexport interface IEditorHoverContext {\n\t/**\n\t * The contents rendered inside the fragment have been changed, which means that the hover should relayout.\n\t */\n\tonContentsChanged(): void;\n\t/**\n\t * Set the minimum dimensions of the resizable hover\n\t */\n\tsetMinimumDimensions(dimensions: Dimension): void;\n\t/**\n\t * Hide the hover.\n\t */\n\thide(): void;\n\t/**\n\t * Focus the hover.\n\t */\n\tfocus(): void;\n}\n\nexport interface IEditorHoverRenderContext extends IEditorHoverContext {\n\t/**\n\t * The fragment where dom elements should be attached.\n\t */\n\treadonly fragment: DocumentFragment;\n\t/**\n\t * The status bar for actions for this hover.\n\t */\n\treadonly statusBar: IEditorHoverStatusBar;\n}\n\nexport interface IRenderedHoverPart<T extends IHoverPart> extends IDisposable {\n\t/**\n\t * The rendered hover part.\n\t */\n\thoverPart: T;\n\t/**\n\t * The HTML element containing the hover part.\n\t */\n\thoverElement: HTMLElement;\n}\n\nexport interface IRenderedHoverParts<T extends IHoverPart> extends IDisposable {\n\t/**\n\t * Array of rendered hover parts.\n\t */\n\trenderedHoverParts: IRenderedHoverPart<T>[];\n}\n\n/**\n * Default implementation of IRenderedHoverParts.\n */\nexport class RenderedHoverParts<T extends IHoverPart> implements IRenderedHoverParts<T> {\n\n\tconstructor(public readonly renderedHoverParts: IRenderedHoverPart<T>[], private readonly disposables?: IDisposable) { }\n\n\tdispose() {\n\t\tfor (const part of this.renderedHoverParts) {\n\t\t\tpart.dispose();\n\t\t}\n\t\tthis.disposables?.dispose();\n\t}\n}\n\nexport interface IEditorHoverParticipant<T extends IHoverPart = IHoverPart> {\n\treadonly hoverOrdinal: number;\n\tsuggestHoverAnchor?(mouseEvent: IEditorMouseEvent): HoverAnchor | null;\n\tcomputeSync(anchor: HoverAnchor, lineDecorations: IModelDecoration[], source: HoverStartSource): T[];\n\tcomputeAsync?(anchor: HoverAnchor, lineDecorations: IModelDecoration[], source: HoverStartSource, token: CancellationToken): AsyncIterable<T>;\n\tcreateLoadingMessage?(anchor: HoverAnchor): T | null;\n\trenderHoverParts(context: IEditorHoverRenderContext, hoverParts: T[]): IRenderedHoverParts<T>;\n\tgetAccessibleContent(hoverPart: T): string;\n\thandleResize?(): void;\n\thandleHide?(): void;\n\thandleContentsChanged?(): void;\n\thandleScroll?(e: ScrollEvent): void;\n}\n\nexport type IEditorHoverParticipantCtor = IConstructorSignature<IEditorHoverParticipant, [ICodeEditor]>;\n\nexport const HoverParticipantRegistry = (new class HoverParticipantRegistry {\n\n\t_participants: IEditorHoverParticipantCtor[] = [];\n\n\tpublic register<Services extends BrandedService[]>(ctor: { new(editor: ICodeEditor, ...services: Services): IEditorHoverParticipant }): void {\n\t\tthis._participants.push(ctor as IEditorHoverParticipantCtor);\n\t}\n\n\tpublic getAll(): IEditorHoverParticipantCtor[] {\n\t\treturn this._participants;\n\t}\n\n}());\n\nexport interface IHoverWidget {\n\t/**\n\t * Returns whether the hover widget is shown or should show in the future.\n\t * If the widget should show, this triggers the display.\n\t * @param mouseEvent editor mouse event\n\t */\n\tshowsOrWillShow(mouseEvent: IEditorMouseEvent): boolean;\n}\n"]}
@@ -35,8 +35,8 @@ import { AsyncIterableProducer } from '../../../../base/common/async.js';
35
35
  import { getHoverProviderResultsAsAsyncIterable } from './getHover.js';
36
36
  import { ICommandService } from '../../../../platform/commands/common/commands.js';
37
37
  const $ = dom.$;
38
- const increaseHoverVerbosityIcon = registerIcon('hover-increase-verbosity', Codicon.add, nls.localize(1127, 'Icon for increaseing hover verbosity.'));
39
- const decreaseHoverVerbosityIcon = registerIcon('hover-decrease-verbosity', Codicon.remove, nls.localize(1128, 'Icon for decreasing hover verbosity.'));
38
+ const increaseHoverVerbosityIcon = registerIcon('hover-increase-verbosity', Codicon.add, nls.localize(1129, 'Icon for increaseing hover verbosity.'));
39
+ const decreaseHoverVerbosityIcon = registerIcon('hover-decrease-verbosity', Codicon.remove, nls.localize(1130, 'Icon for decreasing hover verbosity.'));
40
40
  export class MarkdownHover {
41
41
  constructor(owner, range, contents, isBeforeContent, ordinal, source = undefined) {
42
42
  this.owner = owner;
@@ -79,7 +79,7 @@ let MarkdownHoverParticipant = class MarkdownHoverParticipant {
79
79
  this.hoverOrdinal = 3;
80
80
  }
81
81
  createLoadingMessage(anchor) {
82
- return new MarkdownHover(this, anchor.range, [new MarkdownString().appendText(nls.localize(1129, "Loading..."))], false, 2000);
82
+ return new MarkdownHover(this, anchor.range, [new MarkdownString().appendText(nls.localize(1131, "Loading..."))], false, 2000);
83
83
  }
84
84
  computeSync(anchor, lineDecorations) {
85
85
  if (!this._editor.hasModel() || anchor.type !== 1 /* HoverAnchorType.Range */) {
@@ -100,12 +100,12 @@ let MarkdownHoverParticipant = class MarkdownHoverParticipant {
100
100
  if (stopRenderingLineAfter >= 0 && lineLength > stopRenderingLineAfter && anchor.range.startColumn >= stopRenderingLineAfter) {
101
101
  stopRenderingMessage = true;
102
102
  result.push(new MarkdownHover(this, anchor.range, [{
103
- value: nls.localize(1130, "Rendering paused for long line for performance reasons. This can be configured via `editor.stopRenderingLineAfter`.")
103
+ value: nls.localize(1132, "Rendering paused for long line for performance reasons. This can be configured via `editor.stopRenderingLineAfter`.")
104
104
  }], false, index++));
105
105
  }
106
106
  if (!stopRenderingMessage && typeof maxTokenizationLineLength === 'number' && lineLength >= maxTokenizationLineLength) {
107
107
  result.push(new MarkdownHover(this, anchor.range, [{
108
- value: nls.localize(1131, "Tokenization is skipped for long lines for performance reasons. This can be configured via `editor.maxTokenizationLineLength`.")
108
+ value: nls.localize(1133, "Tokenization is skipped for long lines for performance reasons. This can be configured via `editor.maxTokenizationLineLength`.")
109
109
  }], false, index++));
110
110
  }
111
111
  let isBeforeContent = false;
@@ -153,6 +153,9 @@ let MarkdownHoverParticipant = class MarkdownHoverParticipant {
153
153
  handleScroll(e) {
154
154
  this._renderedHoverParts?.handleScroll(e);
155
155
  }
156
+ getAccessibleContent(hoverPart) {
157
+ return this._renderedHoverParts?.getAccessibleContent(hoverPart) ?? '';
158
+ }
156
159
  updateMarkdownHoverVerbosityLevel(action, index) {
157
160
  return Promise.resolve(this._renderedHoverParts?.updateMarkdownHoverPartVerbosityLevel(action, index));
158
161
  }
@@ -299,6 +302,19 @@ class MarkdownRenderedHoverParts {
299
302
  hoverElement: newHoverRenderedPart.hoverElement
300
303
  };
301
304
  }
305
+ getAccessibleContent(hoverPart) {
306
+ const renderedHoverPartIndex = this.renderedHoverParts.findIndex(renderedHoverPart => renderedHoverPart.hoverPart === hoverPart);
307
+ if (renderedHoverPartIndex === -1) {
308
+ return undefined;
309
+ }
310
+ const renderedHoverPart = this._getRenderedHoverPartAtIndex(renderedHoverPartIndex);
311
+ if (!renderedHoverPart) {
312
+ return undefined;
313
+ }
314
+ const hoverElementInnerText = renderedHoverPart.hoverElement.innerText;
315
+ const accessibleContent = hoverElementInnerText.replace(/[^\S\n\r]+/gu, ' ');
316
+ return accessibleContent;
317
+ }
302
318
  async _fetchHover(hoverSource, model, action) {
303
319
  let verbosityDelta = action === HoverVerbosityAction.Increase ? 1 : -1;
304
320
  const provider = hoverSource.hoverProvider;
@@ -388,14 +404,14 @@ export function labelForHoverVerbosityAction(keybindingService, action) {
388
404
  case HoverVerbosityAction.Increase: {
389
405
  const kb = keybindingService.lookupKeybinding(INCREASE_HOVER_VERBOSITY_ACTION_ID);
390
406
  return kb ?
391
- nls.localize(1132, "Increase Hover Verbosity ({0})", kb.getLabel()) :
392
- nls.localize(1133, "Increase Hover Verbosity");
407
+ nls.localize(1134, "Increase Hover Verbosity ({0})", kb.getLabel()) :
408
+ nls.localize(1135, "Increase Hover Verbosity");
393
409
  }
394
410
  case HoverVerbosityAction.Decrease: {
395
411
  const kb = keybindingService.lookupKeybinding(DECREASE_HOVER_VERBOSITY_ACTION_ID);
396
412
  return kb ?
397
- nls.localize(1134, "Decrease Hover Verbosity ({0})", kb.getLabel()) :
398
- nls.localize(1135, "Decrease Hover Verbosity");
413
+ nls.localize(1136, "Decrease Hover Verbosity ({0})", kb.getLabel()) :
414
+ nls.localize(1137, "Decrease Hover Verbosity");
399
415
  }
400
416
  }
401
417
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["vs/editor/contrib/hover/browser/markdownHoverParticipant.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;;;;;;;;;;AAEhG,OAAO,KAAK,GAAG,MAAM,iCAAiC,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACzF,OAAO,EAAqB,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AACrG,OAAO,EAAmB,qBAAqB,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAChH,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACrF,OAAO,EAAE,wBAAwB,EAAE,MAAM,2DAA2D,CAAC;AACrG,OAAO,EAAE,kCAAkC,EAAE,kCAAkC,EAAE,MAAM,qBAAqB,CAAC;AAG7G,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAEtD,OAAO,EAA2J,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC9M,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4DAA4D,CAAC;AACnG,OAAO,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAC;AAExF,OAAO,EAAsC,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACxG,OAAO,EAAE,YAAY,EAAE,MAAM,mDAAmD,CAAC;AACjF,OAAO,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sDAAsD,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAiB,aAAa,EAAE,MAAM,kDAAkD,CAAC;AAE7G,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AACpG,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAEzE,OAAO,EAAE,sCAAsC,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,kDAAkD,CAAC;AAInF,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AAChB,MAAM,0BAA0B,GAAG,YAAY,CAAC,0BAA0B,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAwB,EAAE,uCAAuC,CAAC,CAAC,CAAC;AAC1K,MAAM,0BAA0B,GAAG,YAAY,CAAC,0BAA0B,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAwB,EAAE,sCAAsC,CAAC,CAAC,CAAC;AAE5K,MAAM,OAAO,aAAa;IAEzB,YACiB,KAA6C,EAC7C,KAAY,EACZ,QAA2B,EAC3B,eAAwB,EACxB,OAAe,EACf,SAAkC,SAAS;QAL3C,UAAK,GAAL,KAAK,CAAwC;QAC7C,UAAK,GAAL,KAAK,CAAO;QACZ,aAAQ,GAAR,QAAQ,CAAmB;QAC3B,oBAAe,GAAf,eAAe,CAAS;QACxB,YAAO,GAAP,OAAO,CAAQ;QACf,WAAM,GAAN,MAAM,CAAqC;IACxD,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,WAAW;IAEhB,YACU,KAAY,EACZ,aAA4B,EAC5B,aAAuB;QAFvB,UAAK,GAAL,KAAK,CAAO;QACZ,kBAAa,GAAb,aAAa,CAAe;QAC5B,kBAAa,GAAb,aAAa,CAAU;IAC7B,CAAC;IAEE,uBAAuB,CAAC,oBAA0C;QACxE,QAAQ,oBAAoB,EAAE,CAAC;YAC9B,KAAK,oBAAoB,CAAC,QAAQ;gBACjC,OAAO,IAAI,CAAC,KAAK,CAAC,oBAAoB,IAAI,KAAK,CAAC;YACjD,KAAK,oBAAoB,CAAC,QAAQ;gBACjC,OAAO,IAAI,CAAC,KAAK,CAAC,oBAAoB,IAAI,KAAK,CAAC;QAClD,CAAC;IACF,CAAC;CACD;AAEM,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IAMpC,YACoB,OAAoB,EACb,wBAAmE,EACtE,qBAA6D,EAC1D,wBAAqE,EAC3E,kBAAuD,EAC5D,aAA6C,EAC3C,eAAiD;QAN/C,YAAO,GAAP,OAAO,CAAa;QACI,6BAAwB,GAAxB,wBAAwB,CAA0B;QACrD,0BAAqB,GAArB,qBAAqB,CAAuB;QACvC,6BAAwB,GAAxB,wBAAwB,CAA0B;QAC1D,uBAAkB,GAAlB,kBAAkB,CAAoB;QAC3C,kBAAa,GAAb,aAAa,CAAe;QAC1B,oBAAe,GAAf,eAAe,CAAiB;QAXnD,iBAAY,GAAW,CAAC,CAAC;IAYrC,CAAC;IAEE,oBAAoB,CAAC,MAAmB;QAC9C,OAAO,IAAI,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,IAAI,cAAc,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,IAA2B,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACvJ,CAAC;IAEM,WAAW,CAAC,MAAmB,EAAE,eAAmC;QAC1E,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,MAAM,CAAC,IAAI,kCAA0B,EAAE,CAAC;YACvE,OAAO,EAAE,CAAC;QACX,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtC,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC;QAChD,MAAM,SAAS,GAAG,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACrD,MAAM,MAAM,GAAoB,EAAE,CAAC;QAEnC,IAAI,KAAK,GAAG,IAAI,CAAC;QAEjB,MAAM,UAAU,GAAG,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACnD,MAAM,UAAU,GAAG,KAAK,CAAC,uBAAuB,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACzG,MAAM,sBAAsB,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,+CAAqC,CAAC;QAC3F,MAAM,yBAAyB,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAS,kCAAkC,EAAE;YACjH,kBAAkB,EAAE,UAAU;SAC9B,CAAC,CAAC;QACH,IAAI,oBAAoB,GAAG,KAAK,CAAC;QACjC,IAAI,sBAAsB,IAAI,CAAC,IAAI,UAAU,GAAG,sBAAsB,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,sBAAsB,EAAE,CAAC;YAC9H,oBAAoB,GAAG,IAAI,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;oBAClD,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAmB,EAAE,qHAAqH,CAAC;iBAC/J,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,oBAAoB,IAAI,OAAO,yBAAyB,KAAK,QAAQ,IAAI,UAAU,IAAI,yBAAyB,EAAE,CAAC;YACvH,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;oBAClD,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAqB,EAAE,gIAAgI,CAAC;iBAC5K,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QACtB,CAAC;QAED,IAAI,eAAe,GAAG,KAAK,CAAC;QAE5B,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,YAAY,GAAG,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;YAC5C,IAAI,CAAC,YAAY,IAAI,qBAAqB,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC1D,SAAS;YACV,CAAC;YAED,IAAI,CAAC,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC;gBACtC,eAAe,GAAG,IAAI,CAAC;YACxB,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,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAC9F,CAAC;QAED,OAAO,MAAM,CAAC;IACf,CAAC;IAEM,YAAY,CAAC,MAAmB,EAAE,eAAmC,EAAE,MAAwB,EAAE,KAAwB;QAC/H,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,MAAM,CAAC,IAAI,kCAA0B,EAAE,CAAC;YACvE,OAAO,qBAAqB,CAAC,KAAK,CAAC;QACpC,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QAEtC,MAAM,qBAAqB,GAAG,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC;QAC1E,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACvC,OAAO,qBAAqB,CAAC,KAAK,CAAC;QACpC,CAAC;QACD,OAAO,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC7E,CAAC;IAEO,KAAK,CAAC,CAAC,kBAAkB,CAAC,qBAA6D,EAAE,KAAiB,EAAE,MAAwB,EAAE,KAAwB;QACrK,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;QACjD,MAAM,oBAAoB,GAAG,sCAAsC,CAAC,qBAAqB,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QAEnH,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,oBAAoB,EAAE,CAAC;YAC/C,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACjD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC7E,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBACzE,MAAM,IAAI,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAC7F,CAAC;QACF,CAAC;IACF,CAAC;IAEM,gBAAgB,CAAC,OAAkC,EAAE,UAA2B;QACtF,IAAI,CAAC,mBAAmB,GAAG,IAAI,0BAA0B,CACxD,UAAU,EACV,OAAO,CAAC,QAAQ,EAChB,IAAI,EACJ,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,kBAAkB,EACvB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,qBAAqB,EAC1B,IAAI,CAAC,wBAAwB,EAC7B,OAAO,CAAC,iBAAiB,CACzB,CAAC;QACF,OAAO,IAAI,CAAC,mBAAmB,CAAC;IACjC,CAAC;IAEM,YAAY,CAAC,CAAc;QACjC,IAAI,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC;IAEM,iCAAiC,CAAC,MAA4B,EAAE,KAAa;QACnF,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,qCAAqC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IACxG,CAAC;CACD,CAAA;AA3HY,wBAAwB;IAQlC,WAAA,wBAAwB,CAAA;IACxB,WAAA,qBAAqB,CAAA;IACrB,WAAA,wBAAwB,CAAA;IACxB,WAAA,kBAAkB,CAAA;IAClB,WAAA,aAAa,CAAA;IACb,WAAA,eAAe,CAAA;GAbL,wBAAwB,CA2HpC;;AAED,MAAM,yBAAyB;IAE9B,YACiB,SAAwB,EACxB,YAAyB,EACzB,WAA4B,EAC5B,gBAA8B;QAH9B,cAAS,GAAT,SAAS,CAAe;QACxB,iBAAY,GAAZ,YAAY,CAAa;QACzB,gBAAW,GAAX,WAAW,CAAiB;QAC5B,qBAAgB,GAAhB,gBAAgB,CAAc;IAC3C,CAAC;IAEL,OAAO;QACN,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;CACD;AAED,MAAM,0BAA0B;IAQ/B,YACC,UAA2B,EAC3B,mBAAqC,EACpB,iBAA2C,EAC3C,OAAoB,EACpB,eAAgC,EAChC,kBAAsC,EACtC,aAA4B,EAC5B,qBAA4C,EAC5C,wBAAkD,EAClD,oBAAgC;QAPhC,sBAAiB,GAAjB,iBAAiB,CAA0B;QAC3C,YAAO,GAAP,OAAO,CAAa;QACpB,oBAAe,GAAf,eAAe,CAAiB;QAChC,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,kBAAa,GAAb,aAAa,CAAe;QAC5B,0BAAqB,GAArB,qBAAqB,CAAuB;QAC5C,6BAAwB,GAAxB,wBAAwB,CAA0B;QAClD,yBAAoB,GAApB,oBAAoB,CAAY;QAd1C,4BAAuB,GAAyF,IAAI,GAAG,EAAE,CAAC;QAEjH,iBAAY,GAAG,IAAI,eAAe,EAAE,CAAC;QAcrD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,mBAAmB,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC7G,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,EAAE;YACvC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE;gBACnD,iBAAiB,CAAC,OAAO,EAAE,CAAC;YAC7B,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;gBAChD,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,iBAAiB,CACxB,UAA2B,EAC3B,mBAAqC,EACrC,mBAA+B;QAE/B,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC;QACrE,OAAO,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;YACjC,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;YAChF,mBAAmB,CAAC,WAAW,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;YAChE,OAAO,iBAAiB,CAAC;QAC1B,CAAC,CAAC,CAAC;IACJ,CAAC;IAEO,gBAAgB,CACvB,SAAwB,EACxB,mBAA+B;QAG/B,MAAM,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;QACvF,MAAM,uBAAuB,GAAG,oBAAoB,CAAC,YAAY,CAAC;QAClE,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC;QACrC,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE,CAAC;QAC1C,WAAW,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAEtC,IAAI,CAAC,WAAW,EAAE,CAAC;YAClB,OAAO,IAAI,yBAAyB,CAAC,SAAS,EAAE,uBAAuB,EAAE,WAAW,CAAC,CAAC;QACvF,CAAC;QAED,MAAM,oBAAoB,GAAG,WAAW,CAAC,uBAAuB,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAChG,MAAM,oBAAoB,GAAG,WAAW,CAAC,uBAAuB,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAEhG,IAAI,CAAC,oBAAoB,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACpD,OAAO,IAAI,yBAAyB,CAAC,SAAS,EAAE,uBAAuB,EAAE,WAAW,CAAC,CAAC;QACvF,CAAC;QAED,MAAM,gBAAgB,GAAG,CAAC,CAAC,uBAAuB,CAAC,CAAC;QACpD,uBAAuB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAClD,MAAM,qBAAqB,GAAG,CAAC,CAAC,6BAA6B,CAAC,CAAC;QAC/D,gBAAgB,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAC/C,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,2BAA2B,CAAC,qBAAqB,EAAE,oBAAoB,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC,CAAC;QAC9H,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,2BAA2B,CAAC,qBAAqB,EAAE,oBAAoB,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC,CAAC;QAC9H,OAAO,IAAI,yBAAyB,CAAC,SAAS,EAAE,uBAAuB,EAAE,WAAW,EAAE,qBAAqB,CAAC,CAAC;IAC9G,CAAC;IAEO,oBAAoB,CAC3B,aAA4B,EAC5B,mBAA+B;QAE/B,MAAM,qBAAqB,GAAG,cAAc,CAC3C,IAAI,CAAC,OAAO,EACZ,aAAa,EACb,IAAI,CAAC,wBAAwB,EAC7B,mBAAmB,CACnB,CAAC;QACF,OAAO,qBAAqB,CAAC;IAC9B,CAAC;IAEO,2BAA2B,CAAC,SAAsB,EAAE,MAA4B,EAAE,aAAsB;QAC/G,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;QACpC,MAAM,gBAAgB,GAAG,MAAM,KAAK,oBAAoB,CAAC,QAAQ,CAAC;QAClE,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC;QACpJ,aAAa,CAAC,QAAQ,GAAG,CAAC,CAAC;QAC3B,MAAM,aAAa,GAAG,IAAI,sBAAsB,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,aAAa,4BAAoB,EAAE,EAAE,EAAE,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7L,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,aAAa,EAAE,aAAa,EAAE,4BAA4B,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QAC7I,IAAI,CAAC,aAAa,EAAE,CAAC;YACpB,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACxC,OAAO,KAAK,CAAC;QACd,CAAC;QACD,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvC,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,MAAM,KAAK,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,kCAAkC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACtM,KAAK,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC;QAC1D,KAAK,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,aAAa,EAAE,cAAc,EAAE,+CAA8B,CAAC,CAAC,CAAC;QAC5F,OAAO,KAAK,CAAC;IACd,CAAC;IAEM,YAAY,CAAC,CAAc;QACjC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE;YACnD,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,gBAAgB,CAAC;YACjE,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC5B,OAAO;YACR,CAAC;YACD,MAAM,YAAY,GAAG,iBAAiB,CAAC,YAAY,CAAC;YACpD,MAAM,wBAAwB,GAAG,CAAC,CAAC,SAAS,CAAC;YAC7C,MAAM,2BAA2B,GAAG,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;YACxE,MAAM,iBAAiB,GAAG,YAAY,CAAC,SAAS,CAAC;YACjD,MAAM,kBAAkB,GAAG,YAAY,CAAC,YAAY,CAAC;YACrD,MAAM,oBAAoB,GAAG,iBAAiB,GAAG,kBAAkB,CAAC;YACpE,MAAM,WAAW,GAAG,EAAE,CAAC;YACvB,IAAI,GAAW,CAAC;YAChB,IAAI,oBAAoB,IAAI,2BAA2B,IAAI,iBAAiB,IAAI,2BAA2B,EAAE,CAAC;gBAC7G,GAAG,GAAG,kBAAkB,GAAG,WAAW,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACP,GAAG,GAAG,2BAA2B,GAAG,iBAAiB,GAAG,WAAW,CAAC;YACrE,CAAC;YACD,qBAAqB,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;QAC9C,CAAC,CAAC,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,qCAAqC,CAAC,MAA4B,EAAE,KAAa;QAC7F,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtC,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,MAAM,iBAAiB,GAAG,IAAI,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC;QACnE,MAAM,WAAW,GAAG,iBAAiB,EAAE,SAAS,CAAC,MAAM,CAAC;QACxD,IAAI,CAAC,iBAAiB,IAAI,CAAC,WAAW,EAAE,uBAAuB,CAAC,MAAM,CAAC,EAAE,CAAC;YACzE,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACpE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,MAAM,cAAc,GAAG,IAAI,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAC,aAAa,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;QACvG,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,SAAS,CAAC;QACrD,MAAM,YAAY,GAAG,IAAI,aAAa,CACrC,IAAI,CAAC,iBAAiB,EACtB,gBAAgB,CAAC,KAAK,EACtB,QAAQ,CAAC,QAAQ,EACjB,gBAAgB,CAAC,eAAe,EAChC,gBAAgB,CAAC,OAAO,EACxB,cAAc,CACd,CAAC;QACF,MAAM,oBAAoB,GAAG,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAChF,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC3B,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,OAAO;YACN,SAAS,EAAE,YAAY;YACvB,YAAY,EAAE,oBAAoB,CAAC,YAAY;SAC/C,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,WAAwB,EAAE,KAAiB,EAAE,MAA4B;QAClG,IAAI,cAAc,GAAG,MAAM,KAAK,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAG,WAAW,CAAC,aAAa,CAAC;QAC3C,MAAM,qBAAqB,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzE,IAAI,qBAAqB,EAAE,CAAC;YAC3B,qBAAqB,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YAC3C,cAAc,IAAI,qBAAqB,CAAC,cAAc,CAAC;QACxD,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,uBAAuB,EAAE,CAAC;QAClD,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;QAC5E,MAAM,OAAO,GAAiB,EAAE,gBAAgB,EAAE,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,CAAC,KAAK,EAAE,EAAE,CAAC;QACzG,IAAI,KAA+B,CAAC;QACpC,IAAI,CAAC;YACJ,KAAK,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,aAAa,EAAE,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;QACpH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,yBAAyB,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC;QACD,WAAW,CAAC,OAAO,EAAE,CAAC;QACtB,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC9C,OAAO,KAAK,CAAC;IACd,CAAC;IAEO,wBAAwB,CAAC,KAAa,EAAE,SAAwB;QACvE,IAAI,KAAK,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YAC1D,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACtF,MAAM,wBAAwB,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAChE,MAAM,uBAAuB,GAAG,wBAAwB,CAAC,YAAY,CAAC;QACtE,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,YAAY,CAAC;QACxD,MAAM,wBAAwB,GAAG,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACvE,uBAAuB,CAAC,eAAe,CAAC,GAAG,wBAAwB,CAAC,CAAC;QACrE,MAAM,oBAAoB,GAAG,IAAI,yBAAyB,CACzD,SAAS,EACT,uBAAuB,EACvB,iBAAiB,CAAC,WAAW,EAC7B,iBAAiB,CAAC,gBAAgB,CAClC,CAAC;QACF,wBAAwB,CAAC,OAAO,EAAE,CAAC;QACnC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,oBAAoB,CAAC;QACtD,OAAO,oBAAoB,CAAC;IAC7B,CAAC;IAEO,4BAA4B,CAAC,KAAa;QACjD,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAEM,OAAO;QACb,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;CACD;AAED,MAAM,UAAU,oBAAoB,CACnC,OAAkC,EAClC,cAA+B,EAC/B,MAAmB,EACnB,uBAAiD;IAGjD,oFAAoF;IACpF,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACzE,MAAM,kBAAkB,GAAwC,EAAE,CAAC;IACnE,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;QAC5C,MAAM,iBAAiB,GAAG,cAAc,CACvC,MAAM,EACN,aAAa,EACb,uBAAuB,EACvB,OAAO,CAAC,iBAAiB,CACzB,CAAC;QACF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAC7D,kBAAkB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,IAAI,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,cAAc,CACtB,MAAmB,EACnB,aAA4B,EAC5B,uBAAiD,EACjD,mBAA+B;IAE/B,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE,CAAC;IAC1C,MAAM,gBAAgB,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC;IAC5C,MAAM,wBAAwB,GAAG,CAAC,CAAC,wBAAwB,CAAC,CAAC;IAC7D,gBAAgB,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC;IACvD,MAAM,eAAe,GAAG,aAAa,CAAC,QAAQ,CAAC;IAC/C,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;QAC9C,IAAI,qBAAqB,CAAC,cAAc,CAAC,EAAE,CAAC;YAC3C,SAAS;QACV,CAAC;QACD,MAAM,oBAAoB,GAAG,CAAC,CAAC,oBAAoB,CAAC,CAAC;QACrD,MAAM,oBAAoB,GAAG,GAAG,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAEvF,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,CAAC,uBAAuB,CAAC,MAAM,CAAC,cAAc,EAAE;YACvF,OAAO,EAAE,MAAM;YACf,mBAAmB,EAAE,GAAG,EAAE;gBACzB,oBAAoB,CAAC,SAAS,GAAG,oCAAoC,CAAC;gBACtE,mBAAmB,EAAE,CAAC;YACvB,CAAC;SACD,CAAC,CAAC,CAAC;QACJ,oBAAoB,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC3D,wBAAwB,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,iBAAiB,GAAsC;QAC5D,SAAS,EAAE,aAAa;QACxB,YAAY,EAAE,gBAAgB;QAC9B,OAAO,KAAK,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;KACpC,CAAC;IACF,OAAO,iBAAiB,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,iBAAqC,EAAE,MAA4B;IAC/G,QAAQ,MAAM,EAAE,CAAC;QAChB,KAAK,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC;YACpC,MAAM,EAAE,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,kCAAkC,CAAC,CAAC;YAClF,OAAO,EAAE,CAAC,CAAC;gBACV,GAAG,CAAC,QAAQ,CAAC,IAAyB,EAAE,gCAAgC,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;gBAC1F,GAAG,CAAC,QAAQ,CAAC,IAAmB,EAAE,0BAA0B,CAAC,CAAC;QAChE,CAAC;QACD,KAAK,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC;YACpC,MAAM,EAAE,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,kCAAkC,CAAC,CAAC;YAClF,OAAO,EAAE,CAAC,CAAC;gBACV,GAAG,CAAC,QAAQ,CAAC,IAAyB,EAAE,gCAAgC,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;gBAC1F,GAAG,CAAC,QAAQ,CAAC,IAAmB,EAAE,0BAA0B,CAAC,CAAC;QAChE,CAAC;IACF,CAAC;AACF,CAAC","file":"markdownHoverParticipant.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 { asArray, compareBy, numberComparator } from '../../../../base/common/arrays.js';\nimport { CancellationToken, CancellationTokenSource } from '../../../../base/common/cancellation.js';\nimport { IMarkdownString, isEmptyMarkdownString, MarkdownString } from '../../../../base/common/htmlContent.js';\nimport { DisposableStore, toDisposable } from '../../../../base/common/lifecycle.js';\nimport { IMarkdownRendererService } from '../../../../platform/markdown/browser/markdownRenderer.js';\nimport { DECREASE_HOVER_VERBOSITY_ACTION_ID, INCREASE_HOVER_VERBOSITY_ACTION_ID } from './hoverActionIds.js';\nimport { ICodeEditor } from '../../../browser/editorBrowser.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { IModelDecoration, ITextModel } from '../../../common/model.js';\nimport { HoverAnchor, HoverAnchorType, HoverRangeAnchor, IEditorHoverParticipant, IEditorHoverRenderContext, IHoverPart, IRenderedHoverPart, IRenderedHoverParts, RenderedHoverParts } from './hoverTypes.js';\nimport * as nls from '../../../../nls.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { EditorOption } from '../../../common/config/editorOptions.js';\nimport { Hover, HoverContext, HoverProvider, HoverVerbosityAction } from '../../../common/languages.js';\nimport { registerIcon } from '../../../../platform/theme/common/iconRegistry.js';\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { ThemeIcon } from '../../../../base/common/themables.js';\nimport { onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';\nimport { ClickAction, HoverPosition, KeyDownAction } from '../../../../base/browser/ui/hover/hoverWidget.js';\nimport { KeyCode } from '../../../../base/common/keyCodes.js';\nimport { IHoverService, WorkbenchHoverDelegate } from '../../../../platform/hover/browser/hover.js';\nimport { AsyncIterableProducer } from '../../../../base/common/async.js';\nimport { LanguageFeatureRegistry } from '../../../common/languageFeatureRegistry.js';\nimport { getHoverProviderResultsAsAsyncIterable } from './getHover.js';\nimport { ICommandService } from '../../../../platform/commands/common/commands.js';\nimport { HoverStartSource } from './hoverOperation.js';\nimport { ScrollEvent } from '../../../../base/common/scrollable.js';\n\nconst $ = dom.$;\nconst increaseHoverVerbosityIcon = registerIcon('hover-increase-verbosity', Codicon.add, nls.localize('increaseHoverVerbosity', 'Icon for increaseing hover verbosity.'));\nconst decreaseHoverVerbosityIcon = registerIcon('hover-decrease-verbosity', Codicon.remove, nls.localize('decreaseHoverVerbosity', 'Icon for decreasing hover verbosity.'));\n\nexport class MarkdownHover implements IHoverPart {\n\n\tconstructor(\n\t\tpublic readonly owner: IEditorHoverParticipant<MarkdownHover>,\n\t\tpublic readonly range: Range,\n\t\tpublic readonly contents: IMarkdownString[],\n\t\tpublic readonly isBeforeContent: boolean,\n\t\tpublic readonly ordinal: number,\n\t\tpublic readonly source: HoverSource | undefined = undefined,\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\nclass HoverSource {\n\n\tconstructor(\n\t\treadonly hover: Hover,\n\t\treadonly hoverProvider: HoverProvider,\n\t\treadonly hoverPosition: Position,\n\t) { }\n\n\tpublic supportsVerbosityAction(hoverVerbosityAction: HoverVerbosityAction): boolean {\n\t\tswitch (hoverVerbosityAction) {\n\t\t\tcase HoverVerbosityAction.Increase:\n\t\t\t\treturn this.hover.canIncreaseVerbosity ?? false;\n\t\t\tcase HoverVerbosityAction.Decrease:\n\t\t\t\treturn this.hover.canDecreaseVerbosity ?? false;\n\t\t}\n\t}\n}\n\nexport class MarkdownHoverParticipant implements IEditorHoverParticipant<MarkdownHover> {\n\n\tpublic readonly hoverOrdinal: number = 3;\n\n\tprivate _renderedHoverParts: MarkdownRenderedHoverParts | undefined;\n\n\tconstructor(\n\t\tprotected readonly _editor: ICodeEditor,\n\t\t@IMarkdownRendererService private readonly _markdownRendererService: IMarkdownRendererService,\n\t\t@IConfigurationService private readonly _configurationService: IConfigurationService,\n\t\t@ILanguageFeaturesService protected readonly _languageFeaturesService: ILanguageFeaturesService,\n\t\t@IKeybindingService private readonly _keybindingService: IKeybindingService,\n\t\t@IHoverService private readonly _hoverService: IHoverService,\n\t\t@ICommandService private readonly _commandService: ICommandService,\n\t) { }\n\n\tpublic createLoadingMessage(anchor: HoverAnchor): MarkdownHover | null {\n\t\treturn new MarkdownHover(this, anchor.range, [new MarkdownString().appendText(nls.localize('modesContentHover.loading', \"Loading...\"))], false, 2000);\n\t}\n\n\tpublic computeSync(anchor: HoverAnchor, lineDecorations: IModelDecoration[]): MarkdownHover[] {\n\t\tif (!this._editor.hasModel() || anchor.type !== HoverAnchorType.Range) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst model = this._editor.getModel();\n\t\tconst lineNumber = anchor.range.startLineNumber;\n\t\tconst maxColumn = model.getLineMaxColumn(lineNumber);\n\t\tconst result: MarkdownHover[] = [];\n\n\t\tlet index = 1000;\n\n\t\tconst lineLength = model.getLineLength(lineNumber);\n\t\tconst languageId = model.getLanguageIdAtPosition(anchor.range.startLineNumber, anchor.range.startColumn);\n\t\tconst stopRenderingLineAfter = this._editor.getOption(EditorOption.stopRenderingLineAfter);\n\t\tconst maxTokenizationLineLength = this._configurationService.getValue<number>('editor.maxTokenizationLineLength', {\n\t\t\toverrideIdentifier: languageId\n\t\t});\n\t\tlet stopRenderingMessage = false;\n\t\tif (stopRenderingLineAfter >= 0 && lineLength > stopRenderingLineAfter && anchor.range.startColumn >= stopRenderingLineAfter) {\n\t\t\tstopRenderingMessage = true;\n\t\t\tresult.push(new MarkdownHover(this, anchor.range, [{\n\t\t\t\tvalue: nls.localize('stopped rendering', \"Rendering paused for long line for performance reasons. This can be configured via `editor.stopRenderingLineAfter`.\")\n\t\t\t}], false, index++));\n\t\t}\n\t\tif (!stopRenderingMessage && typeof maxTokenizationLineLength === 'number' && lineLength >= maxTokenizationLineLength) {\n\t\t\tresult.push(new MarkdownHover(this, anchor.range, [{\n\t\t\t\tvalue: nls.localize('too many characters', \"Tokenization is skipped for long lines for performance reasons. This can be configured via `editor.maxTokenizationLineLength`.\")\n\t\t\t}], false, index++));\n\t\t}\n\n\t\tlet isBeforeContent = false;\n\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 hoverMessage = d.options.hoverMessage;\n\t\t\tif (!hoverMessage || isEmptyMarkdownString(hoverMessage)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (d.options.beforeContentClassName) {\n\t\t\t\tisBeforeContent = true;\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 MarkdownHover(this, range, asArray(hoverMessage), isBeforeContent, index++));\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tpublic computeAsync(anchor: HoverAnchor, lineDecorations: IModelDecoration[], source: HoverStartSource, token: CancellationToken): AsyncIterable<MarkdownHover> {\n\t\tif (!this._editor.hasModel() || anchor.type !== HoverAnchorType.Range) {\n\t\t\treturn AsyncIterableProducer.EMPTY;\n\t\t}\n\n\t\tconst model = this._editor.getModel();\n\n\t\tconst hoverProviderRegistry = this._languageFeaturesService.hoverProvider;\n\t\tif (!hoverProviderRegistry.has(model)) {\n\t\t\treturn AsyncIterableProducer.EMPTY;\n\t\t}\n\t\treturn this._getMarkdownHovers(hoverProviderRegistry, model, anchor, token);\n\t}\n\n\tprivate async *_getMarkdownHovers(hoverProviderRegistry: LanguageFeatureRegistry<HoverProvider>, model: ITextModel, anchor: HoverRangeAnchor, token: CancellationToken): AsyncIterable<MarkdownHover> {\n\t\tconst position = anchor.range.getStartPosition();\n\t\tconst hoverProviderResults = getHoverProviderResultsAsAsyncIterable(hoverProviderRegistry, model, position, token);\n\n\t\tfor await (const item of hoverProviderResults) {\n\t\t\tif (!isEmptyMarkdownString(item.hover.contents)) {\n\t\t\t\tconst range = item.hover.range ? Range.lift(item.hover.range) : anchor.range;\n\t\t\t\tconst hoverSource = new HoverSource(item.hover, item.provider, position);\n\t\t\t\tyield new MarkdownHover(this, range, item.hover.contents, false, item.ordinal, hoverSource);\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic renderHoverParts(context: IEditorHoverRenderContext, hoverParts: MarkdownHover[]): IRenderedHoverParts<MarkdownHover> {\n\t\tthis._renderedHoverParts = new MarkdownRenderedHoverParts(\n\t\t\thoverParts,\n\t\t\tcontext.fragment,\n\t\t\tthis,\n\t\t\tthis._editor,\n\t\t\tthis._commandService,\n\t\t\tthis._keybindingService,\n\t\t\tthis._hoverService,\n\t\t\tthis._configurationService,\n\t\t\tthis._markdownRendererService,\n\t\t\tcontext.onContentsChanged\n\t\t);\n\t\treturn this._renderedHoverParts;\n\t}\n\n\tpublic handleScroll(e: ScrollEvent): void {\n\t\tthis._renderedHoverParts?.handleScroll(e);\n\t}\n\n\tpublic updateMarkdownHoverVerbosityLevel(action: HoverVerbosityAction, index: number): Promise<{ hoverPart: MarkdownHover; hoverElement: HTMLElement } | undefined> {\n\t\treturn Promise.resolve(this._renderedHoverParts?.updateMarkdownHoverPartVerbosityLevel(action, index));\n\t}\n}\n\nclass RenderedMarkdownHoverPart implements IRenderedHoverPart<MarkdownHover> {\n\n\tconstructor(\n\t\tpublic readonly hoverPart: MarkdownHover,\n\t\tpublic readonly hoverElement: HTMLElement,\n\t\tpublic readonly disposables: DisposableStore,\n\t\tpublic readonly actionsContainer?: HTMLElement\n\t) { }\n\n\tdispose(): void {\n\t\tthis.disposables.dispose();\n\t}\n}\n\nclass MarkdownRenderedHoverParts implements IRenderedHoverParts<MarkdownHover> {\n\n\tpublic renderedHoverParts: RenderedMarkdownHoverPart[];\n\n\tprivate _ongoingHoverOperations: Map<HoverProvider, { verbosityDelta: number; tokenSource: CancellationTokenSource }> = new Map();\n\n\tprivate readonly _disposables = new DisposableStore();\n\n\tconstructor(\n\t\thoverParts: MarkdownHover[],\n\t\thoverPartsContainer: DocumentFragment,\n\t\tprivate readonly _hoverParticipant: MarkdownHoverParticipant,\n\t\tprivate readonly _editor: ICodeEditor,\n\t\tprivate readonly _commandService: ICommandService,\n\t\tprivate readonly _keybindingService: IKeybindingService,\n\t\tprivate readonly _hoverService: IHoverService,\n\t\tprivate readonly _configurationService: IConfigurationService,\n\t\tprivate readonly _markdownRendererService: IMarkdownRendererService,\n\t\tprivate readonly _onFinishedRendering: () => void,\n\t) {\n\t\tthis.renderedHoverParts = this._renderHoverParts(hoverParts, hoverPartsContainer, this._onFinishedRendering);\n\t\tthis._disposables.add(toDisposable(() => {\n\t\t\tthis.renderedHoverParts.forEach(renderedHoverPart => {\n\t\t\t\trenderedHoverPart.dispose();\n\t\t\t});\n\t\t\tthis._ongoingHoverOperations.forEach(operation => {\n\t\t\t\toperation.tokenSource.dispose(true);\n\t\t\t});\n\t\t}));\n\t}\n\n\tprivate _renderHoverParts(\n\t\thoverParts: MarkdownHover[],\n\t\thoverPartsContainer: DocumentFragment,\n\t\tonFinishedRendering: () => void,\n\t): RenderedMarkdownHoverPart[] {\n\t\thoverParts.sort(compareBy(hover => hover.ordinal, numberComparator));\n\t\treturn hoverParts.map(hoverPart => {\n\t\t\tconst renderedHoverPart = this._renderHoverPart(hoverPart, onFinishedRendering);\n\t\t\thoverPartsContainer.appendChild(renderedHoverPart.hoverElement);\n\t\t\treturn renderedHoverPart;\n\t\t});\n\t}\n\n\tprivate _renderHoverPart(\n\t\thoverPart: MarkdownHover,\n\t\tonFinishedRendering: () => void\n\t): RenderedMarkdownHoverPart {\n\n\t\tconst renderedMarkdownPart = this._renderMarkdownHover(hoverPart, onFinishedRendering);\n\t\tconst renderedMarkdownElement = renderedMarkdownPart.hoverElement;\n\t\tconst hoverSource = hoverPart.source;\n\t\tconst disposables = new DisposableStore();\n\t\tdisposables.add(renderedMarkdownPart);\n\n\t\tif (!hoverSource) {\n\t\t\treturn new RenderedMarkdownHoverPart(hoverPart, renderedMarkdownElement, disposables);\n\t\t}\n\n\t\tconst canIncreaseVerbosity = hoverSource.supportsVerbosityAction(HoverVerbosityAction.Increase);\n\t\tconst canDecreaseVerbosity = hoverSource.supportsVerbosityAction(HoverVerbosityAction.Decrease);\n\n\t\tif (!canIncreaseVerbosity && !canDecreaseVerbosity) {\n\t\t\treturn new RenderedMarkdownHoverPart(hoverPart, renderedMarkdownElement, disposables);\n\t\t}\n\n\t\tconst actionsContainer = $('div.verbosity-actions');\n\t\trenderedMarkdownElement.prepend(actionsContainer);\n\t\tconst actionsContainerInner = $('div.verbosity-actions-inner');\n\t\tactionsContainer.append(actionsContainerInner);\n\t\tdisposables.add(this._renderHoverExpansionAction(actionsContainerInner, HoverVerbosityAction.Increase, canIncreaseVerbosity));\n\t\tdisposables.add(this._renderHoverExpansionAction(actionsContainerInner, HoverVerbosityAction.Decrease, canDecreaseVerbosity));\n\t\treturn new RenderedMarkdownHoverPart(hoverPart, renderedMarkdownElement, disposables, actionsContainerInner);\n\t}\n\n\tprivate _renderMarkdownHover(\n\t\tmarkdownHover: MarkdownHover,\n\t\tonFinishedRendering: () => void\n\t): IRenderedHoverPart<MarkdownHover> {\n\t\tconst renderedMarkdownHover = renderMarkdown(\n\t\t\tthis._editor,\n\t\t\tmarkdownHover,\n\t\t\tthis._markdownRendererService,\n\t\t\tonFinishedRendering,\n\t\t);\n\t\treturn renderedMarkdownHover;\n\t}\n\n\tprivate _renderHoverExpansionAction(container: HTMLElement, action: HoverVerbosityAction, actionEnabled: boolean): DisposableStore {\n\t\tconst store = new DisposableStore();\n\t\tconst isActionIncrease = action === HoverVerbosityAction.Increase;\n\t\tconst actionElement = dom.append(container, $(ThemeIcon.asCSSSelector(isActionIncrease ? increaseHoverVerbosityIcon : decreaseHoverVerbosityIcon)));\n\t\tactionElement.tabIndex = 0;\n\t\tconst hoverDelegate = new WorkbenchHoverDelegate('mouse', undefined, { target: container, position: { hoverPosition: HoverPosition.LEFT } }, this._configurationService, this._hoverService);\n\t\tstore.add(this._hoverService.setupManagedHover(hoverDelegate, actionElement, labelForHoverVerbosityAction(this._keybindingService, action)));\n\t\tif (!actionEnabled) {\n\t\t\tactionElement.classList.add('disabled');\n\t\t\treturn store;\n\t\t}\n\t\tactionElement.classList.add('enabled');\n\t\tconst actionFunction = () => this._commandService.executeCommand(action === HoverVerbosityAction.Increase ? INCREASE_HOVER_VERBOSITY_ACTION_ID : DECREASE_HOVER_VERBOSITY_ACTION_ID, { focus: true });\n\t\tstore.add(new ClickAction(actionElement, actionFunction));\n\t\tstore.add(new KeyDownAction(actionElement, actionFunction, [KeyCode.Enter, KeyCode.Space]));\n\t\treturn store;\n\t}\n\n\tpublic handleScroll(e: ScrollEvent): void {\n\t\tthis.renderedHoverParts.forEach(renderedHoverPart => {\n\t\t\tconst actionsContainerInner = renderedHoverPart.actionsContainer;\n\t\t\tif (!actionsContainerInner) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst hoverElement = renderedHoverPart.hoverElement;\n\t\t\tconst topOfHoverScrollPosition = e.scrollTop;\n\t\t\tconst bottomOfHoverScrollPosition = topOfHoverScrollPosition + e.height;\n\t\t\tconst topOfRenderedPart = hoverElement.offsetTop;\n\t\t\tconst hoverElementHeight = hoverElement.clientHeight;\n\t\t\tconst bottomOfRenderedPart = topOfRenderedPart + hoverElementHeight;\n\t\t\tconst iconsHeight = 22;\n\t\t\tlet top: number;\n\t\t\tif (bottomOfRenderedPart <= bottomOfHoverScrollPosition || topOfRenderedPart >= bottomOfHoverScrollPosition) {\n\t\t\t\ttop = hoverElementHeight - iconsHeight;\n\t\t\t} else {\n\t\t\t\ttop = bottomOfHoverScrollPosition - topOfRenderedPart - iconsHeight;\n\t\t\t}\n\t\t\tactionsContainerInner.style.top = `${top}px`;\n\t\t});\n\t}\n\n\tpublic async updateMarkdownHoverPartVerbosityLevel(action: HoverVerbosityAction, index: number): Promise<{ hoverPart: MarkdownHover; hoverElement: HTMLElement } | undefined> {\n\t\tconst model = this._editor.getModel();\n\t\tif (!model) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst hoverRenderedPart = this._getRenderedHoverPartAtIndex(index);\n\t\tconst hoverSource = hoverRenderedPart?.hoverPart.source;\n\t\tif (!hoverRenderedPart || !hoverSource?.supportsVerbosityAction(action)) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst newHover = await this._fetchHover(hoverSource, model, action);\n\t\tif (!newHover) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst newHoverSource = new HoverSource(newHover, hoverSource.hoverProvider, hoverSource.hoverPosition);\n\t\tconst initialHoverPart = hoverRenderedPart.hoverPart;\n\t\tconst newHoverPart = new MarkdownHover(\n\t\t\tthis._hoverParticipant,\n\t\t\tinitialHoverPart.range,\n\t\t\tnewHover.contents,\n\t\t\tinitialHoverPart.isBeforeContent,\n\t\t\tinitialHoverPart.ordinal,\n\t\t\tnewHoverSource\n\t\t);\n\t\tconst newHoverRenderedPart = this._updateRenderedHoverPart(index, newHoverPart);\n\t\tif (!newHoverRenderedPart) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn {\n\t\t\thoverPart: newHoverPart,\n\t\t\thoverElement: newHoverRenderedPart.hoverElement\n\t\t};\n\t}\n\n\tprivate async _fetchHover(hoverSource: HoverSource, model: ITextModel, action: HoverVerbosityAction): Promise<Hover | null | undefined> {\n\t\tlet verbosityDelta = action === HoverVerbosityAction.Increase ? 1 : -1;\n\t\tconst provider = hoverSource.hoverProvider;\n\t\tconst ongoingHoverOperation = this._ongoingHoverOperations.get(provider);\n\t\tif (ongoingHoverOperation) {\n\t\t\tongoingHoverOperation.tokenSource.cancel();\n\t\t\tverbosityDelta += ongoingHoverOperation.verbosityDelta;\n\t\t}\n\t\tconst tokenSource = new CancellationTokenSource();\n\t\tthis._ongoingHoverOperations.set(provider, { verbosityDelta, tokenSource });\n\t\tconst context: HoverContext = { verbosityRequest: { verbosityDelta, previousHover: hoverSource.hover } };\n\t\tlet hover: Hover | null | undefined;\n\t\ttry {\n\t\t\thover = await Promise.resolve(provider.provideHover(model, hoverSource.hoverPosition, tokenSource.token, context));\n\t\t} catch (e) {\n\t\t\tonUnexpectedExternalError(e);\n\t\t}\n\t\ttokenSource.dispose();\n\t\tthis._ongoingHoverOperations.delete(provider);\n\t\treturn hover;\n\t}\n\n\tprivate _updateRenderedHoverPart(index: number, hoverPart: MarkdownHover): RenderedMarkdownHoverPart | undefined {\n\t\tif (index >= this.renderedHoverParts.length || index < 0) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst renderedHoverPart = this._renderHoverPart(hoverPart, this._onFinishedRendering);\n\t\tconst currentRenderedHoverPart = this.renderedHoverParts[index];\n\t\tconst currentRenderedMarkdown = currentRenderedHoverPart.hoverElement;\n\t\tconst renderedMarkdown = renderedHoverPart.hoverElement;\n\t\tconst renderedChildrenElements = Array.from(renderedMarkdown.children);\n\t\tcurrentRenderedMarkdown.replaceChildren(...renderedChildrenElements);\n\t\tconst newRenderedHoverPart = new RenderedMarkdownHoverPart(\n\t\t\thoverPart,\n\t\t\tcurrentRenderedMarkdown,\n\t\t\trenderedHoverPart.disposables,\n\t\t\trenderedHoverPart.actionsContainer\n\t\t);\n\t\tcurrentRenderedHoverPart.dispose();\n\t\tthis.renderedHoverParts[index] = newRenderedHoverPart;\n\t\treturn newRenderedHoverPart;\n\t}\n\n\tprivate _getRenderedHoverPartAtIndex(index: number): RenderedMarkdownHoverPart | undefined {\n\t\treturn this.renderedHoverParts[index];\n\t}\n\n\tpublic dispose(): void {\n\t\tthis._disposables.dispose();\n\t}\n}\n\nexport function renderMarkdownHovers(\n\tcontext: IEditorHoverRenderContext,\n\tmarkdownHovers: MarkdownHover[],\n\teditor: ICodeEditor,\n\tmarkdownRendererService: IMarkdownRendererService,\n): IRenderedHoverParts<MarkdownHover> {\n\n\t// Sort hover parts to keep them stable since they might come in async, out-of-order\n\tmarkdownHovers.sort(compareBy(hover => hover.ordinal, numberComparator));\n\tconst renderedHoverParts: IRenderedHoverPart<MarkdownHover>[] = [];\n\tfor (const markdownHover of markdownHovers) {\n\t\tconst renderedHoverPart = renderMarkdown(\n\t\t\teditor,\n\t\t\tmarkdownHover,\n\t\t\tmarkdownRendererService,\n\t\t\tcontext.onContentsChanged,\n\t\t);\n\t\tcontext.fragment.appendChild(renderedHoverPart.hoverElement);\n\t\trenderedHoverParts.push(renderedHoverPart);\n\t}\n\treturn new RenderedHoverParts(renderedHoverParts);\n}\n\nfunction renderMarkdown(\n\teditor: ICodeEditor,\n\tmarkdownHover: MarkdownHover,\n\tmarkdownRendererService: IMarkdownRendererService,\n\tonFinishedRendering: () => void,\n): IRenderedHoverPart<MarkdownHover> {\n\tconst disposables = new DisposableStore();\n\tconst renderedMarkdown = $('div.hover-row');\n\tconst renderedMarkdownContents = $('div.hover-row-contents');\n\trenderedMarkdown.appendChild(renderedMarkdownContents);\n\tconst markdownStrings = markdownHover.contents;\n\tfor (const markdownString of markdownStrings) {\n\t\tif (isEmptyMarkdownString(markdownString)) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst markdownHoverElement = $('div.markdown-hover');\n\t\tconst hoverContentsElement = dom.append(markdownHoverElement, $('div.hover-contents'));\n\n\t\tconst renderedContents = disposables.add(markdownRendererService.render(markdownString, {\n\t\t\tcontext: editor,\n\t\t\tasyncRenderCallback: () => {\n\t\t\t\thoverContentsElement.className = 'hover-contents code-hover-contents';\n\t\t\t\tonFinishedRendering();\n\t\t\t}\n\t\t}));\n\t\thoverContentsElement.appendChild(renderedContents.element);\n\t\trenderedMarkdownContents.appendChild(markdownHoverElement);\n\t}\n\tconst renderedHoverPart: IRenderedHoverPart<MarkdownHover> = {\n\t\thoverPart: markdownHover,\n\t\thoverElement: renderedMarkdown,\n\t\tdispose() { disposables.dispose(); }\n\t};\n\treturn renderedHoverPart;\n}\n\nexport function labelForHoverVerbosityAction(keybindingService: IKeybindingService, action: HoverVerbosityAction): string {\n\tswitch (action) {\n\t\tcase HoverVerbosityAction.Increase: {\n\t\t\tconst kb = keybindingService.lookupKeybinding(INCREASE_HOVER_VERBOSITY_ACTION_ID);\n\t\t\treturn kb ?\n\t\t\t\tnls.localize('increaseVerbosityWithKb', \"Increase Hover Verbosity ({0})\", kb.getLabel()) :\n\t\t\t\tnls.localize('increaseVerbosity', \"Increase Hover Verbosity\");\n\t\t}\n\t\tcase HoverVerbosityAction.Decrease: {\n\t\t\tconst kb = keybindingService.lookupKeybinding(DECREASE_HOVER_VERBOSITY_ACTION_ID);\n\t\t\treturn kb ?\n\t\t\t\tnls.localize('decreaseVerbosityWithKb', \"Decrease Hover Verbosity ({0})\", kb.getLabel()) :\n\t\t\t\tnls.localize('decreaseVerbosity', \"Decrease Hover Verbosity\");\n\t\t}\n\t}\n}\n"]}
1
+ {"version":3,"sources":["vs/editor/contrib/hover/browser/markdownHoverParticipant.ts"],"names":[],"mappings":"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","file":"markdownHoverParticipant.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 { asArray, compareBy, numberComparator } from '../../../../base/common/arrays.js';\nimport { CancellationToken, CancellationTokenSource } from '../../../../base/common/cancellation.js';\nimport { IMarkdownString, isEmptyMarkdownString, MarkdownString } from '../../../../base/common/htmlContent.js';\nimport { DisposableStore, toDisposable } from '../../../../base/common/lifecycle.js';\nimport { IMarkdownRendererService } from '../../../../platform/markdown/browser/markdownRenderer.js';\nimport { DECREASE_HOVER_VERBOSITY_ACTION_ID, INCREASE_HOVER_VERBOSITY_ACTION_ID } from './hoverActionIds.js';\nimport { ICodeEditor } from '../../../browser/editorBrowser.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { IModelDecoration, ITextModel } from '../../../common/model.js';\nimport { HoverAnchor, HoverAnchorType, HoverRangeAnchor, IEditorHoverParticipant, IEditorHoverRenderContext, IHoverPart, IRenderedHoverPart, IRenderedHoverParts, RenderedHoverParts } from './hoverTypes.js';\nimport * as nls from '../../../../nls.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { EditorOption } from '../../../common/config/editorOptions.js';\nimport { Hover, HoverContext, HoverProvider, HoverVerbosityAction } from '../../../common/languages.js';\nimport { registerIcon } from '../../../../platform/theme/common/iconRegistry.js';\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { ThemeIcon } from '../../../../base/common/themables.js';\nimport { onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';\nimport { ClickAction, HoverPosition, KeyDownAction } from '../../../../base/browser/ui/hover/hoverWidget.js';\nimport { KeyCode } from '../../../../base/common/keyCodes.js';\nimport { IHoverService, WorkbenchHoverDelegate } from '../../../../platform/hover/browser/hover.js';\nimport { AsyncIterableProducer } from '../../../../base/common/async.js';\nimport { LanguageFeatureRegistry } from '../../../common/languageFeatureRegistry.js';\nimport { getHoverProviderResultsAsAsyncIterable } from './getHover.js';\nimport { ICommandService } from '../../../../platform/commands/common/commands.js';\nimport { HoverStartSource } from './hoverOperation.js';\nimport { ScrollEvent } from '../../../../base/common/scrollable.js';\n\nconst $ = dom.$;\nconst increaseHoverVerbosityIcon = registerIcon('hover-increase-verbosity', Codicon.add, nls.localize('increaseHoverVerbosity', 'Icon for increaseing hover verbosity.'));\nconst decreaseHoverVerbosityIcon = registerIcon('hover-decrease-verbosity', Codicon.remove, nls.localize('decreaseHoverVerbosity', 'Icon for decreasing hover verbosity.'));\n\nexport class MarkdownHover implements IHoverPart {\n\n\tconstructor(\n\t\tpublic readonly owner: IEditorHoverParticipant<MarkdownHover>,\n\t\tpublic readonly range: Range,\n\t\tpublic readonly contents: IMarkdownString[],\n\t\tpublic readonly isBeforeContent: boolean,\n\t\tpublic readonly ordinal: number,\n\t\tpublic readonly source: HoverSource | undefined = undefined,\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\nclass HoverSource {\n\n\tconstructor(\n\t\treadonly hover: Hover,\n\t\treadonly hoverProvider: HoverProvider,\n\t\treadonly hoverPosition: Position,\n\t) { }\n\n\tpublic supportsVerbosityAction(hoverVerbosityAction: HoverVerbosityAction): boolean {\n\t\tswitch (hoverVerbosityAction) {\n\t\t\tcase HoverVerbosityAction.Increase:\n\t\t\t\treturn this.hover.canIncreaseVerbosity ?? false;\n\t\t\tcase HoverVerbosityAction.Decrease:\n\t\t\t\treturn this.hover.canDecreaseVerbosity ?? false;\n\t\t}\n\t}\n}\n\nexport class MarkdownHoverParticipant implements IEditorHoverParticipant<MarkdownHover> {\n\n\tpublic readonly hoverOrdinal: number = 3;\n\n\tprivate _renderedHoverParts: MarkdownRenderedHoverParts | undefined;\n\n\tconstructor(\n\t\tprotected readonly _editor: ICodeEditor,\n\t\t@IMarkdownRendererService private readonly _markdownRendererService: IMarkdownRendererService,\n\t\t@IConfigurationService private readonly _configurationService: IConfigurationService,\n\t\t@ILanguageFeaturesService protected readonly _languageFeaturesService: ILanguageFeaturesService,\n\t\t@IKeybindingService private readonly _keybindingService: IKeybindingService,\n\t\t@IHoverService private readonly _hoverService: IHoverService,\n\t\t@ICommandService private readonly _commandService: ICommandService,\n\t) { }\n\n\tpublic createLoadingMessage(anchor: HoverAnchor): MarkdownHover | null {\n\t\treturn new MarkdownHover(this, anchor.range, [new MarkdownString().appendText(nls.localize('modesContentHover.loading', \"Loading...\"))], false, 2000);\n\t}\n\n\tpublic computeSync(anchor: HoverAnchor, lineDecorations: IModelDecoration[]): MarkdownHover[] {\n\t\tif (!this._editor.hasModel() || anchor.type !== HoverAnchorType.Range) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst model = this._editor.getModel();\n\t\tconst lineNumber = anchor.range.startLineNumber;\n\t\tconst maxColumn = model.getLineMaxColumn(lineNumber);\n\t\tconst result: MarkdownHover[] = [];\n\n\t\tlet index = 1000;\n\n\t\tconst lineLength = model.getLineLength(lineNumber);\n\t\tconst languageId = model.getLanguageIdAtPosition(anchor.range.startLineNumber, anchor.range.startColumn);\n\t\tconst stopRenderingLineAfter = this._editor.getOption(EditorOption.stopRenderingLineAfter);\n\t\tconst maxTokenizationLineLength = this._configurationService.getValue<number>('editor.maxTokenizationLineLength', {\n\t\t\toverrideIdentifier: languageId\n\t\t});\n\t\tlet stopRenderingMessage = false;\n\t\tif (stopRenderingLineAfter >= 0 && lineLength > stopRenderingLineAfter && anchor.range.startColumn >= stopRenderingLineAfter) {\n\t\t\tstopRenderingMessage = true;\n\t\t\tresult.push(new MarkdownHover(this, anchor.range, [{\n\t\t\t\tvalue: nls.localize('stopped rendering', \"Rendering paused for long line for performance reasons. This can be configured via `editor.stopRenderingLineAfter`.\")\n\t\t\t}], false, index++));\n\t\t}\n\t\tif (!stopRenderingMessage && typeof maxTokenizationLineLength === 'number' && lineLength >= maxTokenizationLineLength) {\n\t\t\tresult.push(new MarkdownHover(this, anchor.range, [{\n\t\t\t\tvalue: nls.localize('too many characters', \"Tokenization is skipped for long lines for performance reasons. This can be configured via `editor.maxTokenizationLineLength`.\")\n\t\t\t}], false, index++));\n\t\t}\n\n\t\tlet isBeforeContent = false;\n\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 hoverMessage = d.options.hoverMessage;\n\t\t\tif (!hoverMessage || isEmptyMarkdownString(hoverMessage)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (d.options.beforeContentClassName) {\n\t\t\t\tisBeforeContent = true;\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 MarkdownHover(this, range, asArray(hoverMessage), isBeforeContent, index++));\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tpublic computeAsync(anchor: HoverAnchor, lineDecorations: IModelDecoration[], source: HoverStartSource, token: CancellationToken): AsyncIterable<MarkdownHover> {\n\t\tif (!this._editor.hasModel() || anchor.type !== HoverAnchorType.Range) {\n\t\t\treturn AsyncIterableProducer.EMPTY;\n\t\t}\n\n\t\tconst model = this._editor.getModel();\n\n\t\tconst hoverProviderRegistry = this._languageFeaturesService.hoverProvider;\n\t\tif (!hoverProviderRegistry.has(model)) {\n\t\t\treturn AsyncIterableProducer.EMPTY;\n\t\t}\n\t\treturn this._getMarkdownHovers(hoverProviderRegistry, model, anchor, token);\n\t}\n\n\tprivate async *_getMarkdownHovers(hoverProviderRegistry: LanguageFeatureRegistry<HoverProvider>, model: ITextModel, anchor: HoverRangeAnchor, token: CancellationToken): AsyncIterable<MarkdownHover> {\n\t\tconst position = anchor.range.getStartPosition();\n\t\tconst hoverProviderResults = getHoverProviderResultsAsAsyncIterable(hoverProviderRegistry, model, position, token);\n\n\t\tfor await (const item of hoverProviderResults) {\n\t\t\tif (!isEmptyMarkdownString(item.hover.contents)) {\n\t\t\t\tconst range = item.hover.range ? Range.lift(item.hover.range) : anchor.range;\n\t\t\t\tconst hoverSource = new HoverSource(item.hover, item.provider, position);\n\t\t\t\tyield new MarkdownHover(this, range, item.hover.contents, false, item.ordinal, hoverSource);\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic renderHoverParts(context: IEditorHoverRenderContext, hoverParts: MarkdownHover[]): IRenderedHoverParts<MarkdownHover> {\n\t\tthis._renderedHoverParts = new MarkdownRenderedHoverParts(\n\t\t\thoverParts,\n\t\t\tcontext.fragment,\n\t\t\tthis,\n\t\t\tthis._editor,\n\t\t\tthis._commandService,\n\t\t\tthis._keybindingService,\n\t\t\tthis._hoverService,\n\t\t\tthis._configurationService,\n\t\t\tthis._markdownRendererService,\n\t\t\tcontext.onContentsChanged\n\t\t);\n\t\treturn this._renderedHoverParts;\n\t}\n\n\tpublic handleScroll(e: ScrollEvent): void {\n\t\tthis._renderedHoverParts?.handleScroll(e);\n\t}\n\n\tpublic getAccessibleContent(hoverPart: MarkdownHover): string {\n\t\treturn this._renderedHoverParts?.getAccessibleContent(hoverPart) ?? '';\n\t}\n\n\tpublic updateMarkdownHoverVerbosityLevel(action: HoverVerbosityAction, index: number): Promise<{ hoverPart: MarkdownHover; hoverElement: HTMLElement } | undefined> {\n\t\treturn Promise.resolve(this._renderedHoverParts?.updateMarkdownHoverPartVerbosityLevel(action, index));\n\t}\n}\n\nclass RenderedMarkdownHoverPart implements IRenderedHoverPart<MarkdownHover> {\n\n\tconstructor(\n\t\tpublic readonly hoverPart: MarkdownHover,\n\t\tpublic readonly hoverElement: HTMLElement,\n\t\tpublic readonly disposables: DisposableStore,\n\t\tpublic readonly actionsContainer?: HTMLElement\n\t) { }\n\n\tdispose(): void {\n\t\tthis.disposables.dispose();\n\t}\n}\n\nclass MarkdownRenderedHoverParts implements IRenderedHoverParts<MarkdownHover> {\n\n\tpublic renderedHoverParts: RenderedMarkdownHoverPart[];\n\n\tprivate _ongoingHoverOperations: Map<HoverProvider, { verbosityDelta: number; tokenSource: CancellationTokenSource }> = new Map();\n\n\tprivate readonly _disposables = new DisposableStore();\n\n\tconstructor(\n\t\thoverParts: MarkdownHover[],\n\t\thoverPartsContainer: DocumentFragment,\n\t\tprivate readonly _hoverParticipant: MarkdownHoverParticipant,\n\t\tprivate readonly _editor: ICodeEditor,\n\t\tprivate readonly _commandService: ICommandService,\n\t\tprivate readonly _keybindingService: IKeybindingService,\n\t\tprivate readonly _hoverService: IHoverService,\n\t\tprivate readonly _configurationService: IConfigurationService,\n\t\tprivate readonly _markdownRendererService: IMarkdownRendererService,\n\t\tprivate readonly _onFinishedRendering: () => void,\n\t) {\n\t\tthis.renderedHoverParts = this._renderHoverParts(hoverParts, hoverPartsContainer, this._onFinishedRendering);\n\t\tthis._disposables.add(toDisposable(() => {\n\t\t\tthis.renderedHoverParts.forEach(renderedHoverPart => {\n\t\t\t\trenderedHoverPart.dispose();\n\t\t\t});\n\t\t\tthis._ongoingHoverOperations.forEach(operation => {\n\t\t\t\toperation.tokenSource.dispose(true);\n\t\t\t});\n\t\t}));\n\t}\n\n\tprivate _renderHoverParts(\n\t\thoverParts: MarkdownHover[],\n\t\thoverPartsContainer: DocumentFragment,\n\t\tonFinishedRendering: () => void,\n\t): RenderedMarkdownHoverPart[] {\n\t\thoverParts.sort(compareBy(hover => hover.ordinal, numberComparator));\n\t\treturn hoverParts.map(hoverPart => {\n\t\t\tconst renderedHoverPart = this._renderHoverPart(hoverPart, onFinishedRendering);\n\t\t\thoverPartsContainer.appendChild(renderedHoverPart.hoverElement);\n\t\t\treturn renderedHoverPart;\n\t\t});\n\t}\n\n\tprivate _renderHoverPart(\n\t\thoverPart: MarkdownHover,\n\t\tonFinishedRendering: () => void\n\t): RenderedMarkdownHoverPart {\n\n\t\tconst renderedMarkdownPart = this._renderMarkdownHover(hoverPart, onFinishedRendering);\n\t\tconst renderedMarkdownElement = renderedMarkdownPart.hoverElement;\n\t\tconst hoverSource = hoverPart.source;\n\t\tconst disposables = new DisposableStore();\n\t\tdisposables.add(renderedMarkdownPart);\n\n\t\tif (!hoverSource) {\n\t\t\treturn new RenderedMarkdownHoverPart(hoverPart, renderedMarkdownElement, disposables);\n\t\t}\n\n\t\tconst canIncreaseVerbosity = hoverSource.supportsVerbosityAction(HoverVerbosityAction.Increase);\n\t\tconst canDecreaseVerbosity = hoverSource.supportsVerbosityAction(HoverVerbosityAction.Decrease);\n\n\t\tif (!canIncreaseVerbosity && !canDecreaseVerbosity) {\n\t\t\treturn new RenderedMarkdownHoverPart(hoverPart, renderedMarkdownElement, disposables);\n\t\t}\n\n\t\tconst actionsContainer = $('div.verbosity-actions');\n\t\trenderedMarkdownElement.prepend(actionsContainer);\n\t\tconst actionsContainerInner = $('div.verbosity-actions-inner');\n\t\tactionsContainer.append(actionsContainerInner);\n\t\tdisposables.add(this._renderHoverExpansionAction(actionsContainerInner, HoverVerbosityAction.Increase, canIncreaseVerbosity));\n\t\tdisposables.add(this._renderHoverExpansionAction(actionsContainerInner, HoverVerbosityAction.Decrease, canDecreaseVerbosity));\n\t\treturn new RenderedMarkdownHoverPart(hoverPart, renderedMarkdownElement, disposables, actionsContainerInner);\n\t}\n\n\tprivate _renderMarkdownHover(\n\t\tmarkdownHover: MarkdownHover,\n\t\tonFinishedRendering: () => void\n\t): IRenderedHoverPart<MarkdownHover> {\n\t\tconst renderedMarkdownHover = renderMarkdown(\n\t\t\tthis._editor,\n\t\t\tmarkdownHover,\n\t\t\tthis._markdownRendererService,\n\t\t\tonFinishedRendering,\n\t\t);\n\t\treturn renderedMarkdownHover;\n\t}\n\n\tprivate _renderHoverExpansionAction(container: HTMLElement, action: HoverVerbosityAction, actionEnabled: boolean): DisposableStore {\n\t\tconst store = new DisposableStore();\n\t\tconst isActionIncrease = action === HoverVerbosityAction.Increase;\n\t\tconst actionElement = dom.append(container, $(ThemeIcon.asCSSSelector(isActionIncrease ? increaseHoverVerbosityIcon : decreaseHoverVerbosityIcon)));\n\t\tactionElement.tabIndex = 0;\n\t\tconst hoverDelegate = new WorkbenchHoverDelegate('mouse', undefined, { target: container, position: { hoverPosition: HoverPosition.LEFT } }, this._configurationService, this._hoverService);\n\t\tstore.add(this._hoverService.setupManagedHover(hoverDelegate, actionElement, labelForHoverVerbosityAction(this._keybindingService, action)));\n\t\tif (!actionEnabled) {\n\t\t\tactionElement.classList.add('disabled');\n\t\t\treturn store;\n\t\t}\n\t\tactionElement.classList.add('enabled');\n\t\tconst actionFunction = () => this._commandService.executeCommand(action === HoverVerbosityAction.Increase ? INCREASE_HOVER_VERBOSITY_ACTION_ID : DECREASE_HOVER_VERBOSITY_ACTION_ID, { focus: true });\n\t\tstore.add(new ClickAction(actionElement, actionFunction));\n\t\tstore.add(new KeyDownAction(actionElement, actionFunction, [KeyCode.Enter, KeyCode.Space]));\n\t\treturn store;\n\t}\n\n\tpublic handleScroll(e: ScrollEvent): void {\n\t\tthis.renderedHoverParts.forEach(renderedHoverPart => {\n\t\t\tconst actionsContainerInner = renderedHoverPart.actionsContainer;\n\t\t\tif (!actionsContainerInner) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst hoverElement = renderedHoverPart.hoverElement;\n\t\t\tconst topOfHoverScrollPosition = e.scrollTop;\n\t\t\tconst bottomOfHoverScrollPosition = topOfHoverScrollPosition + e.height;\n\t\t\tconst topOfRenderedPart = hoverElement.offsetTop;\n\t\t\tconst hoverElementHeight = hoverElement.clientHeight;\n\t\t\tconst bottomOfRenderedPart = topOfRenderedPart + hoverElementHeight;\n\t\t\tconst iconsHeight = 22;\n\t\t\tlet top: number;\n\t\t\tif (bottomOfRenderedPart <= bottomOfHoverScrollPosition || topOfRenderedPart >= bottomOfHoverScrollPosition) {\n\t\t\t\ttop = hoverElementHeight - iconsHeight;\n\t\t\t} else {\n\t\t\t\ttop = bottomOfHoverScrollPosition - topOfRenderedPart - iconsHeight;\n\t\t\t}\n\t\t\tactionsContainerInner.style.top = `${top}px`;\n\t\t});\n\t}\n\n\tpublic async updateMarkdownHoverPartVerbosityLevel(action: HoverVerbosityAction, index: number): Promise<{ hoverPart: MarkdownHover; hoverElement: HTMLElement } | undefined> {\n\t\tconst model = this._editor.getModel();\n\t\tif (!model) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst hoverRenderedPart = this._getRenderedHoverPartAtIndex(index);\n\t\tconst hoverSource = hoverRenderedPart?.hoverPart.source;\n\t\tif (!hoverRenderedPart || !hoverSource?.supportsVerbosityAction(action)) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst newHover = await this._fetchHover(hoverSource, model, action);\n\t\tif (!newHover) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst newHoverSource = new HoverSource(newHover, hoverSource.hoverProvider, hoverSource.hoverPosition);\n\t\tconst initialHoverPart = hoverRenderedPart.hoverPart;\n\t\tconst newHoverPart = new MarkdownHover(\n\t\t\tthis._hoverParticipant,\n\t\t\tinitialHoverPart.range,\n\t\t\tnewHover.contents,\n\t\t\tinitialHoverPart.isBeforeContent,\n\t\t\tinitialHoverPart.ordinal,\n\t\t\tnewHoverSource\n\t\t);\n\t\tconst newHoverRenderedPart = this._updateRenderedHoverPart(index, newHoverPart);\n\t\tif (!newHoverRenderedPart) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn {\n\t\t\thoverPart: newHoverPart,\n\t\t\thoverElement: newHoverRenderedPart.hoverElement\n\t\t};\n\t}\n\n\tpublic getAccessibleContent(hoverPart: MarkdownHover): string | undefined {\n\t\tconst renderedHoverPartIndex = this.renderedHoverParts.findIndex(renderedHoverPart => renderedHoverPart.hoverPart === hoverPart);\n\t\tif (renderedHoverPartIndex === -1) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst renderedHoverPart = this._getRenderedHoverPartAtIndex(renderedHoverPartIndex);\n\t\tif (!renderedHoverPart) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst hoverElementInnerText = renderedHoverPart.hoverElement.innerText;\n\t\tconst accessibleContent = hoverElementInnerText.replace(/[^\\S\\n\\r]+/gu, ' ');\n\t\treturn accessibleContent;\n\t}\n\n\tprivate async _fetchHover(hoverSource: HoverSource, model: ITextModel, action: HoverVerbosityAction): Promise<Hover | null | undefined> {\n\t\tlet verbosityDelta = action === HoverVerbosityAction.Increase ? 1 : -1;\n\t\tconst provider = hoverSource.hoverProvider;\n\t\tconst ongoingHoverOperation = this._ongoingHoverOperations.get(provider);\n\t\tif (ongoingHoverOperation) {\n\t\t\tongoingHoverOperation.tokenSource.cancel();\n\t\t\tverbosityDelta += ongoingHoverOperation.verbosityDelta;\n\t\t}\n\t\tconst tokenSource = new CancellationTokenSource();\n\t\tthis._ongoingHoverOperations.set(provider, { verbosityDelta, tokenSource });\n\t\tconst context: HoverContext = { verbosityRequest: { verbosityDelta, previousHover: hoverSource.hover } };\n\t\tlet hover: Hover | null | undefined;\n\t\ttry {\n\t\t\thover = await Promise.resolve(provider.provideHover(model, hoverSource.hoverPosition, tokenSource.token, context));\n\t\t} catch (e) {\n\t\t\tonUnexpectedExternalError(e);\n\t\t}\n\t\ttokenSource.dispose();\n\t\tthis._ongoingHoverOperations.delete(provider);\n\t\treturn hover;\n\t}\n\n\tprivate _updateRenderedHoverPart(index: number, hoverPart: MarkdownHover): RenderedMarkdownHoverPart | undefined {\n\t\tif (index >= this.renderedHoverParts.length || index < 0) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst renderedHoverPart = this._renderHoverPart(hoverPart, this._onFinishedRendering);\n\t\tconst currentRenderedHoverPart = this.renderedHoverParts[index];\n\t\tconst currentRenderedMarkdown = currentRenderedHoverPart.hoverElement;\n\t\tconst renderedMarkdown = renderedHoverPart.hoverElement;\n\t\tconst renderedChildrenElements = Array.from(renderedMarkdown.children);\n\t\tcurrentRenderedMarkdown.replaceChildren(...renderedChildrenElements);\n\t\tconst newRenderedHoverPart = new RenderedMarkdownHoverPart(\n\t\t\thoverPart,\n\t\t\tcurrentRenderedMarkdown,\n\t\t\trenderedHoverPart.disposables,\n\t\t\trenderedHoverPart.actionsContainer\n\t\t);\n\t\tcurrentRenderedHoverPart.dispose();\n\t\tthis.renderedHoverParts[index] = newRenderedHoverPart;\n\t\treturn newRenderedHoverPart;\n\t}\n\n\tprivate _getRenderedHoverPartAtIndex(index: number): RenderedMarkdownHoverPart | undefined {\n\t\treturn this.renderedHoverParts[index];\n\t}\n\n\tpublic dispose(): void {\n\t\tthis._disposables.dispose();\n\t}\n}\n\nexport function renderMarkdownHovers(\n\tcontext: IEditorHoverRenderContext,\n\tmarkdownHovers: MarkdownHover[],\n\teditor: ICodeEditor,\n\tmarkdownRendererService: IMarkdownRendererService,\n): IRenderedHoverParts<MarkdownHover> {\n\n\t// Sort hover parts to keep them stable since they might come in async, out-of-order\n\tmarkdownHovers.sort(compareBy(hover => hover.ordinal, numberComparator));\n\tconst renderedHoverParts: IRenderedHoverPart<MarkdownHover>[] = [];\n\tfor (const markdownHover of markdownHovers) {\n\t\tconst renderedHoverPart = renderMarkdown(\n\t\t\teditor,\n\t\t\tmarkdownHover,\n\t\t\tmarkdownRendererService,\n\t\t\tcontext.onContentsChanged,\n\t\t);\n\t\tcontext.fragment.appendChild(renderedHoverPart.hoverElement);\n\t\trenderedHoverParts.push(renderedHoverPart);\n\t}\n\treturn new RenderedHoverParts(renderedHoverParts);\n}\n\nfunction renderMarkdown(\n\teditor: ICodeEditor,\n\tmarkdownHover: MarkdownHover,\n\tmarkdownRendererService: IMarkdownRendererService,\n\tonFinishedRendering: () => void,\n): IRenderedHoverPart<MarkdownHover> {\n\tconst disposables = new DisposableStore();\n\tconst renderedMarkdown = $('div.hover-row');\n\tconst renderedMarkdownContents = $('div.hover-row-contents');\n\trenderedMarkdown.appendChild(renderedMarkdownContents);\n\tconst markdownStrings = markdownHover.contents;\n\tfor (const markdownString of markdownStrings) {\n\t\tif (isEmptyMarkdownString(markdownString)) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst markdownHoverElement = $('div.markdown-hover');\n\t\tconst hoverContentsElement = dom.append(markdownHoverElement, $('div.hover-contents'));\n\n\t\tconst renderedContents = disposables.add(markdownRendererService.render(markdownString, {\n\t\t\tcontext: editor,\n\t\t\tasyncRenderCallback: () => {\n\t\t\t\thoverContentsElement.className = 'hover-contents code-hover-contents';\n\t\t\t\tonFinishedRendering();\n\t\t\t}\n\t\t}));\n\t\thoverContentsElement.appendChild(renderedContents.element);\n\t\trenderedMarkdownContents.appendChild(markdownHoverElement);\n\t}\n\tconst renderedHoverPart: IRenderedHoverPart<MarkdownHover> = {\n\t\thoverPart: markdownHover,\n\t\thoverElement: renderedMarkdown,\n\t\tdispose() { disposables.dispose(); }\n\t};\n\treturn renderedHoverPart;\n}\n\nexport function labelForHoverVerbosityAction(keybindingService: IKeybindingService, action: HoverVerbosityAction): string {\n\tswitch (action) {\n\t\tcase HoverVerbosityAction.Increase: {\n\t\t\tconst kb = keybindingService.lookupKeybinding(INCREASE_HOVER_VERBOSITY_ACTION_ID);\n\t\t\treturn kb ?\n\t\t\t\tnls.localize('increaseVerbosityWithKb', \"Increase Hover Verbosity ({0})\", kb.getLabel()) :\n\t\t\t\tnls.localize('increaseVerbosity', \"Increase Hover Verbosity\");\n\t\t}\n\t\tcase HoverVerbosityAction.Decrease: {\n\t\t\tconst kb = keybindingService.lookupKeybinding(DECREASE_HOVER_VERBOSITY_ACTION_ID);\n\t\t\treturn kb ?\n\t\t\t\tnls.localize('decreaseVerbosityWithKb', \"Decrease Hover Verbosity ({0})\", kb.getLabel()) :\n\t\t\t\tnls.localize('decreaseVerbosity', \"Decrease Hover Verbosity\");\n\t\t}\n\t}\n}\n"]}