@codingame/monaco-vscode-api 6.0.2 → 7.0.0

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 (450) hide show
  1. package/README.md +93 -73
  2. package/api.js +1 -1
  3. package/debugProtocol.d.ts +10 -1
  4. package/extensions.d.ts +2 -0
  5. package/missing-services.js +21 -2
  6. package/monaco.d.ts +1 -1
  7. package/monaco.js +1 -1
  8. package/package.json +9 -9
  9. package/service-override/extensions.d.ts +1 -2
  10. package/services.js +4 -2
  11. package/vscode/src/vs/base/browser/dnd.js +1 -1
  12. package/vscode/src/vs/base/browser/dom.js +116 -5
  13. package/vscode/src/vs/base/browser/domObservable.js +16 -0
  14. package/vscode/src/vs/base/browser/markdownRenderer.js +5 -3
  15. package/vscode/src/vs/base/browser/trustedTypes.js +1 -2
  16. package/vscode/src/vs/base/browser/ui/actionbar/actionViewItems.js +1 -1
  17. package/vscode/src/vs/base/browser/ui/actionbar/actionbar.js +1 -1
  18. package/vscode/src/vs/base/browser/ui/button/button.js +2 -2
  19. package/vscode/src/vs/base/browser/ui/contextview/contextview.js +1 -4
  20. package/vscode/src/vs/base/browser/ui/dropdown/dropdown.js +1 -1
  21. package/vscode/src/vs/base/browser/ui/dropdown/dropdownActionViewItem.js +1 -1
  22. package/vscode/src/vs/base/browser/ui/highlightedlabel/highlightedLabel.js +1 -1
  23. package/vscode/src/vs/base/browser/ui/hover/hover.d.ts +32 -16
  24. package/vscode/src/vs/base/browser/ui/hover/hoverDelegate.d.ts +2 -2
  25. package/vscode/src/vs/base/browser/ui/hover/hoverDelegate2.js +2 -2
  26. package/vscode/src/vs/base/browser/ui/hover/hoverWidget.css.js +1 -1
  27. package/vscode/src/vs/base/browser/ui/hover/hoverWidget.js +2 -0
  28. package/vscode/src/vs/base/browser/ui/iconLabel/iconLabel.js +1 -1
  29. package/vscode/src/vs/base/browser/ui/iconLabel/simpleIconLabel.js +1 -1
  30. package/vscode/src/vs/base/browser/ui/inputbox/inputBox.js +1 -1
  31. package/vscode/src/vs/base/browser/ui/keybindingLabel/keybindingLabel.js +1 -1
  32. package/vscode/src/vs/base/browser/ui/list/listView.js +3 -5
  33. package/vscode/src/vs/base/browser/ui/list/rowCache.js +1 -8
  34. package/vscode/src/vs/base/browser/ui/sash/sash.js +1 -1
  35. package/vscode/src/vs/base/browser/ui/selectBox/selectBoxCustom.js +7 -11
  36. package/vscode/src/vs/base/browser/ui/splitview/paneview.js +1 -1
  37. package/vscode/src/vs/base/browser/ui/splitview/splitview.js +1 -1
  38. package/vscode/src/vs/base/browser/ui/table/tableWidget.js +1 -1
  39. package/vscode/src/vs/base/browser/ui/toggle/toggle.js +1 -1
  40. package/vscode/src/vs/base/browser/ui/toolbar/toolbar.d.ts +8 -1
  41. package/vscode/src/vs/base/browser/ui/toolbar/toolbar.js +2 -3
  42. package/vscode/src/vs/base/browser/ui/tree/abstractTree.js +1 -1
  43. package/vscode/src/vs/base/browser/ui/tree/asyncDataTree.js +0 -3
  44. package/vscode/src/vs/base/common/assert.js +1 -1
  45. package/vscode/src/vs/base/common/collections.js +49 -1
  46. package/vscode/src/vs/base/common/equals.js +55 -5
  47. package/vscode/src/vs/base/common/errors.js +14 -1
  48. package/vscode/src/vs/base/common/event.js +2 -1
  49. package/vscode/src/vs/base/common/history.js +7 -4
  50. package/vscode/src/vs/base/common/iterator.js +9 -1
  51. package/vscode/src/vs/base/common/map.d.ts +41 -0
  52. package/vscode/src/vs/base/common/numbers.js +18 -1
  53. package/vscode/src/vs/base/common/observableInternal/api.js +11 -0
  54. package/vscode/src/vs/base/common/observableInternal/autorun.js +18 -1
  55. package/vscode/src/vs/base/common/observableInternal/base.d.ts +8 -1
  56. package/vscode/src/vs/base/common/observableInternal/base.js +2 -5
  57. package/vscode/src/vs/base/common/observableInternal/derived.js +13 -3
  58. package/vscode/src/vs/base/common/observableInternal/lazyObservableValue.js +109 -0
  59. package/vscode/src/vs/base/common/observableInternal/promise.js +3 -0
  60. package/vscode/src/vs/base/common/observableInternal/utils.d.ts +7 -0
  61. package/vscode/src/vs/base/common/observableInternal/utils.js +64 -12
  62. package/vscode/src/vs/base/common/prefixTree.d.ts +52 -0
  63. package/vscode/src/vs/base/common/product.d.ts +1 -0
  64. package/vscode/src/vs/base/parts/ipc/common/ipc.js +1 -1
  65. package/vscode/src/vs/editor/browser/config/charWidthReader.js +1 -1
  66. package/vscode/src/vs/editor/browser/controller/textAreaHandler.js +1 -1
  67. package/vscode/src/vs/editor/browser/coreCommands.js +2 -1
  68. package/vscode/src/vs/editor/browser/observableCodeEditor.js +230 -0
  69. package/vscode/src/vs/editor/browser/services/abstractCodeEditorService.js +1 -1
  70. package/vscode/src/vs/editor/browser/services/hoverService/hoverService.js +26 -26
  71. package/vscode/src/vs/editor/browser/services/hoverService/updatableHoverWidget.js +2 -2
  72. package/vscode/src/vs/editor/browser/view/domLineBreaksComputer.js +1 -1
  73. package/vscode/src/vs/editor/browser/view/viewLayer.js +4 -12
  74. package/vscode/src/vs/editor/browser/viewParts/contentWidgets/contentWidgets.js +1 -1
  75. package/vscode/src/vs/editor/browser/viewParts/glyphMargin/glyphMargin.js +1 -1
  76. package/vscode/src/vs/editor/browser/viewParts/viewZones/viewZones.js +2 -2
  77. package/vscode/src/vs/editor/browser/widget/codeEditor/codeEditorWidget.js +15 -4
  78. package/vscode/src/vs/editor/browser/widget/diffEditor/components/diffEditorEditors.js +8 -8
  79. package/vscode/src/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/diffEditorViewZones.js +4 -4
  80. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorOptions.js +1 -1
  81. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorViewModel.js +1 -1
  82. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorWidget.js +14 -2
  83. package/vscode/src/vs/editor/browser/widget/diffEditor/features/gutterFeature.js +1 -1
  84. package/vscode/src/vs/editor/browser/widget/diffEditor/features/movedBlocksLinesFeature.js +2 -2
  85. package/vscode/src/vs/editor/browser/widget/diffEditor/registrations.contribution.js +2 -2
  86. package/vscode/src/vs/editor/browser/widget/diffEditor/utils/editorGutter.js +3 -3
  87. package/vscode/src/vs/editor/browser/widget/diffEditor/utils.js +2 -2
  88. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/colors.js +1 -1
  89. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidgetImpl.js +2 -2
  90. package/vscode/src/vs/editor/common/config/editorOptions.d.ts +5 -0
  91. package/vscode/src/vs/editor/common/config/editorOptions.js +83 -65
  92. package/vscode/src/vs/editor/common/core/editorColorRegistry.js +43 -43
  93. package/vscode/src/vs/editor/common/cursor/cursor.js +3 -2
  94. package/vscode/src/vs/editor/common/cursor/cursorTypeEditOperations.js +911 -0
  95. package/vscode/src/vs/editor/common/cursor/cursorTypeOperations.js +36 -799
  96. package/vscode/src/vs/editor/common/cursor/cursorWordOperations.js +6 -5
  97. package/vscode/src/vs/editor/common/languageFeatureRegistry.d.ts +1 -0
  98. package/vscode/src/vs/editor/common/languageFeatureRegistry.js +3 -0
  99. package/vscode/src/vs/editor/common/languages/autoIndent.js +23 -1
  100. package/vscode/src/vs/editor/common/languages.d.ts +20 -3
  101. package/vscode/src/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsImpl.js +6 -6
  102. package/vscode/src/vs/editor/common/model/pieceTreeTextBuffer/pieceTreeBase.js +19 -0
  103. package/vscode/src/vs/editor/common/model/pieceTreeTextBuffer/pieceTreeTextBuffer.js +3 -0
  104. package/vscode/src/vs/editor/common/model/textModel.js +6 -2
  105. package/vscode/src/vs/editor/common/model/tokenizationTextModelPart.js +5 -5
  106. package/vscode/src/vs/editor/common/model.d.ts +4 -0
  107. package/vscode/src/vs/editor/common/services/getIconClasses.js +1 -1
  108. package/vscode/src/vs/editor/common/services/semanticTokensProviderStyling.js +2 -15
  109. package/vscode/src/vs/editor/common/standalone/standaloneEnums.js +63 -62
  110. package/vscode/src/vs/editor/common/viewModel/viewModelImpl.js +11 -8
  111. package/vscode/src/vs/editor/contrib/bracketMatching/browser/bracketMatching.js +1 -1
  112. package/vscode/src/vs/editor/contrib/codeAction/browser/codeActionController.js +2 -17
  113. package/vscode/src/vs/editor/contrib/codeAction/browser/lightBulbWidget.css.js +1 -1
  114. package/vscode/src/vs/editor/contrib/codeAction/browser/lightBulbWidget.js +18 -5
  115. package/vscode/src/vs/editor/contrib/colorPicker/browser/colorHoverParticipant.js +55 -27
  116. package/vscode/src/vs/editor/contrib/colorPicker/browser/colorPickerWidget.js +7 -4
  117. package/vscode/src/vs/editor/contrib/colorPicker/browser/standaloneColorPickerWidget.js +9 -9
  118. package/vscode/src/vs/editor/contrib/contextmenu/browser/contextmenu.js +1 -1
  119. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js +103 -47
  120. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/defaultProviders.js +8 -2
  121. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController.js +18 -10
  122. package/vscode/src/vs/editor/contrib/find/browser/findWidget.js +2 -4
  123. package/vscode/src/vs/editor/contrib/folding/browser/folding.css.js +1 -1
  124. package/vscode/src/vs/editor/contrib/folding/browser/folding.js +33 -13
  125. package/vscode/src/vs/editor/contrib/folding/browser/foldingDecorations.js +12 -7
  126. package/vscode/src/vs/editor/contrib/gotoError/browser/gotoErrorWidget.js +1 -1
  127. package/vscode/src/vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget.js +2 -2
  128. package/vscode/src/vs/editor/contrib/hover/browser/contentHoverController.js +161 -185
  129. package/vscode/src/vs/editor/contrib/hover/browser/contentHoverRendered.js +321 -0
  130. package/vscode/src/vs/editor/contrib/hover/browser/contentHoverStatusBar.js +4 -1
  131. package/vscode/src/vs/editor/contrib/hover/browser/contentHoverTypes.js +6 -21
  132. package/vscode/src/vs/editor/contrib/hover/browser/contentHoverWidget.js +39 -40
  133. package/vscode/src/vs/editor/contrib/hover/browser/hoverAccessibleViews.js +55 -46
  134. package/vscode/src/vs/editor/contrib/hover/browser/hoverActions.js +12 -2
  135. package/vscode/src/vs/editor/contrib/hover/browser/hoverController.js +15 -9
  136. package/vscode/src/vs/editor/contrib/hover/browser/hoverTypes.js +11 -1
  137. package/vscode/src/vs/editor/contrib/hover/browser/markdownHoverParticipant.js +141 -93
  138. package/vscode/src/vs/editor/contrib/hover/browser/markerHoverParticipant.js +24 -7
  139. package/vscode/src/vs/editor/contrib/indentation/browser/indentation.js +36 -1
  140. package/vscode/src/vs/editor/contrib/inlayHints/browser/inlayHintsHover.js +5 -3
  141. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/ghostTextWidget.js +1 -1
  142. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/hoverParticipant.js +25 -12
  143. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsController.js +88 -118
  144. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsHintsWidget.js +1 -1
  145. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsModel.js +34 -33
  146. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsSource.js +2 -2
  147. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/provideInlineCompletions.js +11 -4
  148. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/suggestWidgetInlineCompletionProvider.js +10 -19
  149. package/vscode/src/vs/editor/contrib/inlineEdit/browser/ghostTextWidget.js +1 -1
  150. package/vscode/src/vs/editor/contrib/inlineEdit/browser/hoverParticipant.js +45 -27
  151. package/vscode/src/vs/editor/contrib/inlineEdit/browser/inlineEditController.js +4 -4
  152. package/vscode/src/vs/editor/contrib/inlineEdit/browser/inlineEditHintsWidget.js +1 -1
  153. package/vscode/src/vs/editor/contrib/inlineEdits/browser/commands.js +126 -0
  154. package/vscode/src/vs/editor/contrib/inlineEdits/browser/consts.js +9 -0
  155. package/vscode/src/vs/editor/contrib/inlineEdits/browser/inlineEdits.contribution.js +9 -0
  156. package/vscode/src/vs/editor/contrib/inlineEdits/browser/inlineEditsController.js +82 -0
  157. package/vscode/src/vs/editor/contrib/inlineEdits/browser/inlineEditsModel.js +240 -0
  158. package/vscode/src/vs/editor/contrib/inlineEdits/browser/inlineEditsWidget.css.js +4 -0
  159. package/vscode/src/vs/editor/contrib/inlineEdits/browser/inlineEditsWidget.js +322 -0
  160. package/vscode/src/vs/editor/contrib/inlineProgress/browser/inlineProgress.js +8 -4
  161. package/vscode/src/vs/editor/contrib/linesOperations/browser/linesOperations.js +3 -2
  162. package/vscode/src/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +1 -1
  163. package/vscode/src/vs/editor/contrib/peekView/browser/peekView.js +2 -2
  164. package/vscode/src/vs/editor/contrib/placeholderText/browser/placeholderText.contribution.js +60 -0
  165. package/vscode/src/vs/editor/contrib/placeholderText/browser/placeholderText.css.js +4 -0
  166. package/vscode/src/vs/editor/contrib/rename/browser/renameWidget.js +1 -1
  167. package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScroll.css.js +1 -1
  168. package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScrollController.js +38 -20
  169. package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScrollWidget.js +3 -0
  170. package/vscode/src/vs/editor/contrib/suggest/browser/suggestWidget.js +9 -9
  171. package/vscode/src/vs/editor/contrib/suggest/browser/suggestWidgetStatus.js +10 -32
  172. package/vscode/src/vs/editor/contrib/symbolIcons/browser/symbolIcons.js +23 -138
  173. package/vscode/src/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +3 -0
  174. package/vscode/src/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.js +5 -5
  175. package/vscode/src/vs/editor/contrib/wordOperations/browser/wordOperations.js +13 -12
  176. package/vscode/src/vs/editor/contrib/wordPartOperations/browser/wordPartOperations.js +3 -3
  177. package/vscode/src/vs/editor/editor.api.d.ts +31 -5
  178. package/vscode/src/vs/platform/accessibility/browser/accessibilityService.js +21 -0
  179. package/vscode/src/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js +5 -6
  180. package/vscode/src/vs/platform/actionWidget/browser/actionWidget.js +1 -1
  181. package/vscode/src/vs/platform/actions/browser/buttonbar.js +27 -6
  182. package/vscode/src/vs/platform/actions/browser/floatingMenu.js +1 -1
  183. package/vscode/src/vs/platform/actions/browser/menuEntryActionViewItem.css.js +1 -1
  184. package/vscode/src/vs/platform/actions/browser/menuEntryActionViewItem.js +33 -3
  185. package/vscode/src/vs/platform/actions/browser/toolbar.js +2 -1
  186. package/vscode/src/vs/platform/actions/common/actions.d.ts +3 -0
  187. package/vscode/src/vs/platform/actions/common/actions.js +3 -0
  188. package/vscode/src/vs/platform/actions/common/menuService.js +3 -2
  189. package/vscode/src/vs/platform/clipboard/browser/clipboardService.js +1 -1
  190. package/vscode/src/vs/platform/configuration/common/configurationRegistry.d.ts +7 -5
  191. package/vscode/src/vs/platform/configuration/common/configurationRegistry.js +109 -13
  192. package/vscode/src/vs/platform/diagnostics/common/diagnostics.d.ts +2 -0
  193. package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.d.ts +12 -6
  194. package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.js +2 -0
  195. package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.service.d.ts +3 -3
  196. package/vscode/src/vs/platform/extensionManagement/common/extensionsScannerService.js +20 -10
  197. package/vscode/src/vs/platform/extensions/common/extensionValidator.js +46 -8
  198. package/vscode/src/vs/platform/extensions/common/extensions.d.ts +1 -1
  199. package/vscode/src/vs/platform/extensions/common/extensions.js +12 -3
  200. package/vscode/src/vs/platform/extensions/common/extensionsApiProposals.js +368 -0
  201. package/vscode/src/vs/platform/files/common/watcher.js +21 -24
  202. package/vscode/src/vs/platform/list/browser/listService.js +2 -1
  203. package/vscode/src/vs/platform/observable/common/platformObservableUtils.js +2 -2
  204. package/vscode/src/vs/platform/opener/browser/link.js +1 -1
  205. package/vscode/src/vs/platform/product/common/product.js +1 -1
  206. package/vscode/src/vs/platform/quickinput/browser/quickInputTree.js +1 -1
  207. package/vscode/src/vs/platform/remote/common/remoteExtensionsScanner.service.d.ts +0 -2
  208. package/vscode/src/vs/platform/request/common/request.js +18 -8
  209. package/vscode/src/vs/platform/terminal/common/capabilities/capabilities.d.ts +2 -6
  210. package/vscode/src/vs/platform/terminal/common/capabilities/commandDetection/promptInputModel.d.ts +8 -1
  211. package/vscode/src/vs/platform/theme/common/colorUtils.d.ts +1 -1
  212. package/vscode/src/vs/platform/theme/common/colorUtils.js +25 -5
  213. package/vscode/src/vs/platform/theme/common/colors/baseColors.js +1 -1
  214. package/vscode/src/vs/platform/theme/common/colors/chartsColors.js +6 -6
  215. package/vscode/src/vs/platform/theme/common/colors/editorColors.js +35 -35
  216. package/vscode/src/vs/platform/theme/common/colors/inputColors.js +9 -9
  217. package/vscode/src/vs/platform/theme/common/colors/listColors.js +11 -11
  218. package/vscode/src/vs/platform/theme/common/colors/menuColors.js +4 -4
  219. package/vscode/src/vs/platform/theme/common/colors/minimapColors.js +5 -5
  220. package/vscode/src/vs/platform/theme/common/colors/miscColors.js +1 -1
  221. package/vscode/src/vs/platform/theme/common/colors/quickpickColors.js +5 -5
  222. package/vscode/src/vs/platform/tunnel/common/tunnel.js +4 -1
  223. package/vscode/src/vs/platform/userDataProfile/common/userDataProfile.js +75 -19
  224. package/vscode/src/vs/platform/window/common/window.d.ts +2 -2
  225. package/vscode/src/vs/workbench/api/common/extHost.api.impl.js +32 -25
  226. package/vscode/src/vs/workbench/api/common/extHost.common.services.js +2 -0
  227. package/vscode/src/vs/workbench/api/common/extHost.protocol.js +2 -0
  228. package/vscode/src/vs/workbench/api/common/extHostAuthentication.js +5 -11
  229. package/vscode/src/vs/workbench/api/common/extHostChatAgents2.js +5 -15
  230. package/vscode/src/vs/workbench/api/common/extHostChatVariables.js +2 -5
  231. package/vscode/src/vs/workbench/api/common/extHostComments.js +9 -3
  232. package/vscode/src/vs/workbench/api/common/extHostDebugService.js +32 -22
  233. package/vscode/src/vs/workbench/api/common/extHostExtensionService.js +3 -3
  234. package/vscode/src/vs/workbench/api/common/extHostLanguageFeatures.js +109 -40
  235. package/vscode/src/vs/workbench/api/common/extHostLanguageModelTools.js +46 -0
  236. package/vscode/src/vs/workbench/api/common/extHostLanguageModels.js +84 -35
  237. package/vscode/src/vs/workbench/api/common/extHostNotebook.js +2 -2
  238. package/vscode/src/vs/workbench/api/common/extHostSCM.js +50 -41
  239. package/vscode/src/vs/workbench/api/common/extHostSearch.js +2 -2
  240. package/vscode/src/vs/workbench/api/common/extHostSecrets.js +11 -8
  241. package/vscode/src/vs/workbench/api/common/extHostTerminalService.js +7 -6
  242. package/vscode/src/vs/workbench/api/common/extHostTesting.js +63 -70
  243. package/vscode/src/vs/workbench/api/common/extHostTextEditors.js +5 -3
  244. package/vscode/src/vs/workbench/api/common/extHostTypeConverters.js +75 -16
  245. package/vscode/src/vs/workbench/api/common/extHostTypes.js +29 -4
  246. package/vscode/src/vs/workbench/api/common/extHostWorkspace.js +1 -1
  247. package/vscode/src/vs/workbench/browser/actions/developerActions.js +1 -1
  248. package/vscode/src/vs/workbench/browser/parts/editor/editorActions.js +127 -107
  249. package/vscode/src/vs/workbench/browser/parts/editor/editorCommands.js +2 -2
  250. package/vscode/src/vs/workbench/browser/parts/editor/editorPanes.js +1 -1
  251. package/vscode/src/vs/workbench/browser/parts/editor/editorStatus.js +33 -21
  252. package/vscode/src/vs/workbench/browser/parts/editor/sideBySideEditor.js +1 -1
  253. package/vscode/src/vs/workbench/browser/parts/globalCompositeBar.js +5 -5
  254. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsToasts.js +1 -1
  255. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsViewer.js +2 -2
  256. package/vscode/src/vs/workbench/browser/parts/views/checkbox.js +2 -2
  257. package/vscode/src/vs/workbench/browser/parts/views/treeView.js +23 -6
  258. package/vscode/src/vs/workbench/browser/parts/views/viewFilter.js +3 -1
  259. package/vscode/src/vs/workbench/browser/parts/views/viewPane.js +3 -3
  260. package/vscode/src/vs/workbench/browser/parts/views/viewPaneContainer.js +1 -1
  261. package/vscode/src/vs/workbench/browser/web.api.js +8 -0
  262. package/vscode/src/vs/workbench/browser/workbench.contribution.js +199 -194
  263. package/vscode/src/vs/workbench/common/configuration.js +1 -1
  264. package/vscode/src/vs/workbench/common/contributions.js +8 -1
  265. package/vscode/src/vs/workbench/common/editor.js +5 -1
  266. package/vscode/src/vs/workbench/common/theme.js +79 -454
  267. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration.js +221 -239
  268. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatActions.js +17 -15
  269. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +1 -0
  270. package/vscode/src/vs/workbench/contrib/chat/browser/chatAgentHover.js +4 -0
  271. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatCollections.js +27 -0
  272. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatCommandContentPart.js +35 -0
  273. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatConfirmationContentPart.js +51 -0
  274. package/vscode/src/vs/workbench/contrib/chat/browser/{chatConfirmationWidget.js → chatContentParts/chatConfirmationWidget.js} +9 -9
  275. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatMarkdownContentPart.js +131 -0
  276. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatProgressContentPart.js +37 -0
  277. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatReferencesContentPart.js +263 -0
  278. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatTaskContentPart.js +37 -0
  279. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatTextEditContentPart.js +160 -0
  280. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatTreeContentPart.js +171 -0
  281. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatWarningContentPart.js +34 -0
  282. package/vscode/src/vs/workbench/contrib/chat/browser/{media → chatContentParts/media}/chatConfirmationWidget.css.js +1 -1
  283. package/vscode/src/vs/workbench/contrib/chat/browser/chatInputPart.js +91 -44
  284. package/vscode/src/vs/workbench/contrib/chat/browser/chatListRenderer.js +292 -1019
  285. package/vscode/src/vs/workbench/contrib/chat/browser/chatMarkdownDecorationsRenderer.js +2 -2
  286. package/vscode/src/vs/workbench/contrib/chat/browser/chatMarkdownRenderer.js +1 -1
  287. package/vscode/src/vs/workbench/contrib/chat/browser/chatWidget.js +22 -7
  288. package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockPart.css.js +1 -1
  289. package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockPart.js +61 -54
  290. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatDynamicVariables.js +23 -16
  291. package/vscode/src/vs/workbench/contrib/chat/browser/media/chat.css.js +1 -1
  292. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatAgentHover.css.js +1 -1
  293. package/vscode/src/vs/workbench/contrib/chat/common/chatAgents.js +8 -0
  294. package/vscode/src/vs/workbench/contrib/chat/common/chatColors.js +1 -1
  295. package/vscode/src/vs/workbench/contrib/chat/common/chatModel.js +3 -3
  296. package/vscode/src/vs/workbench/contrib/chat/common/chatWordCounter.js +5 -4
  297. package/vscode/src/vs/workbench/contrib/chat/common/codeBlockModelCollection.js +16 -0
  298. package/vscode/src/vs/workbench/contrib/chat/common/languageModelToolsService.service.js +3 -0
  299. package/vscode/src/vs/workbench/contrib/chat/common/languageModels.js +2 -2
  300. package/vscode/src/vs/workbench/contrib/codeActions/browser/codeActionsContribution.js +43 -16
  301. package/vscode/src/vs/workbench/contrib/codeEditor/browser/diffEditorHelper.js +1 -1
  302. package/vscode/src/vs/workbench/contrib/codeEditor/browser/find/simpleFindWidget.js +1 -3
  303. package/vscode/src/vs/workbench/contrib/codeEditor/browser/suggestEnabledInput/suggestEnabledInput.js +1 -1
  304. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleMultiCursorModifier.js +7 -5
  305. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleWordWrap.js +7 -7
  306. package/vscode/src/vs/workbench/contrib/comments/browser/commentColors.js +3 -3
  307. package/vscode/src/vs/workbench/contrib/comments/browser/commentGlyphWidget.js +3 -3
  308. package/vscode/src/vs/workbench/contrib/comments/browser/commentReply.js +2 -2
  309. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadBody.js +1 -1
  310. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadHeader.js +2 -1
  311. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadWidget.js +2 -1
  312. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadZoneWidget.js +1 -1
  313. package/vscode/src/vs/workbench/contrib/comments/browser/commentsController.js +8 -5
  314. package/vscode/src/vs/workbench/contrib/comments/browser/commentsTreeViewer.js +1 -1
  315. package/vscode/src/vs/workbench/contrib/comments/browser/media/panel.css.js +1 -1
  316. package/vscode/src/vs/workbench/contrib/comments/browser/media/review.css.js +1 -1
  317. package/vscode/src/vs/workbench/contrib/comments/browser/timestamp.js +1 -1
  318. package/vscode/src/vs/workbench/contrib/contextmenu/browser/contextmenu.contribution.js +5 -5
  319. package/vscode/src/vs/workbench/contrib/debug/browser/baseDebugView.js +14 -7
  320. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointEditorContribution.js +4 -4
  321. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointWidget.js +8 -7
  322. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointsView.js +19 -16
  323. package/vscode/src/vs/workbench/contrib/debug/browser/debugColors.js +13 -12
  324. package/vscode/src/vs/workbench/contrib/debug/common/debug.d.ts +19 -2
  325. package/vscode/src/vs/workbench/contrib/debug/common/debug.js +9 -4
  326. package/vscode/src/vs/workbench/contrib/debug/common/debugModel.js +10 -5
  327. package/vscode/src/vs/workbench/contrib/debug/common/replModel.js +4 -4
  328. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsActions.js +235 -173
  329. package/vscode/src/vs/workbench/contrib/extensions/browser/media/extensionActions.css.js +1 -1
  330. package/vscode/src/vs/workbench/contrib/extensions/common/extensions.js +2 -1
  331. package/vscode/src/vs/workbench/contrib/files/browser/fileActions.js +17 -5
  332. package/vscode/src/vs/workbench/contrib/files/browser/files.contribution._configuration.js +62 -44
  333. package/vscode/src/vs/workbench/contrib/files/browser/files.contribution._editorPane.js +2 -2
  334. package/vscode/src/vs/workbench/contrib/files/browser/views/openEditorsView.js +2 -2
  335. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +114 -107
  336. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatContentWidget.js +33 -25
  337. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +71 -101
  338. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSession.js +38 -43
  339. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +11 -33
  340. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatStrategies.js +3 -4
  341. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +49 -86
  342. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.js +60 -71
  343. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChat.css.js +1 -1
  344. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatContentWidget.css.js +1 -1
  345. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +116 -113
  346. package/vscode/src/vs/workbench/contrib/markdown/browser/markdownDocumentRenderer.js +6 -10
  347. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInputModel.js +2 -2
  348. package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditorInput.js +1 -0
  349. package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/scmMultiDiffSourceResolver.js +2 -2
  350. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/findFilters.js +12 -23
  351. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/findMatchDecorationModel.js +0 -2
  352. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/findModel.js +7 -9
  353. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindReplaceWidget.js +88 -61
  354. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +1 -3
  355. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOutputActions.js +39 -3
  356. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +2 -1
  357. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatController.js +12 -11
  358. package/vscode/src/vs/workbench/contrib/notebook/browser/media/notebookCellChat.css.js +1 -1
  359. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookAccessibilityProvider.js +1 -1
  360. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookBrowser.js +3 -2
  361. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.js +40 -105
  362. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookIcons.js +27 -26
  363. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookOptions.js +14 -5
  364. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellActionView.js +1 -1
  365. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellComments.js +43 -46
  366. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellDnd.js +1 -1
  367. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellOutput.js +4 -4
  368. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellStatusPart.js +12 -9
  369. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellToolbars.js +19 -14
  370. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCell.js +2 -2
  371. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCellRunToolbar.js +9 -6
  372. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/markupCell.js +1 -1
  373. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/backLayerWebView.js +5 -3
  374. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/cellRenderer.js +3 -3
  375. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/webviewPreloads.js +1 -1
  376. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/baseCellViewModel.js +16 -6
  377. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/codeCellViewModel.js +8 -8
  378. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/notebookOutlineDataSourceFactory.service.js +3 -0
  379. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/notebookViewModelImpl.js +11 -12
  380. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookEditorStickyScroll.js +12 -13
  381. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookEditorToolbar.js +1 -1
  382. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookTopCellToolbar.js +5 -3
  383. package/vscode/src/vs/workbench/contrib/notebook/common/notebookCommon.js +9 -2
  384. package/vscode/src/vs/workbench/contrib/notebook/common/notebookEditorInput.js +37 -36
  385. package/vscode/src/vs/workbench/contrib/notebook/common/notebookEditorModel.js +18 -8
  386. package/vscode/src/vs/workbench/contrib/preferences/browser/preferencesWidgets.js +1 -1
  387. package/vscode/src/vs/workbench/contrib/preferences/browser/settingsTreeModels.js +14 -5
  388. package/vscode/src/vs/workbench/contrib/preferences/common/settingsEditorColorRegistry.js +17 -22
  389. package/vscode/src/vs/workbench/contrib/remote/browser/media/tunnelView.css.js +1 -1
  390. package/vscode/src/vs/workbench/contrib/remote/browser/tunnelView.js +7 -10
  391. package/vscode/src/vs/workbench/contrib/scm/browser/dirtydiffDecorator.js +7 -27
  392. package/vscode/src/vs/workbench/contrib/search/browser/anythingQuickAccess.js +3 -4
  393. package/vscode/src/vs/workbench/contrib/search/browser/notebookSearch/notebookSearchService.js +2 -2
  394. package/vscode/src/vs/workbench/contrib/search/browser/searchActionsFind.js +4 -0
  395. package/vscode/src/vs/workbench/contrib/search/browser/searchModel.js +3 -3
  396. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.d.ts +3 -0
  397. package/vscode/src/vs/workbench/contrib/terminal/common/terminal.d.ts +0 -1
  398. package/vscode/src/vs/workbench/contrib/terminal/common/terminalColorRegistry.js +13 -37
  399. package/vscode/src/vs/workbench/contrib/testing/common/testCoverage.d.ts +88 -0
  400. package/vscode/src/vs/workbench/contrib/testing/common/testCoverage.js +48 -31
  401. package/vscode/src/vs/workbench/contrib/testing/common/testId.d.ts +115 -0
  402. package/vscode/src/vs/workbench/contrib/testing/common/testResult.d.ts +226 -0
  403. package/vscode/src/vs/workbench/contrib/testing/common/testTypes.d.ts +319 -0
  404. package/vscode/src/vs/workbench/contrib/testing/common/testTypes.js +2 -3
  405. package/vscode/src/vs/workbench/contrib/testing/common/testingStates.d.ts +10 -0
  406. package/vscode/src/vs/workbench/contrib/webview/browser/webviewWindowDragMonitor.js +21 -2
  407. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewIconManager.js +7 -8
  408. package/vscode/src/vs/workbench/services/authentication/browser/authenticationService.js +3 -3
  409. package/vscode/src/vs/workbench/services/authentication/common/authentication.d.ts +10 -5
  410. package/vscode/src/vs/workbench/services/editor/common/customEditorLabelService.js +54 -21
  411. package/vscode/src/vs/workbench/services/extensionManagement/common/extensionManagement.service.d.ts +1 -0
  412. package/vscode/src/vs/workbench/services/extensions/browser/extensionService.d.ts +1 -2
  413. package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.d.ts +2 -4
  414. package/vscode/src/vs/workbench/services/extensions/common/extensions.js +5 -3
  415. package/vscode/src/vs/workbench/services/extensions/common/extensions.service.d.ts +3 -1
  416. package/vscode/src/vs/workbench/services/extensions/common/extensionsRegistry.js +59 -41
  417. package/vscode/src/vs/workbench/services/extensions/common/rpcProtocol.js +1 -1
  418. package/vscode/src/vs/workbench/services/filesConfiguration/common/filesConfigurationService.js +3 -2
  419. package/vscode/src/vs/workbench/services/host/browser/host.service.d.ts +1 -0
  420. package/vscode/src/vs/workbench/services/language/common/languageService.js +7 -0
  421. package/vscode/src/vs/workbench/services/layout/browser/layoutService.js +1 -1
  422. package/vscode/src/vs/workbench/services/preferences/common/preferences.d.ts +2 -2
  423. package/vscode/src/vs/workbench/services/search/common/search.js +2 -1
  424. package/vscode/src/vs/workbench/services/search/common/textSearchManager.js +2 -2
  425. package/vscode/src/vs/workbench/services/statusbar/browser/statusbar.d.ts +2 -2
  426. package/vscode/src/vs/workbench/services/textfile/common/encoding.js +69 -26
  427. package/vscode/src/vs/workbench/services/textfile/common/textFileEditorModel.js +23 -4
  428. package/vscode/src/vs/workbench/services/textfile/common/textfiles.d.ts +5 -1
  429. package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfileIcons.js +1 -1
  430. package/vscode/src/vs/workbench/services/views/browser/viewsService.js +12 -5
  431. package/vscode/src/vs/workbench/services/workingCopy/common/storedFileWorkingCopy.js +38 -19
  432. package/vscode/src/vs/workbench/services/workingCopy/common/workingCopyFileService.service.d.ts +2 -1
  433. package/vscode-dts/vscode.proposed.aiTextSearchProvider.d.ts +0 -196
  434. package/vscode-dts/vscode.proposed.attributableCoverage.d.ts +28 -10
  435. package/vscode-dts/vscode.proposed.authGetSessions.d.ts +30 -22
  436. package/vscode-dts/vscode.proposed.chatProvider.d.ts +17 -8
  437. package/vscode-dts/vscode.proposed.chatVariableResolver.d.ts +0 -9
  438. package/vscode-dts/vscode.proposed.commentReveal.d.ts +32 -0
  439. package/vscode-dts/vscode.proposed.commentThreadApplicability.d.ts +10 -0
  440. package/vscode-dts/vscode.proposed.createFileSystemWatcher.d.ts +1 -1
  441. package/vscode-dts/vscode.proposed.fileComments.d.ts +12 -53
  442. package/vscode-dts/vscode.proposed.fileSearchProvider.d.ts +6 -0
  443. package/vscode-dts/vscode.proposed.inlineCompletionsAdditions.d.ts +6 -0
  444. package/vscode-dts/vscode.proposed.lmTools.d.ts +91 -0
  445. package/vscode-dts/vscode.proposed.mappedEditsProvider.d.ts +1 -1
  446. package/vscode-dts/vscode.proposed.scmHistoryProvider.d.ts +10 -6
  447. package/vscode-dts/vscode.proposed.terminalShellIntegration.d.ts +38 -13
  448. package/vscode/src/vs/editor/browser/observableUtilities.js +0 -58
  449. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/notebookOutlineProviderFactory.service.js +0 -3
  450. package/vscode/src/vs/workbench/services/extensions/common/extensionsApiProposals.js +0 -122
@@ -1,14 +1,14 @@
1
1
  import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
2
- import { addDisposableListener, EventType, append, $ as $$1 } from '../../../../base/browser/dom.js';
2
+ import { append, $ as $$1 } from '../../../../base/browser/dom.js';
3
3
  import { asArray, compareBy, numberComparator } from '../../../../base/common/arrays.js';
4
4
  import { CancellationTokenSource } from '../../../../base/common/cancellation.js';
5
5
  import { MarkdownString, isEmptyMarkdownString } from '../../../../base/common/htmlContent.js';
6
- import { Disposable, toDisposable, DisposableStore } from '../../../../base/common/lifecycle.js';
6
+ import { DisposableStore, toDisposable } from '../../../../base/common/lifecycle.js';
7
7
  import { MarkdownRenderer } from '../../../browser/widget/markdownRenderer/browser/markdownRenderer.js';
8
8
  import { DECREASE_HOVER_VERBOSITY_ACTION_ID, INCREASE_HOVER_VERBOSITY_ACTION_ID } from './hoverActionIds.js';
9
9
  import { Range } from '../../../common/core/range.js';
10
10
  import { ILanguageService } from '../../../common/languages/language.js';
11
- import { HoverAnchorType } from './hoverTypes.js';
11
+ import { HoverAnchorType, RenderedHoverParts } from './hoverTypes.js';
12
12
  import { localizeWithPath } from '../../../../nls.js';
13
13
  import { IConfigurationService } from '../../../../platform/configuration/common/configuration.service.js';
14
14
  import { IOpenerService } from '../../../../platform/opener/common/opener.service.js';
@@ -26,6 +26,7 @@ import { WorkbenchHoverDelegate } from '../../../../platform/hover/browser/hover
26
26
  import { IHoverService } from '../../../../platform/hover/browser/hover.service.js';
27
27
  import { AsyncIterableObject } from '../../../../base/common/async.js';
28
28
  import { getHoverProviderResultsAsAsyncIterable } from './getHover.js';
29
+ import { ICommandService } from '../../../../platform/commands/common/commands.service.js';
29
30
  const _moduleId = "vs/editor/contrib/hover/browser/markdownHoverParticipant";
30
31
  const $ = $$1;
31
32
  const increaseHoverVerbosityIcon = registerIcon('hover-increase-verbosity', Codicon.add, ( localizeWithPath(_moduleId, 0, 'Icon for increaseing hover verbosity.')));
@@ -61,7 +62,7 @@ class HoverSource {
61
62
  }
62
63
  }
63
64
  let MarkdownHoverParticipant = class MarkdownHoverParticipant {
64
- constructor(_editor, _languageService, _openerService, _configurationService, _languageFeaturesService, _keybindingService, _hoverService) {
65
+ constructor(_editor, _languageService, _openerService, _configurationService, _languageFeaturesService, _keybindingService, _hoverService, _commandService) {
65
66
  this._editor = _editor;
66
67
  this._languageService = _languageService;
67
68
  this._openerService = _openerService;
@@ -69,6 +70,7 @@ let MarkdownHoverParticipant = class MarkdownHoverParticipant {
69
70
  this._languageFeaturesService = _languageFeaturesService;
70
71
  this._keybindingService = _keybindingService;
71
72
  this._hoverService = _hoverService;
73
+ this._commandService = _commandService;
72
74
  this.hoverOrdinal = 3;
73
75
  }
74
76
  createLoadingMessage(anchor) {
@@ -167,9 +169,11 @@ let MarkdownHoverParticipant = class MarkdownHoverParticipant {
167
169
  this._renderedHoverParts = ( (new MarkdownRenderedHoverParts(
168
170
  hoverParts,
169
171
  context.fragment,
172
+ this,
170
173
  this._editor,
171
174
  this._languageService,
172
175
  this._openerService,
176
+ this._commandService,
173
177
  this._keybindingService,
174
178
  this._hoverService,
175
179
  this._configurationService,
@@ -177,17 +181,14 @@ let MarkdownHoverParticipant = class MarkdownHoverParticipant {
177
181
  )));
178
182
  return this._renderedHoverParts;
179
183
  }
180
- markdownHoverContentAtIndex(index) {
181
- return this._renderedHoverParts?.markdownHoverContentAtIndex(index) ?? '';
182
- }
183
- focusedMarkdownHoverIndex() {
184
- return this._renderedHoverParts?.focusedMarkdownHoverIndex() ?? 1;
184
+ getAccessibleContent(hoverPart) {
185
+ return this._renderedHoverParts?.getAccessibleContent(hoverPart) ?? '';
185
186
  }
186
187
  doesMarkdownHoverAtIndexSupportVerbosityAction(index, action) {
187
188
  return this._renderedHoverParts?.doesMarkdownHoverAtIndexSupportVerbosityAction(index, action) ?? false;
188
189
  }
189
190
  updateMarkdownHoverVerbosityLevel(action, index, focus) {
190
- this._renderedHoverParts?.updateMarkdownHoverPartVerbosityLevel(action, index, focus);
191
+ return Promise.resolve(this._renderedHoverParts?.updateMarkdownHoverPartVerbosityLevel(action, index, focus));
191
192
  }
192
193
  };
193
194
  MarkdownHoverParticipant = ( (__decorate([
@@ -196,73 +197,84 @@ MarkdownHoverParticipant = ( (__decorate([
196
197
  ( (__param(3, IConfigurationService))),
197
198
  ( (__param(4, ILanguageFeaturesService))),
198
199
  ( (__param(5, IKeybindingService))),
199
- ( (__param(6, IHoverService)))
200
+ ( (__param(6, IHoverService))),
201
+ ( (__param(7, ICommandService)))
200
202
  ], MarkdownHoverParticipant)));
201
- class MarkdownRenderedHoverParts extends Disposable {
202
- constructor(hoverParts,
203
- hoverPartsContainer, _editor, _languageService, _openerService, _keybindingService, _hoverService, _configurationService, _onFinishedRendering) {
204
- super();
203
+ class RenderedMarkdownHoverPart {
204
+ constructor(hoverPart, hoverElement, disposables) {
205
+ this.hoverPart = hoverPart;
206
+ this.hoverElement = hoverElement;
207
+ this.disposables = disposables;
208
+ }
209
+ get hoverAccessibleContent() {
210
+ return this.hoverElement.innerText.trim();
211
+ }
212
+ dispose() {
213
+ this.disposables.dispose();
214
+ }
215
+ }
216
+ class MarkdownRenderedHoverParts {
217
+ constructor(hoverParts, hoverPartsContainer, _hoverParticipant, _editor, _languageService, _openerService, _commandService, _keybindingService, _hoverService, _configurationService, _onFinishedRendering) {
218
+ this._hoverParticipant = _hoverParticipant;
205
219
  this._editor = _editor;
206
220
  this._languageService = _languageService;
207
221
  this._openerService = _openerService;
222
+ this._commandService = _commandService;
208
223
  this._keybindingService = _keybindingService;
209
224
  this._hoverService = _hoverService;
210
225
  this._configurationService = _configurationService;
211
226
  this._onFinishedRendering = _onFinishedRendering;
212
- this._focusedHoverPartIndex = -1;
213
227
  this._ongoingHoverOperations = ( (new Map()));
214
- this._renderedHoverParts = this._renderHoverParts(hoverParts, hoverPartsContainer, this._onFinishedRendering);
215
- this._register(toDisposable(() => {
216
- this._renderedHoverParts.forEach(renderedHoverPart => {
217
- renderedHoverPart.disposables.dispose();
228
+ this._disposables = ( (new DisposableStore()));
229
+ this.renderedHoverParts = this._renderHoverParts(hoverParts, hoverPartsContainer, this._onFinishedRendering);
230
+ this._disposables.add(toDisposable(() => {
231
+ this.renderedHoverParts.forEach(renderedHoverPart => {
232
+ renderedHoverPart.dispose();
233
+ });
234
+ this._ongoingHoverOperations.forEach(operation => {
235
+ operation.tokenSource.dispose(true);
218
236
  });
219
- }));
220
- this._register(toDisposable(() => {
221
- this._ongoingHoverOperations.forEach(operation => { operation.tokenSource.dispose(true); });
222
237
  }));
223
238
  }
224
239
  _renderHoverParts(hoverParts, hoverPartsContainer, onFinishedRendering) {
225
240
  hoverParts.sort(compareBy(hover => hover.ordinal, numberComparator));
226
241
  return (
227
- (hoverParts.map((hoverPart, hoverIndex) => {
228
- const renderedHoverPart = this._renderHoverPart(hoverIndex, hoverPart.contents, hoverPart.source, onFinishedRendering);
229
- hoverPartsContainer.appendChild(renderedHoverPart.renderedMarkdown);
242
+ (hoverParts.map(hoverPart => {
243
+ const renderedHoverPart = this._renderHoverPart(hoverPart, onFinishedRendering);
244
+ hoverPartsContainer.appendChild(renderedHoverPart.hoverElement);
230
245
  return renderedHoverPart;
231
246
  }))
232
247
  );
233
248
  }
234
- _renderHoverPart(hoverPartIndex, hoverContents, hoverSource, onFinishedRendering) {
235
- const { renderedMarkdown, disposables } = this._renderMarkdownContent(hoverContents, onFinishedRendering);
249
+ _renderHoverPart(hoverPart, onFinishedRendering) {
250
+ const renderedMarkdownPart = this._renderMarkdownHover(hoverPart, onFinishedRendering);
251
+ const renderedMarkdownElement = renderedMarkdownPart.hoverElement;
252
+ const hoverSource = hoverPart.source;
253
+ const disposables = ( (new DisposableStore()));
254
+ disposables.add(renderedMarkdownPart);
236
255
  if (!hoverSource) {
237
- return { renderedMarkdown, disposables };
256
+ return (
257
+ (new RenderedMarkdownHoverPart(hoverPart, renderedMarkdownElement, disposables))
258
+ );
238
259
  }
239
260
  const canIncreaseVerbosity = hoverSource.supportsVerbosityAction(HoverVerbosityAction.Increase);
240
261
  const canDecreaseVerbosity = hoverSource.supportsVerbosityAction(HoverVerbosityAction.Decrease);
241
262
  if (!canIncreaseVerbosity && !canDecreaseVerbosity) {
242
- return { renderedMarkdown, disposables, hoverSource };
263
+ return (
264
+ (new RenderedMarkdownHoverPart(hoverPart, renderedMarkdownElement, disposables))
265
+ );
243
266
  }
244
267
  const actionsContainer = $('div.verbosity-actions');
245
- renderedMarkdown.prepend(actionsContainer);
268
+ renderedMarkdownElement.prepend(actionsContainer);
246
269
  disposables.add(this._renderHoverExpansionAction(actionsContainer, HoverVerbosityAction.Increase, canIncreaseVerbosity));
247
270
  disposables.add(this._renderHoverExpansionAction(actionsContainer, HoverVerbosityAction.Decrease, canDecreaseVerbosity));
248
- this._register(addDisposableListener(renderedMarkdown, EventType.FOCUS_IN, (event) => {
249
- event.stopPropagation();
250
- this._focusedHoverPartIndex = hoverPartIndex;
251
- }));
252
- this._register(addDisposableListener(renderedMarkdown, EventType.FOCUS_OUT, (event) => {
253
- event.stopPropagation();
254
- this._focusedHoverPartIndex = -1;
255
- }));
256
- return { renderedMarkdown, disposables, hoverSource };
271
+ return (
272
+ (new RenderedMarkdownHoverPart(hoverPart, renderedMarkdownElement, disposables))
273
+ );
257
274
  }
258
- _renderMarkdownContent(markdownContent, onFinishedRendering) {
259
- const renderedMarkdown = $('div.hover-row');
260
- renderedMarkdown.tabIndex = 0;
261
- const renderedMarkdownContents = $('div.hover-row-contents');
262
- renderedMarkdown.appendChild(renderedMarkdownContents);
263
- const disposables = ( (new DisposableStore()));
264
- disposables.add(renderMarkdownInContainer(this._editor, renderedMarkdownContents, markdownContent, this._languageService, this._openerService, onFinishedRendering));
265
- return { renderedMarkdown, disposables };
275
+ _renderMarkdownHover(markdownHover, onFinishedRendering) {
276
+ const renderedMarkdownHover = renderMarkdownInContainer(this._editor, markdownHover, this._languageService, this._openerService, onFinishedRendering);
277
+ return renderedMarkdownHover;
266
278
  }
267
279
  _renderHoverExpansionAction(container, action, actionEnabled) {
268
280
  const store = ( (new DisposableStore()));
@@ -276,50 +288,68 @@ class MarkdownRenderedHoverParts extends Disposable {
276
288
  this._configurationService,
277
289
  this._hoverService
278
290
  )));
279
- store.add(this._hoverService.setupUpdatableHover(hoverDelegate, actionElement, labelForHoverVerbosityAction(this._keybindingService, action)));
291
+ store.add(this._hoverService.setupManagedHover(hoverDelegate, actionElement, labelForHoverVerbosityAction(this._keybindingService, action)));
280
292
  if (!actionEnabled) {
281
293
  actionElement.classList.add('disabled');
282
294
  return store;
283
295
  }
284
296
  actionElement.classList.add('enabled');
285
- const actionFunction = () => this.updateMarkdownHoverPartVerbosityLevel(action);
297
+ const actionFunction = () => this._commandService.executeCommand(action === HoverVerbosityAction.Increase ? INCREASE_HOVER_VERBOSITY_ACTION_ID : DECREASE_HOVER_VERBOSITY_ACTION_ID);
286
298
  store.add(( (new ClickAction(actionElement, actionFunction))));
287
299
  store.add(( (new KeyDownAction(actionElement, actionFunction, [KeyCode.Enter, KeyCode.Space]))));
288
300
  return store;
289
301
  }
290
- async updateMarkdownHoverPartVerbosityLevel(action, index = -1, focus = true) {
302
+ async updateMarkdownHoverPartVerbosityLevel(action, index, focus = true) {
291
303
  const model = this._editor.getModel();
292
304
  if (!model) {
293
- return;
305
+ return undefined;
294
306
  }
295
- const indexOfInterest = index !== -1 ? index : this._focusedHoverPartIndex;
296
- const hoverRenderedPart = this._getRenderedHoverPartAtIndex(indexOfInterest);
297
- if (!hoverRenderedPart || !hoverRenderedPart.hoverSource?.supportsVerbosityAction(action)) {
298
- return;
307
+ const hoverRenderedPart = this._getRenderedHoverPartAtIndex(index);
308
+ const hoverSource = hoverRenderedPart?.hoverPart.source;
309
+ if (!hoverRenderedPart || !hoverSource?.supportsVerbosityAction(action)) {
310
+ return undefined;
299
311
  }
300
- const hoverSource = hoverRenderedPart.hoverSource;
301
312
  const newHover = await this._fetchHover(hoverSource, model, action);
302
313
  if (!newHover) {
303
- return;
314
+ return undefined;
304
315
  }
305
316
  const newHoverSource = ( (new HoverSource(newHover, hoverSource.hoverProvider, hoverSource.hoverPosition)));
306
- const newHoverRenderedPart = this._renderHoverPart(indexOfInterest, newHover.contents, newHoverSource, this._onFinishedRendering);
307
- this._replaceRenderedHoverPartAtIndex(indexOfInterest, newHoverRenderedPart);
317
+ const initialHoverPart = hoverRenderedPart.hoverPart;
318
+ const newHoverPart = ( (new MarkdownHover(
319
+ this._hoverParticipant,
320
+ initialHoverPart.range,
321
+ newHover.contents,
322
+ initialHoverPart.isBeforeContent,
323
+ initialHoverPart.ordinal,
324
+ newHoverSource
325
+ )));
326
+ const newHoverRenderedPart = this._renderHoverPart(newHoverPart, this._onFinishedRendering);
327
+ this._replaceRenderedHoverPartAtIndex(index, newHoverRenderedPart, newHoverPart);
308
328
  if (focus) {
309
- this._focusOnHoverPartWithIndex(indexOfInterest);
329
+ this._focusOnHoverPartWithIndex(index);
310
330
  }
311
- this._onFinishedRendering();
331
+ return {
332
+ hoverPart: newHoverPart,
333
+ hoverElement: newHoverRenderedPart.hoverElement
334
+ };
312
335
  }
313
- markdownHoverContentAtIndex(index) {
314
- const hoverRenderedPart = this._getRenderedHoverPartAtIndex(index);
315
- return hoverRenderedPart?.renderedMarkdown.innerText ?? '';
316
- }
317
- focusedMarkdownHoverIndex() {
318
- return this._focusedHoverPartIndex;
336
+ getAccessibleContent(hoverPart) {
337
+ const renderedHoverPartIndex = this.renderedHoverParts.findIndex(renderedHoverPart => renderedHoverPart.hoverPart === hoverPart);
338
+ if (renderedHoverPartIndex === -1) {
339
+ return undefined;
340
+ }
341
+ const renderedHoverPart = this._getRenderedHoverPartAtIndex(renderedHoverPartIndex);
342
+ if (!renderedHoverPart) {
343
+ return undefined;
344
+ }
345
+ const hoverElementInnerText = renderedHoverPart.hoverElement.innerText;
346
+ const accessibleContent = hoverElementInnerText.replace(/[^\S\n\r]+/gu, ' ');
347
+ return accessibleContent;
319
348
  }
320
349
  doesMarkdownHoverAtIndexSupportVerbosityAction(index, action) {
321
350
  const hoverRenderedPart = this._getRenderedHoverPartAtIndex(index);
322
- if (!hoverRenderedPart || !hoverRenderedPart.hoverSource?.supportsVerbosityAction(action)) {
351
+ const hoverSource = hoverRenderedPart?.hoverPart.source;
352
+ if (!hoverRenderedPart || !hoverSource?.supportsVerbosityAction(action)) {
323
353
  return false;
324
354
  }
325
355
  return true;
@@ -346,49 +376,67 @@ class MarkdownRenderedHoverParts extends Disposable {
346
376
  this._ongoingHoverOperations.delete(provider);
347
377
  return hover;
348
378
  }
349
- _replaceRenderedHoverPartAtIndex(index, renderedHoverPart) {
350
- if (index >= this._renderHoverParts.length || index < 0) {
379
+ _replaceRenderedHoverPartAtIndex(index, renderedHoverPart, hoverPart) {
380
+ if (index >= this.renderedHoverParts.length || index < 0) {
351
381
  return;
352
382
  }
353
- const currentRenderedHoverPart = this._renderedHoverParts[index];
354
- const currentRenderedMarkdown = currentRenderedHoverPart.renderedMarkdown;
355
- currentRenderedMarkdown.replaceWith(renderedHoverPart.renderedMarkdown);
356
- currentRenderedHoverPart.disposables.dispose();
357
- this._renderedHoverParts[index] = renderedHoverPart;
383
+ const currentRenderedHoverPart = this.renderedHoverParts[index];
384
+ const currentRenderedMarkdown = currentRenderedHoverPart.hoverElement;
385
+ const renderedMarkdown = renderedHoverPart.hoverElement;
386
+ const renderedChildrenElements = Array.from(renderedMarkdown.children);
387
+ currentRenderedMarkdown.replaceChildren(...renderedChildrenElements);
388
+ const newRenderedHoverPart = ( (new RenderedMarkdownHoverPart(hoverPart, currentRenderedMarkdown, renderedHoverPart.disposables)));
389
+ currentRenderedMarkdown.focus();
390
+ currentRenderedHoverPart.dispose();
391
+ this.renderedHoverParts[index] = newRenderedHoverPart;
358
392
  }
359
393
  _focusOnHoverPartWithIndex(index) {
360
- this._renderedHoverParts[index].renderedMarkdown.focus();
394
+ this.renderedHoverParts[index].hoverElement.focus();
361
395
  }
362
396
  _getRenderedHoverPartAtIndex(index) {
363
- return this._renderedHoverParts[index];
397
+ return this.renderedHoverParts[index];
398
+ }
399
+ dispose() {
400
+ this._disposables.dispose();
364
401
  }
365
402
  }
366
- function renderMarkdownHovers(context, hoverParts, editor, languageService, openerService) {
367
- hoverParts.sort(compareBy(hover => hover.ordinal, numberComparator));
368
- const disposables = ( (new DisposableStore()));
369
- for (const hoverPart of hoverParts) {
370
- disposables.add(renderMarkdownInContainer(editor, context.fragment, hoverPart.contents, languageService, openerService, context.onContentsChanged));
403
+ function renderMarkdownHovers(context, markdownHovers, editor, languageService, openerService) {
404
+ markdownHovers.sort(compareBy(hover => hover.ordinal, numberComparator));
405
+ const renderedHoverParts = [];
406
+ for (const markdownHover of markdownHovers) {
407
+ renderedHoverParts.push(renderMarkdownInContainer(editor, markdownHover, languageService, openerService, context.onContentsChanged));
371
408
  }
372
- return disposables;
409
+ return (
410
+ (new RenderedHoverParts(renderedHoverParts))
411
+ );
373
412
  }
374
- function renderMarkdownInContainer(editor, container, markdownStrings, languageService, openerService, onFinishedRendering) {
375
- const store = ( (new DisposableStore()));
376
- for (const contents of markdownStrings) {
377
- if (isEmptyMarkdownString(contents)) {
413
+ function renderMarkdownInContainer(editor, markdownHover, languageService, openerService, onFinishedRendering) {
414
+ const disposables = ( (new DisposableStore()));
415
+ const renderedMarkdown = $('div.hover-row');
416
+ const renderedMarkdownContents = $('div.hover-row-contents');
417
+ renderedMarkdown.appendChild(renderedMarkdownContents);
418
+ const markdownStrings = markdownHover.contents;
419
+ for (const markdownString of markdownStrings) {
420
+ if (isEmptyMarkdownString(markdownString)) {
378
421
  continue;
379
422
  }
380
423
  const markdownHoverElement = $('div.markdown-hover');
381
424
  const hoverContentsElement = append(markdownHoverElement, $('div.hover-contents'));
382
- const renderer = store.add(( (new MarkdownRenderer({ editor }, languageService, openerService))));
383
- store.add(renderer.onDidRenderAsync(() => {
425
+ const renderer = disposables.add(( (new MarkdownRenderer({ editor }, languageService, openerService))));
426
+ disposables.add(renderer.onDidRenderAsync(() => {
384
427
  hoverContentsElement.className = 'hover-contents code-hover-contents';
385
428
  onFinishedRendering();
386
429
  }));
387
- const renderedContents = store.add(renderer.render(contents));
430
+ const renderedContents = disposables.add(renderer.render(markdownString));
388
431
  hoverContentsElement.appendChild(renderedContents.element);
389
- container.appendChild(markdownHoverElement);
432
+ renderedMarkdownContents.appendChild(markdownHoverElement);
390
433
  }
391
- return store;
434
+ const renderedHoverPart = {
435
+ hoverPart: markdownHover,
436
+ hoverElement: renderedMarkdown,
437
+ dispose() { disposables.dispose(); }
438
+ };
439
+ return renderedHoverPart;
392
440
  }
393
441
  function labelForHoverVerbosityAction(keybindingService, action) {
394
442
  switch (action) {
@@ -14,7 +14,7 @@ import { quickFixCommandId, getCodeActions } from '../../codeAction/browser/code
14
14
  import { CodeActionController } from '../../codeAction/browser/codeActionController.js';
15
15
  import { CodeActionKind, CodeActionTriggerSource } from '../../codeAction/common/types.js';
16
16
  import { MarkerController, NextMarkerAction } from '../../gotoError/browser/gotoError.js';
17
- import { HoverAnchorType } from './hoverTypes.js';
17
+ import { HoverAnchorType, RenderedHoverParts } from './hoverTypes.js';
18
18
  import { localizeWithPath } from '../../../../nls.js';
19
19
  import { MarkerSeverity, IMarkerData } from '../../../../platform/markers/common/markers.js';
20
20
  import { IOpenerService } from '../../../../platform/opener/common/opener.service.js';
@@ -74,17 +74,29 @@ let MarkerHoverParticipant = class MarkerHoverParticipant {
74
74
  }
75
75
  renderHoverParts(context, hoverParts) {
76
76
  if (!hoverParts.length) {
77
- return Disposable.None;
77
+ return (
78
+ (new RenderedHoverParts([]))
79
+ );
78
80
  }
79
81
  const disposables = ( (new DisposableStore()));
80
- hoverParts.forEach(msg => context.fragment.appendChild(this.renderMarkerHover(msg, disposables)));
82
+ const renderedHoverParts = [];
83
+ hoverParts.forEach(hoverPart => {
84
+ const renderedMarkerHover = this._renderMarkerHover(hoverPart);
85
+ context.fragment.appendChild(renderedMarkerHover.hoverElement);
86
+ renderedHoverParts.push(renderedMarkerHover);
87
+ });
81
88
  const markerHoverForStatusbar = hoverParts.length === 1 ? hoverParts[0] : hoverParts.sort((a, b) => MarkerSeverity.compare(a.marker.severity, b.marker.severity))[0];
82
89
  this.renderMarkerStatusbar(context, markerHoverForStatusbar, disposables);
83
- return disposables;
90
+ return (
91
+ (new RenderedHoverParts(renderedHoverParts))
92
+ );
93
+ }
94
+ getAccessibleContent(hoverPart) {
95
+ return hoverPart.marker.message;
84
96
  }
85
- renderMarkerHover(markerHover, disposables) {
97
+ _renderMarkerHover(markerHover) {
98
+ const disposables = ( (new DisposableStore()));
86
99
  const hoverElement = $('div.hover-row');
87
- hoverElement.tabIndex = 0;
88
100
  const markerElement = append(hoverElement, $('div.marker.hover-contents'));
89
101
  const { source, message, code, relatedInformation } = markerHover.marker;
90
102
  this._editor.applyFontInfo(markerElement);
@@ -140,7 +152,12 @@ let MarkerHoverParticipant = class MarkerHoverParticipant {
140
152
  this._editor.applyFontInfo(messageElement);
141
153
  }
142
154
  }
143
- return hoverElement;
155
+ const renderedHoverPart = {
156
+ hoverPart: markerHover,
157
+ hoverElement,
158
+ dispose: () => disposables.dispose()
159
+ };
160
+ return renderedHoverPart;
144
161
  }
145
162
  renderMarkerStatusbar(context, markerHover, disposables) {
146
163
  if (markerHover.marker.severity === MarkerSeverity.Error || markerHover.marker.severity === MarkerSeverity.Warning || markerHover.marker.severity === MarkerSeverity.Info) {
@@ -337,6 +337,10 @@ let AutoIndentOnPaste = class AutoIndentOnPaste {
337
337
  if (!model) {
338
338
  return;
339
339
  }
340
+ const containsOnlyWhitespace = this.rangeContainsOnlyWhitespaceCharacters(model, range);
341
+ if (containsOnlyWhitespace) {
342
+ return;
343
+ }
340
344
  if (isStartOrEndInString(model, range)) {
341
345
  return;
342
346
  }
@@ -378,7 +382,7 @@ let AutoIndentOnPaste = class AutoIndentOnPaste {
378
382
  range: ( (new Range(startLineNumber, 1, startLineNumber, oldIndentation.length + 1))),
379
383
  text: newIndent
380
384
  });
381
- firstLineText = newIndent + firstLineText.substr(oldIndentation.length);
385
+ firstLineText = newIndent + firstLineText.substring(oldIndentation.length);
382
386
  }
383
387
  else {
384
388
  const indentMetadata = getIndentMetadata(model, startLineNumber, this._languageConfigurationService);
@@ -447,6 +451,37 @@ let AutoIndentOnPaste = class AutoIndentOnPaste {
447
451
  this.editor.pushUndoStop();
448
452
  }
449
453
  }
454
+ rangeContainsOnlyWhitespaceCharacters(model, range) {
455
+ const lineContainsOnlyWhitespace = (content) => {
456
+ return content.trim().length === 0;
457
+ };
458
+ let containsOnlyWhitespace = true;
459
+ if (range.startLineNumber === range.endLineNumber) {
460
+ const lineContent = model.getLineContent(range.startLineNumber);
461
+ const linePart = lineContent.substring(range.startColumn - 1, range.endColumn - 1);
462
+ containsOnlyWhitespace = lineContainsOnlyWhitespace(linePart);
463
+ }
464
+ else {
465
+ for (let i = range.startLineNumber; i <= range.endLineNumber; i++) {
466
+ const lineContent = model.getLineContent(i);
467
+ if (i === range.startLineNumber) {
468
+ const linePart = lineContent.substring(range.startColumn - 1);
469
+ containsOnlyWhitespace = lineContainsOnlyWhitespace(linePart);
470
+ }
471
+ else if (i === range.endLineNumber) {
472
+ const linePart = lineContent.substring(0, range.endColumn - 1);
473
+ containsOnlyWhitespace = lineContainsOnlyWhitespace(linePart);
474
+ }
475
+ else {
476
+ containsOnlyWhitespace = model.getLineFirstNonWhitespaceColumn(i) === 0;
477
+ }
478
+ if (!containsOnlyWhitespace) {
479
+ break;
480
+ }
481
+ }
482
+ }
483
+ return containsOnlyWhitespace;
484
+ }
450
485
  shouldIgnoreLine(model, lineNumber) {
451
486
  model.tokenization.forceTokenization(lineNumber);
452
487
  const nonWhitespaceColumn = model.getLineFirstNonWhitespaceColumn(lineNumber);
@@ -20,6 +20,7 @@ import { asCommandLink } from './inlayHints.js';
20
20
  import { isNonEmptyArray } from '../../../../base/common/arrays.js';
21
21
  import { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.service.js';
22
22
  import { IHoverService } from '../../../../platform/hover/browser/hover.service.js';
23
+ import { ICommandService } from '../../../../platform/commands/common/commands.service.js';
23
24
  const _moduleId = "vs/editor/contrib/inlayHints/browser/inlayHintsHover";
24
25
  class InlayHintsHoverAnchor extends HoverForeignElementAnchor {
25
26
  constructor(part, owner, initialMousePosX, initialMousePosY) {
@@ -28,8 +29,8 @@ class InlayHintsHoverAnchor extends HoverForeignElementAnchor {
28
29
  }
29
30
  }
30
31
  let InlayHintsHover = class InlayHintsHover extends MarkdownHoverParticipant {
31
- constructor(editor, languageService, openerService, keybindingService, hoverService, configurationService, _resolverService, languageFeaturesService) {
32
- super(editor, languageService, openerService, configurationService, languageFeaturesService, keybindingService, hoverService);
32
+ constructor(editor, languageService, openerService, keybindingService, hoverService, configurationService, _resolverService, languageFeaturesService, commandService) {
33
+ super(editor, languageService, openerService, configurationService, languageFeaturesService, keybindingService, hoverService, commandService);
33
34
  this._resolverService = _resolverService;
34
35
  this.hoverOrdinal = 6;
35
36
  }
@@ -153,6 +154,7 @@ InlayHintsHover = ( (__decorate([
153
154
  ( (__param(4, IHoverService))),
154
155
  ( (__param(5, IConfigurationService))),
155
156
  ( (__param(6, ITextModelService))),
156
- ( (__param(7, ILanguageFeaturesService)))
157
+ ( (__param(7, ILanguageFeaturesService))),
158
+ ( (__param(8, ICommandService)))
157
159
  ], InlayHintsHover)));
158
160
  export { InlayHintsHover };
@@ -31,7 +31,7 @@ let GhostTextWidget = class GhostTextWidget extends Disposable {
31
31
  this.model = model;
32
32
  this.languageService = languageService;
33
33
  this.isDisposed = observableValue(this, false);
34
- this.currentTextModel = observableFromEvent(this.editor.onDidChangeModel, () => this.editor.getModel());
34
+ this.currentTextModel = observableFromEvent(this, this.editor.onDidChangeModel, () => this.editor.getModel());
35
35
  this.uiState = derived(this, reader => {
36
36
  if (this.isDisposed.read(reader)) {
37
37
  return undefined;
@@ -11,7 +11,7 @@ import { MouseTargetType } from '../../../browser/editorBrowser.js';
11
11
  import { EditorOption } from '../../../common/config/editorOptions.js';
12
12
  import { Range } from '../../../common/core/range.js';
13
13
  import { ILanguageService } from '../../../common/languages/language.js';
14
- import { HoverForeignElementAnchor, HoverAnchorType } from '../../hover/browser/hoverTypes.js';
14
+ import { HoverForeignElementAnchor, RenderedHoverParts, HoverAnchorType } from '../../hover/browser/hoverTypes.js';
15
15
  import { InlineCompletionsController } from './inlineCompletionsController.js';
16
16
  import { InlineSuggestionHintsContentWidget } from './inlineCompletionsHintsWidget.js';
17
17
  import { MarkdownRenderer } from '../../../browser/widget/markdownRenderer/browser/markdownRenderer.js';
@@ -106,34 +106,46 @@ let InlineCompletionsHoverParticipant = class InlineCompletionsHoverParticipant
106
106
  return [];
107
107
  }
108
108
  renderHoverParts(context, hoverParts) {
109
- const disposableStore = ( (new DisposableStore()));
109
+ const disposables = ( (new DisposableStore()));
110
110
  const part = hoverParts[0];
111
111
  this._telemetryService.publicLog2('inlineCompletionHover.shown');
112
112
  if (this.accessibilityService.isScreenReaderOptimized() && !this._editor.getOption(EditorOption.screenReaderAnnounceInlineSuggestion)) {
113
- this.renderScreenReaderText(context, part, disposableStore);
113
+ disposables.add(this.renderScreenReaderText(context, part));
114
114
  }
115
115
  const model = part.controller.model.get();
116
116
  const w = this._instantiationService.createInstance(InlineSuggestionHintsContentWidget, this._editor, false, constObservable(null), model.selectedInlineCompletionIndex, model.inlineCompletionsCount, model.activeCommands);
117
- context.fragment.appendChild(w.getDomNode());
117
+ const widgetNode = w.getDomNode();
118
+ context.fragment.appendChild(widgetNode);
118
119
  model.triggerExplicitly();
119
- disposableStore.add(w);
120
- return disposableStore;
120
+ disposables.add(w);
121
+ const renderedHoverPart = {
122
+ hoverPart: part,
123
+ hoverElement: widgetNode,
124
+ dispose() { disposables.dispose(); }
125
+ };
126
+ return (
127
+ (new RenderedHoverParts([renderedHoverPart]))
128
+ );
129
+ }
130
+ getAccessibleContent(hoverPart) {
131
+ return ( localizeWithPath(_moduleId, 0, 'There are inline completions here'));
121
132
  }
122
- renderScreenReaderText(context, part, disposableStore) {
133
+ renderScreenReaderText(context, part) {
134
+ const disposables = ( (new DisposableStore()));
123
135
  const $$1 = $;
124
136
  const markdownHoverElement = $$1('div.hover-row.markdown-hover');
125
137
  const hoverContentsElement = append(markdownHoverElement, $$1('div.hover-contents', { ['aria-live']: 'assertive' }));
126
- const renderer = disposableStore.add(( (new MarkdownRenderer({ editor: this._editor }, this._languageService, this._openerService))));
138
+ const renderer = disposables.add(( (new MarkdownRenderer({ editor: this._editor }, this._languageService, this._openerService))));
127
139
  const render = (code) => {
128
- disposableStore.add(renderer.onDidRenderAsync(() => {
140
+ disposables.add(renderer.onDidRenderAsync(() => {
129
141
  hoverContentsElement.className = 'hover-contents code-hover-contents';
130
142
  context.onContentsChanged();
131
143
  }));
132
- const inlineSuggestionAvailable = ( localizeWithPath(_moduleId, 0, "Suggestion:"));
133
- const renderedContents = disposableStore.add(renderer.render(( (new MarkdownString())).appendText(inlineSuggestionAvailable).appendCodeblock('text', code)));
144
+ const inlineSuggestionAvailable = ( localizeWithPath(_moduleId, 1, "Suggestion:"));
145
+ const renderedContents = disposables.add(renderer.render(( (new MarkdownString())).appendText(inlineSuggestionAvailable).appendCodeblock('text', code)));
134
146
  hoverContentsElement.replaceChildren(renderedContents.element);
135
147
  };
136
- disposableStore.add(autorun(reader => {
148
+ disposables.add(autorun(reader => {
137
149
  const ghostText = part.controller.model.read(reader)?.primaryGhostText.read(reader);
138
150
  if (ghostText) {
139
151
  const lineText = this._editor.getModel().getLineContent(ghostText.lineNumber);
@@ -144,6 +156,7 @@ let InlineCompletionsHoverParticipant = class InlineCompletionsHoverParticipant
144
156
  }
145
157
  }));
146
158
  context.fragment.appendChild(markdownHoverElement);
159
+ return disposables;
147
160
  }
148
161
  };
149
162
  InlineCompletionsHoverParticipant = ( (__decorate([