@codingame/monaco-vscode-api 6.0.3 → 7.0.1

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 (447) hide show
  1. package/README.md +150 -117
  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/package.json +9 -9
  7. package/service-override/extensions.d.ts +1 -2
  8. package/services.js +4 -2
  9. package/vscode/src/vs/base/browser/dnd.js +1 -1
  10. package/vscode/src/vs/base/browser/dom.js +116 -5
  11. package/vscode/src/vs/base/browser/domObservable.js +16 -0
  12. package/vscode/src/vs/base/browser/markdownRenderer.js +5 -3
  13. package/vscode/src/vs/base/browser/trustedTypes.js +1 -2
  14. package/vscode/src/vs/base/browser/ui/actionbar/actionViewItems.js +1 -1
  15. package/vscode/src/vs/base/browser/ui/actionbar/actionbar.js +1 -1
  16. package/vscode/src/vs/base/browser/ui/button/button.js +2 -2
  17. package/vscode/src/vs/base/browser/ui/contextview/contextview.js +1 -4
  18. package/vscode/src/vs/base/browser/ui/dropdown/dropdown.js +1 -1
  19. package/vscode/src/vs/base/browser/ui/dropdown/dropdownActionViewItem.js +1 -1
  20. package/vscode/src/vs/base/browser/ui/highlightedlabel/highlightedLabel.js +1 -1
  21. package/vscode/src/vs/base/browser/ui/hover/hover.d.ts +32 -16
  22. package/vscode/src/vs/base/browser/ui/hover/hoverDelegate.d.ts +2 -2
  23. package/vscode/src/vs/base/browser/ui/hover/hoverDelegate2.js +2 -2
  24. package/vscode/src/vs/base/browser/ui/hover/hoverWidget.css.js +1 -1
  25. package/vscode/src/vs/base/browser/ui/hover/hoverWidget.js +2 -0
  26. package/vscode/src/vs/base/browser/ui/iconLabel/iconLabel.js +1 -1
  27. package/vscode/src/vs/base/browser/ui/iconLabel/simpleIconLabel.js +1 -1
  28. package/vscode/src/vs/base/browser/ui/inputbox/inputBox.js +1 -1
  29. package/vscode/src/vs/base/browser/ui/keybindingLabel/keybindingLabel.js +1 -1
  30. package/vscode/src/vs/base/browser/ui/list/listView.js +3 -5
  31. package/vscode/src/vs/base/browser/ui/list/rowCache.js +1 -8
  32. package/vscode/src/vs/base/browser/ui/sash/sash.js +1 -1
  33. package/vscode/src/vs/base/browser/ui/selectBox/selectBoxCustom.js +7 -11
  34. package/vscode/src/vs/base/browser/ui/splitview/paneview.js +1 -1
  35. package/vscode/src/vs/base/browser/ui/splitview/splitview.js +1 -1
  36. package/vscode/src/vs/base/browser/ui/table/tableWidget.js +1 -1
  37. package/vscode/src/vs/base/browser/ui/toggle/toggle.js +1 -1
  38. package/vscode/src/vs/base/browser/ui/toolbar/toolbar.d.ts +8 -1
  39. package/vscode/src/vs/base/browser/ui/toolbar/toolbar.js +2 -3
  40. package/vscode/src/vs/base/browser/ui/tree/abstractTree.js +1 -1
  41. package/vscode/src/vs/base/browser/ui/tree/asyncDataTree.js +0 -3
  42. package/vscode/src/vs/base/common/assert.js +1 -1
  43. package/vscode/src/vs/base/common/collections.js +49 -1
  44. package/vscode/src/vs/base/common/equals.js +55 -5
  45. package/vscode/src/vs/base/common/errors.js +14 -1
  46. package/vscode/src/vs/base/common/event.js +2 -1
  47. package/vscode/src/vs/base/common/history.js +7 -4
  48. package/vscode/src/vs/base/common/iterator.js +9 -1
  49. package/vscode/src/vs/base/common/map.d.ts +41 -0
  50. package/vscode/src/vs/base/common/numbers.js +18 -1
  51. package/vscode/src/vs/base/common/observableInternal/api.js +11 -0
  52. package/vscode/src/vs/base/common/observableInternal/autorun.js +18 -1
  53. package/vscode/src/vs/base/common/observableInternal/base.d.ts +8 -1
  54. package/vscode/src/vs/base/common/observableInternal/base.js +2 -5
  55. package/vscode/src/vs/base/common/observableInternal/derived.js +13 -3
  56. package/vscode/src/vs/base/common/observableInternal/lazyObservableValue.js +109 -0
  57. package/vscode/src/vs/base/common/observableInternal/promise.js +3 -0
  58. package/vscode/src/vs/base/common/observableInternal/utils.d.ts +7 -0
  59. package/vscode/src/vs/base/common/observableInternal/utils.js +64 -12
  60. package/vscode/src/vs/base/common/prefixTree.d.ts +52 -0
  61. package/vscode/src/vs/base/common/product.d.ts +1 -0
  62. package/vscode/src/vs/base/parts/ipc/common/ipc.js +1 -1
  63. package/vscode/src/vs/editor/browser/config/charWidthReader.js +1 -1
  64. package/vscode/src/vs/editor/browser/controller/textAreaHandler.js +1 -1
  65. package/vscode/src/vs/editor/browser/coreCommands.js +2 -1
  66. package/vscode/src/vs/editor/browser/observableCodeEditor.js +230 -0
  67. package/vscode/src/vs/editor/browser/services/abstractCodeEditorService.js +1 -1
  68. package/vscode/src/vs/editor/browser/services/hoverService/hoverService.js +26 -26
  69. package/vscode/src/vs/editor/browser/services/hoverService/updatableHoverWidget.js +2 -2
  70. package/vscode/src/vs/editor/browser/view/domLineBreaksComputer.js +1 -1
  71. package/vscode/src/vs/editor/browser/view/viewLayer.js +4 -12
  72. package/vscode/src/vs/editor/browser/viewParts/contentWidgets/contentWidgets.js +1 -1
  73. package/vscode/src/vs/editor/browser/viewParts/glyphMargin/glyphMargin.js +1 -1
  74. package/vscode/src/vs/editor/browser/viewParts/viewZones/viewZones.js +2 -2
  75. package/vscode/src/vs/editor/browser/widget/codeEditor/codeEditorWidget.js +15 -4
  76. package/vscode/src/vs/editor/browser/widget/diffEditor/components/diffEditorEditors.js +8 -8
  77. package/vscode/src/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/diffEditorViewZones.js +4 -4
  78. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorOptions.js +1 -1
  79. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorViewModel.js +1 -1
  80. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorWidget.js +14 -2
  81. package/vscode/src/vs/editor/browser/widget/diffEditor/features/gutterFeature.js +1 -1
  82. package/vscode/src/vs/editor/browser/widget/diffEditor/features/movedBlocksLinesFeature.js +2 -2
  83. package/vscode/src/vs/editor/browser/widget/diffEditor/registrations.contribution.js +2 -2
  84. package/vscode/src/vs/editor/browser/widget/diffEditor/utils/editorGutter.js +3 -3
  85. package/vscode/src/vs/editor/browser/widget/diffEditor/utils.js +2 -2
  86. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/colors.js +1 -1
  87. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidgetImpl.js +2 -2
  88. package/vscode/src/vs/editor/common/config/editorOptions.d.ts +5 -0
  89. package/vscode/src/vs/editor/common/config/editorOptions.js +83 -65
  90. package/vscode/src/vs/editor/common/core/editorColorRegistry.js +43 -43
  91. package/vscode/src/vs/editor/common/cursor/cursor.js +3 -2
  92. package/vscode/src/vs/editor/common/cursor/cursorTypeEditOperations.js +911 -0
  93. package/vscode/src/vs/editor/common/cursor/cursorTypeOperations.js +36 -799
  94. package/vscode/src/vs/editor/common/cursor/cursorWordOperations.js +6 -5
  95. package/vscode/src/vs/editor/common/languageFeatureRegistry.d.ts +1 -0
  96. package/vscode/src/vs/editor/common/languageFeatureRegistry.js +3 -0
  97. package/vscode/src/vs/editor/common/languages/autoIndent.js +23 -1
  98. package/vscode/src/vs/editor/common/languages.d.ts +20 -3
  99. package/vscode/src/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsImpl.js +6 -6
  100. package/vscode/src/vs/editor/common/model/pieceTreeTextBuffer/pieceTreeBase.js +19 -0
  101. package/vscode/src/vs/editor/common/model/pieceTreeTextBuffer/pieceTreeTextBuffer.js +3 -0
  102. package/vscode/src/vs/editor/common/model/textModel.js +6 -2
  103. package/vscode/src/vs/editor/common/model/tokenizationTextModelPart.js +5 -5
  104. package/vscode/src/vs/editor/common/model.d.ts +4 -0
  105. package/vscode/src/vs/editor/common/services/getIconClasses.js +1 -1
  106. package/vscode/src/vs/editor/common/services/semanticTokensProviderStyling.js +2 -15
  107. package/vscode/src/vs/editor/common/standalone/standaloneEnums.js +63 -62
  108. package/vscode/src/vs/editor/common/viewModel/viewModelImpl.js +11 -8
  109. package/vscode/src/vs/editor/contrib/bracketMatching/browser/bracketMatching.js +1 -1
  110. package/vscode/src/vs/editor/contrib/codeAction/browser/codeActionController.js +2 -17
  111. package/vscode/src/vs/editor/contrib/codeAction/browser/lightBulbWidget.css.js +1 -1
  112. package/vscode/src/vs/editor/contrib/codeAction/browser/lightBulbWidget.js +18 -5
  113. package/vscode/src/vs/editor/contrib/colorPicker/browser/colorHoverParticipant.js +55 -27
  114. package/vscode/src/vs/editor/contrib/colorPicker/browser/colorPickerWidget.js +7 -4
  115. package/vscode/src/vs/editor/contrib/colorPicker/browser/standaloneColorPickerWidget.js +9 -9
  116. package/vscode/src/vs/editor/contrib/contextmenu/browser/contextmenu.js +1 -1
  117. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js +103 -47
  118. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/defaultProviders.js +8 -2
  119. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController.js +18 -10
  120. package/vscode/src/vs/editor/contrib/find/browser/findWidget.js +2 -4
  121. package/vscode/src/vs/editor/contrib/folding/browser/folding.css.js +1 -1
  122. package/vscode/src/vs/editor/contrib/folding/browser/folding.js +33 -13
  123. package/vscode/src/vs/editor/contrib/folding/browser/foldingDecorations.js +12 -7
  124. package/vscode/src/vs/editor/contrib/gotoError/browser/gotoErrorWidget.js +1 -1
  125. package/vscode/src/vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget.js +2 -2
  126. package/vscode/src/vs/editor/contrib/hover/browser/contentHoverController.js +161 -185
  127. package/vscode/src/vs/editor/contrib/hover/browser/contentHoverRendered.js +321 -0
  128. package/vscode/src/vs/editor/contrib/hover/browser/contentHoverStatusBar.js +4 -1
  129. package/vscode/src/vs/editor/contrib/hover/browser/contentHoverTypes.js +6 -21
  130. package/vscode/src/vs/editor/contrib/hover/browser/contentHoverWidget.js +39 -40
  131. package/vscode/src/vs/editor/contrib/hover/browser/hoverAccessibleViews.js +55 -46
  132. package/vscode/src/vs/editor/contrib/hover/browser/hoverActions.js +12 -2
  133. package/vscode/src/vs/editor/contrib/hover/browser/hoverController.js +15 -9
  134. package/vscode/src/vs/editor/contrib/hover/browser/hoverTypes.js +11 -1
  135. package/vscode/src/vs/editor/contrib/hover/browser/markdownHoverParticipant.js +141 -93
  136. package/vscode/src/vs/editor/contrib/hover/browser/markerHoverParticipant.js +24 -7
  137. package/vscode/src/vs/editor/contrib/indentation/browser/indentation.js +36 -1
  138. package/vscode/src/vs/editor/contrib/inlayHints/browser/inlayHintsHover.js +5 -3
  139. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/ghostTextWidget.js +1 -1
  140. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/hoverParticipant.js +25 -12
  141. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsController.js +88 -118
  142. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsHintsWidget.js +1 -1
  143. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsModel.js +34 -33
  144. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsSource.js +2 -2
  145. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/provideInlineCompletions.js +11 -4
  146. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/suggestWidgetInlineCompletionProvider.js +10 -19
  147. package/vscode/src/vs/editor/contrib/inlineEdit/browser/ghostTextWidget.js +1 -1
  148. package/vscode/src/vs/editor/contrib/inlineEdit/browser/hoverParticipant.js +45 -27
  149. package/vscode/src/vs/editor/contrib/inlineEdit/browser/inlineEditController.js +4 -4
  150. package/vscode/src/vs/editor/contrib/inlineEdit/browser/inlineEditHintsWidget.js +1 -1
  151. package/vscode/src/vs/editor/contrib/inlineEdits/browser/commands.js +126 -0
  152. package/vscode/src/vs/editor/contrib/inlineEdits/browser/consts.js +9 -0
  153. package/vscode/src/vs/editor/contrib/inlineEdits/browser/inlineEdits.contribution.js +9 -0
  154. package/vscode/src/vs/editor/contrib/inlineEdits/browser/inlineEditsController.js +82 -0
  155. package/vscode/src/vs/editor/contrib/inlineEdits/browser/inlineEditsModel.js +240 -0
  156. package/vscode/src/vs/editor/contrib/inlineEdits/browser/inlineEditsWidget.css.js +4 -0
  157. package/vscode/src/vs/editor/contrib/inlineEdits/browser/inlineEditsWidget.js +322 -0
  158. package/vscode/src/vs/editor/contrib/inlineProgress/browser/inlineProgress.js +8 -4
  159. package/vscode/src/vs/editor/contrib/linesOperations/browser/linesOperations.js +3 -2
  160. package/vscode/src/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +1 -1
  161. package/vscode/src/vs/editor/contrib/peekView/browser/peekView.js +2 -2
  162. package/vscode/src/vs/editor/contrib/placeholderText/browser/placeholderText.contribution.js +60 -0
  163. package/vscode/src/vs/editor/contrib/placeholderText/browser/placeholderText.css.js +4 -0
  164. package/vscode/src/vs/editor/contrib/rename/browser/renameWidget.js +1 -1
  165. package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScroll.css.js +1 -1
  166. package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScrollController.js +38 -20
  167. package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScrollWidget.js +3 -0
  168. package/vscode/src/vs/editor/contrib/suggest/browser/suggestWidget.js +9 -9
  169. package/vscode/src/vs/editor/contrib/suggest/browser/suggestWidgetStatus.js +10 -32
  170. package/vscode/src/vs/editor/contrib/symbolIcons/browser/symbolIcons.js +23 -138
  171. package/vscode/src/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +3 -0
  172. package/vscode/src/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.js +5 -5
  173. package/vscode/src/vs/editor/contrib/wordOperations/browser/wordOperations.js +13 -12
  174. package/vscode/src/vs/editor/contrib/wordPartOperations/browser/wordPartOperations.js +3 -3
  175. package/vscode/src/vs/platform/accessibility/browser/accessibilityService.js +21 -0
  176. package/vscode/src/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js +5 -6
  177. package/vscode/src/vs/platform/actionWidget/browser/actionWidget.js +1 -1
  178. package/vscode/src/vs/platform/actions/browser/buttonbar.js +27 -6
  179. package/vscode/src/vs/platform/actions/browser/floatingMenu.js +1 -1
  180. package/vscode/src/vs/platform/actions/browser/menuEntryActionViewItem.css.js +1 -1
  181. package/vscode/src/vs/platform/actions/browser/menuEntryActionViewItem.js +33 -3
  182. package/vscode/src/vs/platform/actions/browser/toolbar.js +2 -1
  183. package/vscode/src/vs/platform/actions/common/actions.d.ts +3 -0
  184. package/vscode/src/vs/platform/actions/common/actions.js +3 -0
  185. package/vscode/src/vs/platform/actions/common/menuService.js +3 -2
  186. package/vscode/src/vs/platform/clipboard/browser/clipboardService.js +1 -1
  187. package/vscode/src/vs/platform/configuration/common/configurationRegistry.d.ts +7 -5
  188. package/vscode/src/vs/platform/configuration/common/configurationRegistry.js +109 -13
  189. package/vscode/src/vs/platform/diagnostics/common/diagnostics.d.ts +2 -0
  190. package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.d.ts +12 -6
  191. package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.js +2 -0
  192. package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.service.d.ts +3 -3
  193. package/vscode/src/vs/platform/extensionManagement/common/extensionsScannerService.js +20 -10
  194. package/vscode/src/vs/platform/extensions/common/extensionValidator.js +46 -8
  195. package/vscode/src/vs/platform/extensions/common/extensions.d.ts +1 -1
  196. package/vscode/src/vs/platform/extensions/common/extensions.js +12 -3
  197. package/vscode/src/vs/platform/extensions/common/extensionsApiProposals.js +368 -0
  198. package/vscode/src/vs/platform/files/common/watcher.js +21 -24
  199. package/vscode/src/vs/platform/list/browser/listService.js +2 -1
  200. package/vscode/src/vs/platform/observable/common/platformObservableUtils.js +2 -2
  201. package/vscode/src/vs/platform/opener/browser/link.js +1 -1
  202. package/vscode/src/vs/platform/product/common/product.js +1 -1
  203. package/vscode/src/vs/platform/quickinput/browser/quickInputTree.js +1 -1
  204. package/vscode/src/vs/platform/remote/common/remoteExtensionsScanner.service.d.ts +0 -2
  205. package/vscode/src/vs/platform/request/common/request.js +18 -8
  206. package/vscode/src/vs/platform/terminal/common/capabilities/capabilities.d.ts +2 -6
  207. package/vscode/src/vs/platform/terminal/common/capabilities/commandDetection/promptInputModel.d.ts +8 -1
  208. package/vscode/src/vs/platform/theme/common/colorUtils.d.ts +1 -1
  209. package/vscode/src/vs/platform/theme/common/colorUtils.js +25 -5
  210. package/vscode/src/vs/platform/theme/common/colors/baseColors.js +1 -1
  211. package/vscode/src/vs/platform/theme/common/colors/chartsColors.js +6 -6
  212. package/vscode/src/vs/platform/theme/common/colors/editorColors.js +35 -35
  213. package/vscode/src/vs/platform/theme/common/colors/inputColors.js +9 -9
  214. package/vscode/src/vs/platform/theme/common/colors/listColors.js +11 -11
  215. package/vscode/src/vs/platform/theme/common/colors/menuColors.js +4 -4
  216. package/vscode/src/vs/platform/theme/common/colors/minimapColors.js +5 -5
  217. package/vscode/src/vs/platform/theme/common/colors/miscColors.js +1 -1
  218. package/vscode/src/vs/platform/theme/common/colors/quickpickColors.js +5 -5
  219. package/vscode/src/vs/platform/tunnel/common/tunnel.js +4 -1
  220. package/vscode/src/vs/platform/userDataProfile/common/userDataProfile.js +75 -19
  221. package/vscode/src/vs/platform/window/common/window.d.ts +2 -2
  222. package/vscode/src/vs/workbench/api/common/extHost.api.impl.js +32 -25
  223. package/vscode/src/vs/workbench/api/common/extHost.common.services.js +2 -0
  224. package/vscode/src/vs/workbench/api/common/extHost.protocol.js +2 -0
  225. package/vscode/src/vs/workbench/api/common/extHostAuthentication.js +5 -11
  226. package/vscode/src/vs/workbench/api/common/extHostChatAgents2.js +5 -15
  227. package/vscode/src/vs/workbench/api/common/extHostChatVariables.js +2 -5
  228. package/vscode/src/vs/workbench/api/common/extHostComments.js +9 -3
  229. package/vscode/src/vs/workbench/api/common/extHostDebugService.js +32 -22
  230. package/vscode/src/vs/workbench/api/common/extHostExtensionService.js +3 -3
  231. package/vscode/src/vs/workbench/api/common/extHostLanguageFeatures.js +109 -40
  232. package/vscode/src/vs/workbench/api/common/extHostLanguageModelTools.js +46 -0
  233. package/vscode/src/vs/workbench/api/common/extHostLanguageModels.js +84 -35
  234. package/vscode/src/vs/workbench/api/common/extHostNotebook.js +2 -2
  235. package/vscode/src/vs/workbench/api/common/extHostSCM.js +50 -41
  236. package/vscode/src/vs/workbench/api/common/extHostSearch.js +2 -2
  237. package/vscode/src/vs/workbench/api/common/extHostSecrets.js +11 -8
  238. package/vscode/src/vs/workbench/api/common/extHostTerminalService.js +7 -6
  239. package/vscode/src/vs/workbench/api/common/extHostTesting.js +63 -70
  240. package/vscode/src/vs/workbench/api/common/extHostTextEditors.js +5 -3
  241. package/vscode/src/vs/workbench/api/common/extHostTypeConverters.js +75 -16
  242. package/vscode/src/vs/workbench/api/common/extHostTypes.js +29 -4
  243. package/vscode/src/vs/workbench/api/common/extHostWorkspace.js +1 -1
  244. package/vscode/src/vs/workbench/browser/actions/developerActions.js +1 -1
  245. package/vscode/src/vs/workbench/browser/parts/editor/editorActions.js +127 -107
  246. package/vscode/src/vs/workbench/browser/parts/editor/editorCommands.js +2 -2
  247. package/vscode/src/vs/workbench/browser/parts/editor/editorPanes.js +1 -1
  248. package/vscode/src/vs/workbench/browser/parts/editor/editorStatus.js +33 -21
  249. package/vscode/src/vs/workbench/browser/parts/editor/sideBySideEditor.js +1 -1
  250. package/vscode/src/vs/workbench/browser/parts/globalCompositeBar.js +5 -5
  251. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsToasts.js +1 -1
  252. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsViewer.js +2 -2
  253. package/vscode/src/vs/workbench/browser/parts/views/checkbox.js +2 -2
  254. package/vscode/src/vs/workbench/browser/parts/views/treeView.js +23 -6
  255. package/vscode/src/vs/workbench/browser/parts/views/viewFilter.js +3 -1
  256. package/vscode/src/vs/workbench/browser/parts/views/viewPane.js +3 -3
  257. package/vscode/src/vs/workbench/browser/parts/views/viewPaneContainer.js +1 -1
  258. package/vscode/src/vs/workbench/browser/web.api.js +8 -0
  259. package/vscode/src/vs/workbench/browser/workbench.contribution.js +199 -194
  260. package/vscode/src/vs/workbench/common/configuration.js +1 -1
  261. package/vscode/src/vs/workbench/common/contributions.js +8 -1
  262. package/vscode/src/vs/workbench/common/editor.js +5 -1
  263. package/vscode/src/vs/workbench/common/theme.js +79 -454
  264. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration.js +221 -239
  265. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatActions.js +17 -15
  266. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +1 -0
  267. package/vscode/src/vs/workbench/contrib/chat/browser/chatAgentHover.js +4 -0
  268. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatCollections.js +27 -0
  269. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatCommandContentPart.js +35 -0
  270. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatConfirmationContentPart.js +51 -0
  271. package/vscode/src/vs/workbench/contrib/chat/browser/{chatConfirmationWidget.js → chatContentParts/chatConfirmationWidget.js} +9 -9
  272. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatMarkdownContentPart.js +131 -0
  273. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatProgressContentPart.js +37 -0
  274. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatReferencesContentPart.js +263 -0
  275. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatTaskContentPart.js +37 -0
  276. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatTextEditContentPart.js +160 -0
  277. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatTreeContentPart.js +171 -0
  278. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatWarningContentPart.js +34 -0
  279. package/vscode/src/vs/workbench/contrib/chat/browser/{media → chatContentParts/media}/chatConfirmationWidget.css.js +1 -1
  280. package/vscode/src/vs/workbench/contrib/chat/browser/chatInputPart.js +91 -44
  281. package/vscode/src/vs/workbench/contrib/chat/browser/chatListRenderer.js +292 -1019
  282. package/vscode/src/vs/workbench/contrib/chat/browser/chatMarkdownDecorationsRenderer.js +2 -2
  283. package/vscode/src/vs/workbench/contrib/chat/browser/chatMarkdownRenderer.js +1 -1
  284. package/vscode/src/vs/workbench/contrib/chat/browser/chatWidget.js +22 -7
  285. package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockPart.css.js +1 -1
  286. package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockPart.js +61 -54
  287. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatDynamicVariables.js +23 -16
  288. package/vscode/src/vs/workbench/contrib/chat/browser/media/chat.css.js +1 -1
  289. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatAgentHover.css.js +1 -1
  290. package/vscode/src/vs/workbench/contrib/chat/common/chatAgents.js +8 -0
  291. package/vscode/src/vs/workbench/contrib/chat/common/chatColors.js +1 -1
  292. package/vscode/src/vs/workbench/contrib/chat/common/chatModel.js +3 -3
  293. package/vscode/src/vs/workbench/contrib/chat/common/chatWordCounter.js +5 -4
  294. package/vscode/src/vs/workbench/contrib/chat/common/codeBlockModelCollection.js +16 -0
  295. package/vscode/src/vs/workbench/contrib/chat/common/languageModelToolsService.service.js +3 -0
  296. package/vscode/src/vs/workbench/contrib/chat/common/languageModels.js +2 -2
  297. package/vscode/src/vs/workbench/contrib/codeActions/browser/codeActionsContribution.js +43 -16
  298. package/vscode/src/vs/workbench/contrib/codeEditor/browser/diffEditorHelper.js +1 -1
  299. package/vscode/src/vs/workbench/contrib/codeEditor/browser/find/simpleFindWidget.js +1 -3
  300. package/vscode/src/vs/workbench/contrib/codeEditor/browser/suggestEnabledInput/suggestEnabledInput.js +1 -1
  301. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleMultiCursorModifier.js +7 -5
  302. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleWordWrap.js +7 -7
  303. package/vscode/src/vs/workbench/contrib/comments/browser/commentColors.js +3 -3
  304. package/vscode/src/vs/workbench/contrib/comments/browser/commentGlyphWidget.js +3 -3
  305. package/vscode/src/vs/workbench/contrib/comments/browser/commentReply.js +2 -2
  306. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadBody.js +1 -1
  307. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadHeader.js +2 -1
  308. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadWidget.js +2 -1
  309. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadZoneWidget.js +1 -1
  310. package/vscode/src/vs/workbench/contrib/comments/browser/commentsController.js +8 -5
  311. package/vscode/src/vs/workbench/contrib/comments/browser/commentsTreeViewer.js +1 -1
  312. package/vscode/src/vs/workbench/contrib/comments/browser/media/panel.css.js +1 -1
  313. package/vscode/src/vs/workbench/contrib/comments/browser/media/review.css.js +1 -1
  314. package/vscode/src/vs/workbench/contrib/comments/browser/timestamp.js +1 -1
  315. package/vscode/src/vs/workbench/contrib/contextmenu/browser/contextmenu.contribution.js +5 -5
  316. package/vscode/src/vs/workbench/contrib/debug/browser/baseDebugView.js +14 -7
  317. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointEditorContribution.js +4 -4
  318. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointWidget.js +8 -7
  319. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointsView.js +19 -16
  320. package/vscode/src/vs/workbench/contrib/debug/browser/debugColors.js +13 -12
  321. package/vscode/src/vs/workbench/contrib/debug/common/debug.d.ts +19 -2
  322. package/vscode/src/vs/workbench/contrib/debug/common/debug.js +9 -4
  323. package/vscode/src/vs/workbench/contrib/debug/common/debugModel.js +10 -5
  324. package/vscode/src/vs/workbench/contrib/debug/common/replModel.js +4 -4
  325. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsActions.js +235 -173
  326. package/vscode/src/vs/workbench/contrib/extensions/browser/media/extensionActions.css.js +1 -1
  327. package/vscode/src/vs/workbench/contrib/extensions/common/extensions.js +2 -1
  328. package/vscode/src/vs/workbench/contrib/files/browser/fileActions.js +17 -5
  329. package/vscode/src/vs/workbench/contrib/files/browser/files.contribution._configuration.js +62 -44
  330. package/vscode/src/vs/workbench/contrib/files/browser/files.contribution._editorPane.js +2 -2
  331. package/vscode/src/vs/workbench/contrib/files/browser/views/openEditorsView.js +2 -2
  332. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +114 -107
  333. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatContentWidget.js +33 -25
  334. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +71 -101
  335. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSession.js +38 -43
  336. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +11 -33
  337. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatStrategies.js +3 -4
  338. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +49 -86
  339. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.js +60 -71
  340. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChat.css.js +1 -1
  341. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatContentWidget.css.js +1 -1
  342. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +116 -113
  343. package/vscode/src/vs/workbench/contrib/markdown/browser/markdownDocumentRenderer.js +6 -10
  344. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInputModel.js +2 -2
  345. package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditorInput.js +1 -0
  346. package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/scmMultiDiffSourceResolver.js +2 -2
  347. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/findFilters.js +12 -23
  348. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/findMatchDecorationModel.js +0 -2
  349. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/findModel.js +7 -9
  350. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindReplaceWidget.js +88 -61
  351. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +1 -3
  352. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOutputActions.js +39 -3
  353. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +2 -1
  354. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatController.js +12 -11
  355. package/vscode/src/vs/workbench/contrib/notebook/browser/media/notebookCellChat.css.js +1 -1
  356. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookAccessibilityProvider.js +1 -1
  357. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookBrowser.js +3 -2
  358. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.js +40 -105
  359. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookIcons.js +27 -26
  360. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookOptions.js +14 -5
  361. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellActionView.js +1 -1
  362. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellComments.js +43 -46
  363. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellDnd.js +1 -1
  364. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellOutput.js +4 -4
  365. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellStatusPart.js +12 -9
  366. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellToolbars.js +19 -14
  367. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCell.js +2 -2
  368. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCellRunToolbar.js +9 -6
  369. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/markupCell.js +1 -1
  370. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/backLayerWebView.js +5 -3
  371. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/cellRenderer.js +3 -3
  372. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/webviewPreloads.js +1 -1
  373. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/baseCellViewModel.js +16 -6
  374. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/codeCellViewModel.js +8 -8
  375. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/notebookOutlineDataSourceFactory.service.js +3 -0
  376. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/notebookViewModelImpl.js +11 -12
  377. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookEditorStickyScroll.js +12 -13
  378. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookEditorToolbar.js +1 -1
  379. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookTopCellToolbar.js +5 -3
  380. package/vscode/src/vs/workbench/contrib/notebook/common/notebookCommon.js +9 -2
  381. package/vscode/src/vs/workbench/contrib/notebook/common/notebookEditorInput.js +37 -36
  382. package/vscode/src/vs/workbench/contrib/notebook/common/notebookEditorModel.js +18 -8
  383. package/vscode/src/vs/workbench/contrib/preferences/browser/preferencesWidgets.js +1 -1
  384. package/vscode/src/vs/workbench/contrib/preferences/browser/settingsTreeModels.js +14 -5
  385. package/vscode/src/vs/workbench/contrib/preferences/common/settingsEditorColorRegistry.js +17 -22
  386. package/vscode/src/vs/workbench/contrib/remote/browser/media/tunnelView.css.js +1 -1
  387. package/vscode/src/vs/workbench/contrib/remote/browser/tunnelView.js +7 -10
  388. package/vscode/src/vs/workbench/contrib/scm/browser/dirtydiffDecorator.js +7 -27
  389. package/vscode/src/vs/workbench/contrib/search/browser/anythingQuickAccess.js +3 -4
  390. package/vscode/src/vs/workbench/contrib/search/browser/notebookSearch/notebookSearchService.js +2 -2
  391. package/vscode/src/vs/workbench/contrib/search/browser/searchActionsFind.js +4 -0
  392. package/vscode/src/vs/workbench/contrib/search/browser/searchModel.js +3 -3
  393. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.d.ts +3 -0
  394. package/vscode/src/vs/workbench/contrib/terminal/common/terminal.d.ts +0 -1
  395. package/vscode/src/vs/workbench/contrib/terminal/common/terminalColorRegistry.js +13 -37
  396. package/vscode/src/vs/workbench/contrib/testing/common/testCoverage.d.ts +88 -0
  397. package/vscode/src/vs/workbench/contrib/testing/common/testCoverage.js +48 -31
  398. package/vscode/src/vs/workbench/contrib/testing/common/testId.d.ts +115 -0
  399. package/vscode/src/vs/workbench/contrib/testing/common/testResult.d.ts +226 -0
  400. package/vscode/src/vs/workbench/contrib/testing/common/testTypes.d.ts +319 -0
  401. package/vscode/src/vs/workbench/contrib/testing/common/testTypes.js +2 -3
  402. package/vscode/src/vs/workbench/contrib/testing/common/testingStates.d.ts +10 -0
  403. package/vscode/src/vs/workbench/contrib/webview/browser/webviewWindowDragMonitor.js +21 -2
  404. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewIconManager.js +7 -8
  405. package/vscode/src/vs/workbench/services/authentication/browser/authenticationService.js +3 -3
  406. package/vscode/src/vs/workbench/services/authentication/common/authentication.d.ts +10 -5
  407. package/vscode/src/vs/workbench/services/editor/common/customEditorLabelService.js +54 -21
  408. package/vscode/src/vs/workbench/services/extensionManagement/common/extensionManagement.service.d.ts +1 -0
  409. package/vscode/src/vs/workbench/services/extensions/browser/extensionService.d.ts +1 -2
  410. package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.d.ts +2 -4
  411. package/vscode/src/vs/workbench/services/extensions/common/extensions.js +5 -3
  412. package/vscode/src/vs/workbench/services/extensions/common/extensions.service.d.ts +3 -1
  413. package/vscode/src/vs/workbench/services/extensions/common/extensionsRegistry.js +59 -41
  414. package/vscode/src/vs/workbench/services/extensions/common/rpcProtocol.js +1 -1
  415. package/vscode/src/vs/workbench/services/filesConfiguration/common/filesConfigurationService.js +3 -2
  416. package/vscode/src/vs/workbench/services/host/browser/host.service.d.ts +1 -0
  417. package/vscode/src/vs/workbench/services/language/common/languageService.js +7 -0
  418. package/vscode/src/vs/workbench/services/layout/browser/layoutService.js +1 -1
  419. package/vscode/src/vs/workbench/services/preferences/common/preferences.d.ts +2 -2
  420. package/vscode/src/vs/workbench/services/search/common/search.js +2 -1
  421. package/vscode/src/vs/workbench/services/search/common/textSearchManager.js +2 -2
  422. package/vscode/src/vs/workbench/services/statusbar/browser/statusbar.d.ts +2 -2
  423. package/vscode/src/vs/workbench/services/textfile/common/encoding.js +69 -26
  424. package/vscode/src/vs/workbench/services/textfile/common/textFileEditorModel.js +23 -4
  425. package/vscode/src/vs/workbench/services/textfile/common/textfiles.d.ts +5 -1
  426. package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfileIcons.js +1 -1
  427. package/vscode/src/vs/workbench/services/views/browser/viewsService.js +12 -5
  428. package/vscode/src/vs/workbench/services/workingCopy/common/storedFileWorkingCopy.js +38 -19
  429. package/vscode/src/vs/workbench/services/workingCopy/common/workingCopyFileService.service.d.ts +2 -1
  430. package/vscode-dts/vscode.proposed.aiTextSearchProvider.d.ts +0 -196
  431. package/vscode-dts/vscode.proposed.attributableCoverage.d.ts +28 -10
  432. package/vscode-dts/vscode.proposed.authGetSessions.d.ts +30 -22
  433. package/vscode-dts/vscode.proposed.chatProvider.d.ts +17 -8
  434. package/vscode-dts/vscode.proposed.chatVariableResolver.d.ts +0 -9
  435. package/vscode-dts/vscode.proposed.commentReveal.d.ts +32 -0
  436. package/vscode-dts/vscode.proposed.commentThreadApplicability.d.ts +10 -0
  437. package/vscode-dts/vscode.proposed.createFileSystemWatcher.d.ts +1 -1
  438. package/vscode-dts/vscode.proposed.fileComments.d.ts +12 -53
  439. package/vscode-dts/vscode.proposed.fileSearchProvider.d.ts +6 -0
  440. package/vscode-dts/vscode.proposed.inlineCompletionsAdditions.d.ts +6 -0
  441. package/vscode-dts/vscode.proposed.lmTools.d.ts +91 -0
  442. package/vscode-dts/vscode.proposed.mappedEditsProvider.d.ts +1 -1
  443. package/vscode-dts/vscode.proposed.scmHistoryProvider.d.ts +10 -6
  444. package/vscode-dts/vscode.proposed.terminalShellIntegration.d.ts +38 -13
  445. package/vscode/src/vs/editor/browser/observableUtilities.js +0 -58
  446. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/notebookOutlineProviderFactory.service.js +0 -3
  447. package/vscode/src/vs/workbench/services/extensions/common/extensionsApiProposals.js +0 -122
@@ -11,7 +11,6 @@ import { EditorOption } from '../../../common/config/editorOptions.js';
11
11
  import { computeIndentLevel } from '../../../common/model/utils.js';
12
12
  import { autoFixCommandId, quickFixCommandId } from './codeAction.js';
13
13
  import { localizeWithPath } from '../../../../nls.js';
14
- import { ICommandService } from '../../../../platform/commands/common/commands.service.js';
15
14
  import { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.service.js';
16
15
  var LightBulbWidget_1;
17
16
  const _moduleId = "vs/editor/contrib/codeAction/browser/lightBulbWidget";
@@ -38,7 +37,7 @@ let LightBulbWidget = class LightBulbWidget extends Disposable {
38
37
  static { LightBulbWidget_1 = this; }
39
38
  static { this.ID = 'editor.contrib.lightbulbWidget'; }
40
39
  static { this._posPref = [ContentWidgetPositionPreference.EXACT]; }
41
- constructor(_editor, _keybindingService, commandService) {
40
+ constructor(_editor, _keybindingService) {
42
41
  super();
43
42
  this._editor = _editor;
44
43
  this._keybindingService = _keybindingService;
@@ -124,8 +123,23 @@ let LightBulbWidget = class LightBulbWidget extends Disposable {
124
123
  let effectiveLineNumber = lineNumber;
125
124
  let effectiveColumnNumber = 1;
126
125
  if (!lineHasSpace) {
126
+ const isLineEmptyOrIndented = (lineNumber) => {
127
+ const lineContent = model.getLineContent(lineNumber);
128
+ return /^\s*$|^\s+/.test(lineContent) || lineContent.length <= effectiveColumnNumber;
129
+ };
127
130
  if (lineNumber > 1 && !isFolded(lineNumber - 1)) {
128
- effectiveLineNumber -= 1;
131
+ const lineCount = model.getLineCount();
132
+ const endLine = lineNumber === lineCount;
133
+ const prevLineEmptyOrIndented = lineNumber > 1 && isLineEmptyOrIndented(lineNumber - 1);
134
+ const nextLineEmptyOrIndented = !endLine && isLineEmptyOrIndented(lineNumber + 1);
135
+ const currLineEmptyOrIndented = isLineEmptyOrIndented(lineNumber);
136
+ const notEmpty = !nextLineEmptyOrIndented && !prevLineEmptyOrIndented;
137
+ if (prevLineEmptyOrIndented || endLine || (notEmpty && !currLineEmptyOrIndented)) {
138
+ effectiveLineNumber -= 1;
139
+ }
140
+ else if (nextLineEmptyOrIndented || (notEmpty && currLineEmptyOrIndented)) {
141
+ effectiveLineNumber += 1;
142
+ }
129
143
  }
130
144
  else if ((lineNumber < model.getLineCount()) && !isFolded(lineNumber + 1)) {
131
145
  effectiveLineNumber += 1;
@@ -218,7 +232,6 @@ let LightBulbWidget = class LightBulbWidget extends Disposable {
218
232
  }
219
233
  };
220
234
  LightBulbWidget = LightBulbWidget_1 = ( (__decorate([
221
- ( (__param(1, IKeybindingService))),
222
- ( (__param(2, ICommandService)))
235
+ ( (__param(1, IKeybindingService)))
223
236
  ], LightBulbWidget)));
224
237
  export { LightBulbWidget };
@@ -2,7 +2,7 @@ import { __decorate, __param } from '../../../../../../../external/tslib/tslib.e
2
2
  import { AsyncIterableObject } from '../../../../base/common/async.js';
3
3
  import { CancellationToken } from '../../../../base/common/cancellation.js';
4
4
  import { Color, RGBA } from '../../../../base/common/color.js';
5
- import { Disposable, DisposableStore } from '../../../../base/common/lifecycle.js';
5
+ import { DisposableStore } from '../../../../base/common/lifecycle.js';
6
6
  import { EditorOption } from '../../../common/config/editorOptions.js';
7
7
  import { Range } from '../../../common/core/range.js';
8
8
  import { TrackedRangeStickiness } from '../../../common/model.js';
@@ -10,9 +10,11 @@ import { getColors, getColorPresentations } from './color.js';
10
10
  import { ColorDetector } from './colorDetector.js';
11
11
  import { ColorPickerModel } from './colorPickerModel.js';
12
12
  import { ColorPickerWidget } from './colorPickerWidget.js';
13
- import { HoverAnchorType } from '../../hover/browser/hoverTypes.js';
13
+ import { RenderedHoverParts, HoverAnchorType } from '../../hover/browser/hoverTypes.js';
14
14
  import { IThemeService } from '../../../../platform/theme/common/themeService.service.js';
15
15
  import { Dimension } from '../../../../base/browser/dom.js';
16
+ import { localizeWithPath } from '../../../../nls.js';
17
+ const _moduleId = "vs/editor/contrib/colorPicker/browser/colorHoverParticipant";
16
18
  class ColorHover {
17
19
  constructor(owner, range, model, provider) {
18
20
  this.owner = owner;
@@ -60,12 +62,35 @@ let ColorHoverParticipant = class ColorHoverParticipant {
60
62
  return [];
61
63
  }
62
64
  renderHoverParts(context, hoverParts) {
63
- return renderHoverParts(this, this._editor, this._themeService, hoverParts, context);
65
+ const renderedPart = renderHoverParts(this, this._editor, this._themeService, hoverParts, context);
66
+ if (!renderedPart) {
67
+ return (
68
+ (new RenderedHoverParts([]))
69
+ );
70
+ }
71
+ this._colorPicker = renderedPart.colorPicker;
72
+ const renderedHoverPart = {
73
+ hoverPart: renderedPart.hoverPart,
74
+ hoverElement: this._colorPicker.domNode,
75
+ dispose() { renderedPart.disposables.dispose(); }
76
+ };
77
+ return (
78
+ (new RenderedHoverParts([renderedHoverPart]))
79
+ );
80
+ }
81
+ getAccessibleContent(hoverPart) {
82
+ return ( localizeWithPath(_moduleId, 0, 'There is a color picker here.'));
83
+ }
84
+ handleResize() {
85
+ this._colorPicker?.layout();
86
+ }
87
+ isColorPickerVisible() {
88
+ return !!this._colorPicker;
64
89
  }
65
90
  };
66
- ColorHoverParticipant = ( __decorate([
67
- ( __param(1, IThemeService))
68
- ], ColorHoverParticipant));
91
+ ColorHoverParticipant = ( (__decorate([
92
+ ( (__param(1, IThemeService)))
93
+ ], ColorHoverParticipant)));
69
94
  class StandaloneColorPickerHover {
70
95
  constructor(owner, range, model, provider) {
71
96
  this.owner = owner;
@@ -109,12 +134,12 @@ let StandaloneColorPickerParticipant = class StandaloneColorPickerParticipant {
109
134
  return;
110
135
  }
111
136
  const colorPickerModel = colorHoverData.model;
112
- let range = ( new Range(
137
+ let range = ( (new Range(
113
138
  colorHoverData.range.startLineNumber,
114
139
  colorHoverData.range.startColumn,
115
140
  colorHoverData.range.endLineNumber,
116
141
  colorHoverData.range.endColumn
117
- ));
142
+ )));
118
143
  if (this._color) {
119
144
  await _updateColorPresentations(this._editor.getModel(), colorPickerModel, this._color, range, colorHoverData);
120
145
  range = _updateEditorModel(this._editor, range, colorPickerModel);
@@ -130,59 +155,62 @@ let StandaloneColorPickerParticipant = class StandaloneColorPickerParticipant {
130
155
  return this._color;
131
156
  }
132
157
  };
133
- StandaloneColorPickerParticipant = ( __decorate([
134
- ( __param(1, IThemeService))
135
- ], StandaloneColorPickerParticipant));
158
+ StandaloneColorPickerParticipant = ( (__decorate([
159
+ ( (__param(1, IThemeService)))
160
+ ], StandaloneColorPickerParticipant)));
136
161
  async function _createColorHover(participant, editorModel, colorInfo, provider) {
137
162
  const originalText = editorModel.getValueInRange(colorInfo.range);
138
163
  const { red, green, blue, alpha } = colorInfo.color;
139
- const rgba = ( new RGBA(
164
+ const rgba = ( (new RGBA(
140
165
  Math.round(red * 255),
141
166
  Math.round(green * 255),
142
167
  Math.round(blue * 255),
143
168
  alpha
144
- ));
145
- const color = ( new Color(rgba));
169
+ )));
170
+ const color = ( (new Color(rgba)));
146
171
  const colorPresentations = await getColorPresentations(editorModel, colorInfo, provider, CancellationToken.None);
147
- const model = ( new ColorPickerModel(color, [], 0));
172
+ const model = ( (new ColorPickerModel(color, [], 0)));
148
173
  model.colorPresentations = colorPresentations || [];
149
174
  model.guessColorPresentation(color, originalText);
150
175
  if (participant instanceof ColorHoverParticipant) {
151
- return ( new ColorHover(participant, Range.lift(colorInfo.range), model, provider));
176
+ return (
177
+ (new ColorHover(participant, Range.lift(colorInfo.range), model, provider))
178
+ );
152
179
  }
153
180
  else {
154
- return ( new StandaloneColorPickerHover(participant, Range.lift(colorInfo.range), model, provider));
181
+ return (
182
+ (new StandaloneColorPickerHover(participant, Range.lift(colorInfo.range), model, provider))
183
+ );
155
184
  }
156
185
  }
157
186
  function renderHoverParts(participant, editor, themeService, hoverParts, context) {
158
187
  if (hoverParts.length === 0 || !editor.hasModel()) {
159
- return Disposable.None;
188
+ return undefined;
160
189
  }
161
190
  if (context.setMinimumDimensions) {
162
191
  const minimumHeight = editor.getOption(EditorOption.lineHeight) + 8;
163
- context.setMinimumDimensions(( new Dimension(302, minimumHeight)));
192
+ context.setMinimumDimensions(( (new Dimension(302, minimumHeight))));
164
193
  }
165
- const disposables = ( new DisposableStore());
194
+ const disposables = ( (new DisposableStore()));
166
195
  const colorHover = hoverParts[0];
167
196
  const editorModel = editor.getModel();
168
197
  const model = colorHover.model;
169
- const widget = disposables.add(( new ColorPickerWidget(
198
+ const colorPicker = disposables.add(( (new ColorPickerWidget(
170
199
  context.fragment,
171
200
  model,
172
201
  editor.getOption(EditorOption.pixelRatio),
173
202
  themeService,
174
203
  participant instanceof StandaloneColorPickerParticipant
175
- )));
176
- context.setColorPicker(widget);
204
+ ))));
177
205
  let editorUpdatedByColorPicker = false;
178
- let range = ( new Range(
206
+ let range = ( (new Range(
179
207
  colorHover.range.startLineNumber,
180
208
  colorHover.range.startColumn,
181
209
  colorHover.range.endLineNumber,
182
210
  colorHover.range.endColumn
183
- ));
211
+ )));
184
212
  if (participant instanceof StandaloneColorPickerParticipant) {
185
- const color = hoverParts[0].model.color;
213
+ const color = colorHover.model.color;
186
214
  participant.color = color;
187
215
  _updateColorPresentations(editorModel, model, color, range, colorHover);
188
216
  disposables.add(model.onColorFlushed((color) => {
@@ -208,7 +236,7 @@ function renderHoverParts(participant, editor, themeService, hoverParts, context
208
236
  editor.focus();
209
237
  }
210
238
  }));
211
- return disposables;
239
+ return { hoverPart: colorHover, colorPicker, disposables };
212
240
  }
213
241
  function _updateEditorModel(editor, range, model) {
214
242
  const textEdits = [];
@@ -359,10 +359,10 @@ class ColorPickerWidget extends Widget {
359
359
  this.model = model;
360
360
  this.pixelRatio = pixelRatio;
361
361
  this._register(PixelRatio.getInstance(getWindow(container)).onDidChange(() => this.layout()));
362
- const element = $('.colorpicker-widget');
363
- container.appendChild(element);
364
- this.header = this._register(( (new ColorPickerHeader(element, this.model, themeService, standaloneColorPicker))));
365
- this.body = this._register(( (new ColorPickerBody(element, this.model, this.pixelRatio, standaloneColorPicker))));
362
+ this._domNode = $('.colorpicker-widget');
363
+ container.appendChild(this._domNode);
364
+ this.header = this._register(( (new ColorPickerHeader(this._domNode, this.model, themeService, standaloneColorPicker))));
365
+ this.body = this._register(( (new ColorPickerBody(this._domNode, this.model, this.pixelRatio, standaloneColorPicker))));
366
366
  }
367
367
  getId() {
368
368
  return ColorPickerWidget.ID;
@@ -370,5 +370,8 @@ class ColorPickerWidget extends Widget {
370
370
  layout() {
371
371
  this.body.layout();
372
372
  }
373
+ get domNode() {
374
+ return this._domNode;
375
+ }
373
376
  }
374
377
  export { ColorPickerBody, ColorPickerHeader, ColorPickerWidget, InsertButton };
@@ -194,39 +194,39 @@ let StandaloneColorPickerWidget = class StandaloneColorPickerWidget extends Disp
194
194
  _render(colorHover, foundInEditor) {
195
195
  const fragment = document.createDocumentFragment();
196
196
  const statusBar = this._register(( new EditorHoverStatusBar(this._keybindingService)));
197
- let colorPickerWidget;
198
197
  const context = {
199
198
  fragment,
200
199
  statusBar,
201
- setColorPicker: (widget) => colorPickerWidget = widget,
202
200
  onContentsChanged: () => { },
203
201
  hide: () => this.hide()
204
202
  };
205
203
  this._colorHover = colorHover;
206
- this._register(this._standaloneColorPickerParticipant.renderHoverParts(context, [colorHover]));
207
- if (colorPickerWidget === undefined) {
204
+ const renderedHoverPart = this._standaloneColorPickerParticipant.renderHoverParts(context, [colorHover]);
205
+ if (!renderedHoverPart) {
208
206
  return;
209
207
  }
208
+ this._register(renderedHoverPart.disposables);
209
+ const colorPicker = renderedHoverPart.colorPicker;
210
210
  this._body.classList.add('standalone-colorpicker-body');
211
211
  this._body.style.maxHeight = Math.max(this._editor.getLayoutInfo().height / 4, 250) + 'px';
212
212
  this._body.style.maxWidth = Math.max(this._editor.getLayoutInfo().width * 0.66, 500) + 'px';
213
213
  this._body.tabIndex = 0;
214
214
  this._body.appendChild(fragment);
215
- colorPickerWidget.layout();
216
- const colorPickerBody = colorPickerWidget.body;
215
+ colorPicker.layout();
216
+ const colorPickerBody = colorPicker.body;
217
217
  const saturationBoxWidth = colorPickerBody.saturationBox.domNode.clientWidth;
218
218
  const widthOfOriginalColorBox = colorPickerBody.domNode.clientWidth - saturationBoxWidth - CLOSE_BUTTON_WIDTH - PADDING;
219
- const enterButton = colorPickerWidget.body.enterButton;
219
+ const enterButton = colorPicker.body.enterButton;
220
220
  enterButton?.onClicked(() => {
221
221
  this.updateEditor();
222
222
  this.hide();
223
223
  });
224
- const colorPickerHeader = colorPickerWidget.header;
224
+ const colorPickerHeader = colorPicker.header;
225
225
  const pickedColorNode = colorPickerHeader.pickedColorNode;
226
226
  pickedColorNode.style.width = saturationBoxWidth + PADDING + 'px';
227
227
  const originalColorNode = colorPickerHeader.originalColorNode;
228
228
  originalColorNode.style.width = widthOfOriginalColorBox + 'px';
229
- const closeButton = colorPickerWidget.header.closeButton;
229
+ const closeButton = colorPicker.header.closeButton;
230
230
  closeButton?.onClicked(() => {
231
231
  this.hide();
232
232
  });
@@ -169,7 +169,7 @@ let ContextMenuController = class ContextMenuController {
169
169
  const useShadowDOM = this._editor.getOption(EditorOption.useShadowDOM) && !isIOS;
170
170
  this._contextMenuIsBeingShownCount++;
171
171
  this._contextMenuService.showContextMenu({
172
- domForShadowRoot: useShadowDOM ? this._editor.getDomNode() : undefined,
172
+ domForShadowRoot: useShadowDOM ? this._editor.getOverflowWidgetsDomNode() ?? this._editor.getDomNode() : undefined,
173
173
  getAnchor: () => anchor,
174
174
  getActions: () => actions,
175
175
  getActionViewItem: (action) => {
@@ -1,10 +1,11 @@
1
1
  import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
2
2
  import { addDisposableListener, getActiveDocument } from '../../../../base/browser/dom.js';
3
3
  import { coalesce } from '../../../../base/common/arrays.js';
4
- import { createCancelablePromise, raceCancellation } from '../../../../base/common/async.js';
4
+ import { createCancelablePromise, raceCancellation, DeferredPromise } from '../../../../base/common/async.js';
5
+ import { CancellationTokenSource } from '../../../../base/common/cancellation.js';
5
6
  import { matchesMimeType, createStringDataTransferItem, UriList } from '../../../../base/common/dataTransfer.js';
6
7
  import { HierarchicalKind } from '../../../../base/common/hierarchicalKind.js';
7
- import { Disposable } from '../../../../base/common/lifecycle.js';
8
+ import { Disposable, DisposableStore } from '../../../../base/common/lifecycle.js';
8
9
  import { Mimes } from '../../../../base/common/mime.js';
9
10
  import { isWeb, isWindows } from '../../../../base/common/platform.js';
10
11
  import { generateUuid } from '../../../../base/common/uuid.js';
@@ -29,6 +30,7 @@ import { ProgressLocation } from '../../../../platform/progress/common/progress.
29
30
  import { IProgressService } from '../../../../platform/progress/common/progress.service.js';
30
31
  import { IQuickInputService } from '../../../../platform/quickinput/common/quickInput.service.js';
31
32
  import { PostEditWidgetManager } from './postEditWidget.js';
33
+ import { isCancellationError, CancellationError } from '../../../../base/common/errors.js';
32
34
  var CopyPasteController_1;
33
35
  const _moduleId = "vs/editor/contrib/dropOrPasteInto/browser/copyPasteController";
34
36
  const changePasteTypeCommandId = 'editor.changePasteType';
@@ -210,59 +212,100 @@ let CopyPasteController = class CopyPasteController extends Disposable {
210
212
  )), selections[0].getStartPosition());
211
213
  }
212
214
  doPasteInline(allProviders, selections, dataTransfer, metadata, clipboardEvent) {
213
- const p = createCancelablePromise(async (token) => {
215
+ const editor = this._editor;
216
+ if (!editor.hasModel()) {
217
+ return;
218
+ }
219
+ const editorStateCts = ( (new EditorStateCancellationTokenSource(
220
+ editor,
221
+ CodeEditorStateFlag.Value | CodeEditorStateFlag.Selection,
222
+ undefined
223
+ )));
224
+ const p = createCancelablePromise(async (pToken) => {
214
225
  const editor = this._editor;
215
226
  if (!editor.hasModel()) {
216
227
  return;
217
228
  }
218
229
  const model = editor.getModel();
219
- const tokenSource = ( (new EditorStateCancellationTokenSource(
220
- editor,
221
- CodeEditorStateFlag.Value | CodeEditorStateFlag.Selection,
222
- undefined,
223
- token
224
- )));
230
+ const disposables = ( (new DisposableStore()));
231
+ const cts = disposables.add(( (new CancellationTokenSource(pToken))));
232
+ disposables.add(editorStateCts.token.onCancellationRequested(() => cts.cancel()));
233
+ const token = cts.token;
225
234
  try {
226
- await this.mergeInDataFromCopy(dataTransfer, metadata, tokenSource.token);
227
- if (tokenSource.token.isCancellationRequested) {
235
+ await this.mergeInDataFromCopy(dataTransfer, metadata, token);
236
+ if (token.isCancellationRequested) {
228
237
  return;
229
238
  }
230
239
  const supportedProviders = allProviders.filter(provider => this.isSupportedPasteProvider(provider, dataTransfer));
231
240
  if (!supportedProviders.length
232
241
  || (supportedProviders.length === 1 && supportedProviders[0] instanceof DefaultTextPasteOrDropEditProvider)
233
242
  ) {
234
- return this.applyDefaultPasteHandler(dataTransfer, metadata, tokenSource.token, clipboardEvent);
243
+ return this.applyDefaultPasteHandler(dataTransfer, metadata, token, clipboardEvent);
235
244
  }
236
245
  const context = {
237
246
  triggerKind: DocumentPasteTriggerKind.Automatic,
238
247
  };
239
- const providerEdits = await this.getPasteEdits(supportedProviders, dataTransfer, model, selections, context, tokenSource.token);
240
- if (tokenSource.token.isCancellationRequested) {
248
+ const editSession = await this.getPasteEdits(supportedProviders, dataTransfer, model, selections, context, token);
249
+ disposables.add(editSession);
250
+ if (token.isCancellationRequested) {
241
251
  return;
242
252
  }
243
- if (providerEdits.length === 1 && providerEdits[0].provider instanceof DefaultTextPasteOrDropEditProvider) {
244
- return this.applyDefaultPasteHandler(dataTransfer, metadata, tokenSource.token, clipboardEvent);
253
+ if (editSession.edits.length === 1 && editSession.edits[0].provider instanceof DefaultTextPasteOrDropEditProvider) {
254
+ return this.applyDefaultPasteHandler(dataTransfer, metadata, token, clipboardEvent);
245
255
  }
246
- if (providerEdits.length) {
256
+ if (editSession.edits.length) {
247
257
  const canShowWidget = editor.getOption(EditorOption.pasteAs).showPasteSelector === 'afterPaste';
248
- return this._postPasteWidgetManager.applyEditAndShowIfNeeded(selections, { activeEditIndex: 0, allEdits: providerEdits }, canShowWidget, async (edit, token) => {
249
- const resolved = await edit.provider.resolveDocumentPasteEdit?.(edit, token);
250
- if (resolved) {
251
- edit.additionalEdit = resolved.additionalEdit;
252
- }
253
- return edit;
254
- }, tokenSource.token);
258
+ return this._postPasteWidgetManager.applyEditAndShowIfNeeded(selections, { activeEditIndex: 0, allEdits: editSession.edits }, canShowWidget, (edit, token) => {
259
+ return (
260
+ (new Promise((resolve, reject) => {
261
+ (async () => {
262
+ try {
263
+ const resolveP = edit.provider.resolveDocumentPasteEdit?.(edit, token);
264
+ const showP = ( (new DeferredPromise()));
265
+ const resolved = resolveP && (await this._pasteProgressManager.showWhile(selections[0].getEndPosition(), ( localizeWithPath(_moduleId, 3, "Resolving paste edit. Click to cancel")), Promise.race([showP.p, resolveP]), {
266
+ cancel: () => {
267
+ showP.cancel();
268
+ return reject(( (new CancellationError())));
269
+ }
270
+ }, 0));
271
+ if (resolved) {
272
+ edit.additionalEdit = resolved.additionalEdit;
273
+ }
274
+ return resolve(edit);
275
+ }
276
+ catch (err) {
277
+ return reject(err);
278
+ }
279
+ })();
280
+ }))
281
+ );
282
+ }, token);
255
283
  }
256
- await this.applyDefaultPasteHandler(dataTransfer, metadata, tokenSource.token, clipboardEvent);
284
+ await this.applyDefaultPasteHandler(dataTransfer, metadata, token, clipboardEvent);
257
285
  }
258
286
  finally {
259
- tokenSource.dispose();
287
+ disposables.dispose();
260
288
  if (this._currentPasteOperation === p) {
261
289
  this._currentPasteOperation = undefined;
262
290
  }
263
291
  }
264
292
  });
265
- this._pasteProgressManager.showWhile(selections[0].getEndPosition(), ( localizeWithPath(_moduleId, 3, "Running paste handlers. Click to cancel")), p);
293
+ this._pasteProgressManager.showWhile(selections[0].getEndPosition(), ( localizeWithPath(_moduleId, 4, "Running paste handlers. Click to cancel and do basic paste")), p, {
294
+ cancel: async () => {
295
+ try {
296
+ p.cancel();
297
+ if (editorStateCts.token.isCancellationRequested) {
298
+ return;
299
+ }
300
+ await this.applyDefaultPasteHandler(dataTransfer, metadata, editorStateCts.token, clipboardEvent);
301
+ }
302
+ finally {
303
+ editorStateCts.dispose();
304
+ }
305
+ }
306
+ }).then(() => {
307
+ editorStateCts.dispose();
308
+ });
266
309
  this._currentPasteOperation = p;
267
310
  }
268
311
  showPasteAsPick(preference, allProviders, selections, dataTransfer, metadata) {
@@ -272,12 +315,13 @@ let CopyPasteController = class CopyPasteController extends Disposable {
272
315
  return;
273
316
  }
274
317
  const model = editor.getModel();
275
- const tokenSource = ( (new EditorStateCancellationTokenSource(
318
+ const disposables = ( (new DisposableStore()));
319
+ const tokenSource = disposables.add(( (new EditorStateCancellationTokenSource(
276
320
  editor,
277
321
  CodeEditorStateFlag.Value | CodeEditorStateFlag.Selection,
278
322
  undefined,
279
323
  token
280
- )));
324
+ ))));
281
325
  try {
282
326
  await this.mergeInDataFromCopy(dataTransfer, metadata, tokenSource.token);
283
327
  if (tokenSource.token.isCancellationRequested) {
@@ -291,21 +335,24 @@ let CopyPasteController = class CopyPasteController extends Disposable {
291
335
  triggerKind: DocumentPasteTriggerKind.PasteAs,
292
336
  only: preference && preference instanceof HierarchicalKind ? preference : undefined,
293
337
  };
294
- let providerEdits = await this.getPasteEdits(supportedProviders, dataTransfer, model, selections, context, tokenSource.token);
338
+ let editSession = disposables.add(await this.getPasteEdits(supportedProviders, dataTransfer, model, selections, context, tokenSource.token));
295
339
  if (tokenSource.token.isCancellationRequested) {
296
340
  return;
297
341
  }
298
342
  if (preference) {
299
- providerEdits = providerEdits.filter(edit => {
300
- if (preference instanceof HierarchicalKind) {
301
- return preference.contains(edit.kind);
302
- }
303
- else {
304
- return preference.providerId === edit.provider.id;
305
- }
306
- });
343
+ editSession = {
344
+ edits: editSession.edits.filter(edit => {
345
+ if (preference instanceof HierarchicalKind) {
346
+ return preference.contains(edit.kind);
347
+ }
348
+ else {
349
+ return preference.providerId === edit.provider.id;
350
+ }
351
+ }),
352
+ dispose: editSession.dispose
353
+ };
307
354
  }
308
- if (!providerEdits.length) {
355
+ if (!editSession.edits.length) {
309
356
  if (context.only) {
310
357
  this.showPasteAsNoEditMessage(selections, context.only);
311
358
  }
@@ -313,15 +360,15 @@ let CopyPasteController = class CopyPasteController extends Disposable {
313
360
  }
314
361
  let pickedEdit;
315
362
  if (preference) {
316
- pickedEdit = providerEdits.at(0);
363
+ pickedEdit = editSession.edits.at(0);
317
364
  }
318
365
  else {
319
- const selected = await this._quickInputService.pick(( (providerEdits.map((edit) => ({
366
+ const selected = await this._quickInputService.pick(( (editSession.edits.map((edit) => ({
320
367
  label: edit.title,
321
368
  description: edit.kind?.value,
322
369
  edit,
323
370
  })))), {
324
- placeHolder: ( localizeWithPath(_moduleId, 4, "Select Paste Action")),
371
+ placeHolder: ( localizeWithPath(_moduleId, 5, "Select Paste Action")),
325
372
  });
326
373
  pickedEdit = selected?.edit;
327
374
  }
@@ -332,7 +379,7 @@ let CopyPasteController = class CopyPasteController extends Disposable {
332
379
  await this._bulkEditService.apply(combinedWorkspaceEdit, { editor: this._editor });
333
380
  }
334
381
  finally {
335
- tokenSource.dispose();
382
+ disposables.dispose();
336
383
  if (this._currentPasteOperation === p) {
337
384
  this._currentPasteOperation = undefined;
338
385
  }
@@ -340,7 +387,7 @@ let CopyPasteController = class CopyPasteController extends Disposable {
340
387
  });
341
388
  this._progressService.withProgress({
342
389
  location: ProgressLocation.Window,
343
- title: ( localizeWithPath(_moduleId, 5, "Running paste handlers")),
390
+ title: ( localizeWithPath(_moduleId, 6, "Running paste handlers")),
344
391
  }, () => p);
345
392
  }
346
393
  setCopyMetadata(dataTransfer, metadata) {
@@ -392,20 +439,29 @@ let CopyPasteController = class CopyPasteController extends Disposable {
392
439
  }
393
440
  }
394
441
  async getPasteEdits(providers, dataTransfer, model, selections, context, token) {
442
+ const disposables = ( (new DisposableStore()));
395
443
  const results = await raceCancellation(Promise.all(( (providers.map(async (provider) => {
396
444
  try {
397
445
  const edits = await provider.provideDocumentPasteEdits?.(model, selections, dataTransfer, context, token);
446
+ if (edits) {
447
+ disposables.add(edits);
448
+ }
398
449
  return edits?.edits?.map(edit => ({ ...edit, provider }));
399
450
  }
400
451
  catch (err) {
401
- console.error(err);
452
+ if (!isCancellationError(err)) {
453
+ console.error(err);
454
+ }
455
+ return undefined;
402
456
  }
403
- return undefined;
404
457
  })))), token);
405
458
  const edits = coalesce(results ?? []).flat().filter(edit => {
406
459
  return !context.only || context.only.contains(edit.kind);
407
460
  });
408
- return sortEditsByYieldTo(edits);
461
+ return {
462
+ edits: sortEditsByYieldTo(edits),
463
+ dispose: () => disposables.dispose()
464
+ };
409
465
  }
410
466
  async applyDefaultPasteHandler(dataTransfer, metadata, token, clipboardEvent) {
411
467
  const textDataTransfer = dataTransfer.get(Mimes.text) ?? dataTransfer.get('text');
@@ -19,13 +19,19 @@ class SimplePasteAndDropProvider {
19
19
  return undefined;
20
20
  }
21
21
  return {
22
+ edits: [{ insertText: edit.insertText, title: edit.title, kind: edit.kind, handledMimeType: edit.handledMimeType, yieldTo: edit.yieldTo }],
22
23
  dispose() { },
23
- edits: [{ insertText: edit.insertText, title: edit.title, kind: edit.kind, handledMimeType: edit.handledMimeType, yieldTo: edit.yieldTo }]
24
24
  };
25
25
  }
26
26
  async provideDocumentDropEdits(_model, _position, dataTransfer, token) {
27
27
  const edit = await this.getEdit(dataTransfer, token);
28
- return edit ? [{ insertText: edit.insertText, title: edit.title, kind: edit.kind, handledMimeType: edit.handledMimeType, yieldTo: edit.yieldTo }] : undefined;
28
+ if (!edit) {
29
+ return;
30
+ }
31
+ return {
32
+ edits: [{ insertText: edit.insertText, title: edit.title, kind: edit.kind, handledMimeType: edit.handledMimeType, yieldTo: edit.yieldTo }],
33
+ dispose() { },
34
+ };
29
35
  }
30
36
  }
31
37
  class DefaultTextPasteOrDropEditProvider extends SimplePasteAndDropProvider {