@codingame/monaco-vscode-api 4.5.2 → 5.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 (434) hide show
  1. package/api.js +1 -1
  2. package/extensions.d.ts +2 -3
  3. package/lifecycle.js +6 -0
  4. package/localExtensionHost.d.ts +4 -1
  5. package/missing-services.js +41 -25
  6. package/package.json +8 -8
  7. package/service-override/tools/editor.js +31 -8
  8. package/service-override/tools/views.d.ts +1 -1
  9. package/service-override/tools/views.js +2 -3
  10. package/service-override/views.d.ts +0 -1
  11. package/services.d.ts +3 -3
  12. package/services.js +3 -3
  13. package/vscode/src/vs/base/browser/markdownRenderer.js +9 -3
  14. package/vscode/src/vs/base/browser/ui/actionbar/actionViewItems.js +2 -2
  15. package/vscode/src/vs/base/browser/ui/button/button.js +3 -3
  16. package/vscode/src/vs/base/browser/ui/codicons/codicon/codicon.css.js +1 -1
  17. package/vscode/src/vs/base/browser/ui/contextview/contextview.js +1 -1
  18. package/vscode/src/vs/base/browser/ui/dropdown/dropdown.js +2 -2
  19. package/vscode/src/vs/base/browser/ui/dropdown/dropdownActionViewItem.js +2 -2
  20. package/vscode/src/vs/base/browser/ui/highlightedlabel/highlightedLabel.js +2 -2
  21. package/vscode/src/vs/{platform/hover/browser → base/browser/ui/hover}/hover.d.ts +64 -4
  22. package/vscode/src/vs/base/browser/ui/hover/hoverDelegate.d.ts +1 -1
  23. package/vscode/src/vs/base/browser/ui/hover/hoverDelegate2.js +13 -0
  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 +30 -14
  26. package/vscode/src/vs/base/browser/ui/iconLabel/iconLabel.js +15 -2
  27. package/vscode/src/vs/base/browser/ui/iconLabel/simpleIconLabel.js +2 -2
  28. package/vscode/src/vs/base/browser/ui/icons/iconSelectBox.css.js +4 -0
  29. package/vscode/src/vs/base/browser/ui/icons/iconSelectBox.js +239 -0
  30. package/vscode/src/vs/base/browser/ui/inputbox/inputBox.js +2 -2
  31. package/vscode/src/vs/base/browser/ui/keybindingLabel/keybindingLabel.js +2 -2
  32. package/vscode/src/vs/base/browser/ui/list/listView.js +5 -3
  33. package/vscode/src/vs/base/browser/ui/list/listWidget.d.ts +33 -0
  34. package/vscode/src/vs/base/browser/ui/list/listWidget.js +4 -1
  35. package/vscode/src/vs/base/browser/ui/menu/menu.js +1 -0
  36. package/vscode/src/vs/base/browser/ui/menu/menubar.css.js +1 -1
  37. package/vscode/src/vs/base/browser/ui/progressbar/progressAccessibilitySignal.js +13 -0
  38. package/vscode/src/vs/base/browser/ui/progressbar/progressbar.js +7 -1
  39. package/vscode/src/vs/base/browser/ui/selectBox/selectBoxCustom.js +2 -2
  40. package/vscode/src/vs/base/browser/ui/table/tableWidget.js +2 -2
  41. package/vscode/src/vs/base/browser/ui/toggle/toggle.js +8 -2
  42. package/vscode/src/vs/base/browser/ui/toolbar/toolbar.d.ts +1 -1
  43. package/vscode/src/vs/base/browser/ui/tree/abstractTree.js +11 -4
  44. package/vscode/src/vs/base/browser/ui/tree/media/tree.css.js +1 -1
  45. package/vscode/src/vs/base/browser/ui/tree/objectTree.js +6 -4
  46. package/vscode/src/vs/base/common/arraysFind.js +7 -7
  47. package/vscode/src/vs/base/common/async.js +8 -3
  48. package/vscode/src/vs/base/common/cache.js +29 -10
  49. package/vscode/src/vs/base/common/cancellation.js +6 -1
  50. package/vscode/src/vs/base/common/codicons.d.ts +3 -0
  51. package/vscode/src/vs/base/common/codiconsLibrary.js +3 -0
  52. package/vscode/src/vs/base/common/controlFlow.js +48 -0
  53. package/vscode/src/vs/base/common/equals.js +44 -0
  54. package/vscode/src/vs/base/common/event.d.ts +11 -1
  55. package/vscode/src/vs/base/common/event.js +26 -1
  56. package/vscode/src/vs/base/common/jsonEdit.js +1 -1
  57. package/vscode/src/vs/base/common/lifecycle.js +1 -1
  58. package/vscode/src/vs/base/common/map.js +53 -4
  59. package/vscode/src/vs/base/common/network.js +2 -0
  60. package/vscode/src/vs/base/common/objects.js +3 -0
  61. package/vscode/src/vs/base/common/observableInternal/autorun.js +1 -10
  62. package/vscode/src/vs/base/common/observableInternal/base.js +22 -10
  63. package/vscode/src/vs/base/common/observableInternal/derived.js +8 -8
  64. package/vscode/src/vs/base/common/observableInternal/promise.js +19 -1
  65. package/vscode/src/vs/base/common/observableInternal/utils.js +30 -52
  66. package/vscode/src/vs/base/common/product.d.ts +1 -0
  67. package/vscode/src/vs/base/common/strings.js +1 -1
  68. package/vscode/src/vs/base/common/types.d.ts +5 -1
  69. package/vscode/src/vs/editor/browser/config/editorConfiguration.js +3 -2
  70. package/vscode/src/vs/editor/browser/observableUtilities.js +58 -0
  71. package/vscode/src/vs/editor/browser/services/hoverService/hoverService.js +121 -2
  72. package/vscode/src/vs/editor/browser/services/hoverService/updatableHoverWidget.js +80 -0
  73. package/vscode/src/vs/editor/browser/stableEditorScroll.js +37 -1
  74. package/vscode/src/vs/editor/browser/widget/codeEditor/codeEditorWidget.js +10 -3
  75. package/vscode/src/vs/editor/browser/widget/codeEditor/editor.css.js +1 -1
  76. package/vscode/src/vs/editor/browser/widget/diffEditor/components/diffEditorDecorations.js +1 -0
  77. package/vscode/src/vs/editor/browser/widget/diffEditor/components/diffEditorEditors.js +7 -5
  78. package/vscode/src/vs/editor/browser/widget/diffEditor/components/diffEditorSash.js +1 -0
  79. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorOptions.js +1 -0
  80. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorViewModel.js +3 -0
  81. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorWidget.js +3 -10
  82. package/vscode/src/vs/editor/browser/widget/diffEditor/diffProviderFactoryService.js +8 -0
  83. package/vscode/src/vs/editor/browser/widget/diffEditor/features/gutterFeature.js +6 -6
  84. package/vscode/src/vs/editor/browser/widget/diffEditor/features/hideUnchangedRegionsFeature.js +1 -0
  85. package/vscode/src/vs/editor/browser/widget/diffEditor/features/movedBlocksLinesFeature.js +2 -2
  86. package/vscode/src/vs/editor/browser/widget/diffEditor/features/overviewRulerFeature.js +1 -0
  87. package/vscode/src/vs/editor/browser/widget/diffEditor/features/revertButtonsFeature.js +1 -0
  88. package/vscode/src/vs/editor/browser/widget/diffEditor/utils/editorGutter.js +1 -0
  89. package/vscode/src/vs/editor/browser/widget/diffEditor/utils.js +1 -0
  90. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/diffEditorItemTemplate.js +3 -2
  91. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorViewModel.js +17 -8
  92. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidget.js +1 -0
  93. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidgetImpl.js +27 -19
  94. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/style.css.js +1 -1
  95. package/vscode/src/vs/editor/common/core/editorColorRegistry.js +4 -4
  96. package/vscode/src/vs/editor/common/core/lineRange.d.ts +12 -0
  97. package/vscode/src/vs/editor/common/core/lineRange.js +28 -0
  98. package/vscode/src/vs/editor/common/core/textEdit.d.ts +21 -0
  99. package/vscode/src/vs/editor/common/core/textEdit.js +13 -1
  100. package/vscode/src/vs/editor/common/core/textLength.d.ts +29 -0
  101. package/vscode/src/vs/editor/common/core/textLength.js +6 -0
  102. package/vscode/src/vs/editor/common/cursor/cursorCollection.js +3 -3
  103. package/vscode/src/vs/editor/common/diff/defaultLinesDiffComputer/defaultLinesDiffComputer.js +11 -1
  104. package/vscode/src/vs/editor/common/diff/rangeMapping.d.ts +11 -0
  105. package/vscode/src/vs/editor/common/diff/rangeMapping.js +34 -3
  106. package/vscode/src/vs/editor/common/languages.d.ts +50 -10
  107. package/vscode/src/vs/editor/common/languages.js +11 -1
  108. package/vscode/src/vs/editor/common/services/languageFeatureDebounce.js +1 -1
  109. package/vscode/src/vs/editor/common/services/languageFeatures.d.ts +2 -2
  110. package/vscode/src/vs/editor/common/services/languageFeaturesService.js +1 -1
  111. package/vscode/src/vs/editor/common/standalone/standaloneEnums.js +11 -1
  112. package/vscode/src/vs/editor/common/viewModel/viewModelImpl.js +3 -0
  113. package/vscode/src/vs/editor/contrib/codeAction/browser/codeActionController.js +22 -6
  114. package/vscode/src/vs/editor/contrib/codeAction/browser/codeActionModel.js +5 -0
  115. package/vscode/src/vs/editor/contrib/codeAction/browser/lightBulbWidget.js +1 -0
  116. package/vscode/src/vs/editor/contrib/colorPicker/browser/colorContributions.js +1 -1
  117. package/vscode/src/vs/editor/contrib/colorPicker/browser/standaloneColorPickerActions.js +20 -3
  118. package/vscode/src/vs/editor/contrib/colorPicker/browser/standaloneColorPickerWidget.js +1 -1
  119. package/vscode/src/vs/editor/contrib/contextmenu/browser/contextmenu.js +2 -2
  120. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/defaultProviders.js +4 -4
  121. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController.js +2 -2
  122. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/postEditWidget.js +7 -0
  123. package/vscode/src/vs/editor/contrib/find/browser/findController.js +11 -6
  124. package/vscode/src/vs/editor/contrib/find/browser/findWidget.js +10 -10
  125. package/vscode/src/vs/editor/contrib/hover/browser/contentHoverComputer.js +74 -0
  126. package/vscode/src/vs/editor/contrib/hover/browser/contentHoverController.js +332 -0
  127. package/vscode/src/vs/editor/contrib/hover/browser/contentHoverStatusBar.js +34 -0
  128. package/vscode/src/vs/editor/contrib/hover/browser/contentHoverTypes.js +39 -0
  129. package/vscode/src/vs/editor/contrib/hover/browser/contentHoverWidget.js +355 -0
  130. package/vscode/src/vs/editor/contrib/hover/browser/getHover.js +11 -14
  131. package/vscode/src/vs/editor/contrib/hover/browser/hover.css.js +1 -1
  132. package/vscode/src/vs/editor/contrib/hover/browser/hoverActionIds.js +13 -0
  133. package/vscode/src/vs/editor/contrib/hover/browser/hoverActions.js +354 -0
  134. package/vscode/src/vs/editor/contrib/hover/browser/hoverContribution.js +42 -0
  135. package/vscode/src/vs/editor/contrib/hover/browser/hoverController.js +320 -0
  136. package/vscode/src/vs/editor/contrib/hover/browser/marginHoverComputer.js +48 -0
  137. package/vscode/src/vs/editor/contrib/hover/browser/{marginHover.js → marginHoverWidget.js} +14 -48
  138. package/vscode/src/vs/editor/contrib/hover/browser/markdownHoverParticipant.js +250 -41
  139. package/vscode/src/vs/editor/contrib/hover/browser/markerHoverParticipant.js +1 -0
  140. package/vscode/src/vs/editor/contrib/indentation/browser/indentation.js +44 -20
  141. package/vscode/src/vs/editor/contrib/inlayHints/browser/inlayHintsHover.js +11 -7
  142. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/commands.js +1 -0
  143. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/ghostTextWidget.js +1 -0
  144. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/hoverParticipant.js +2 -3
  145. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionContextKeys.js +1 -0
  146. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsController.js +26 -13
  147. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsHintsWidget.js +5 -11
  148. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsModel.js +24 -22
  149. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsSource.js +39 -70
  150. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/suggestWidgetInlineCompletionProvider.js +3 -3
  151. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/utils.js +1 -0
  152. package/vscode/src/vs/editor/contrib/inlineEdit/browser/ghostTextWidget.js +1 -0
  153. package/vscode/src/vs/editor/contrib/inlineEdit/browser/hoverParticipant.js +1 -0
  154. package/vscode/src/vs/editor/contrib/inlineEdit/browser/inlineEditController.js +4 -2
  155. package/vscode/src/vs/editor/contrib/inlineEdit/browser/inlineEditHintsWidget.js +5 -3
  156. package/vscode/src/vs/editor/contrib/inlineProgress/browser/inlineProgressWidget.css.js +1 -1
  157. package/vscode/src/vs/editor/contrib/rename/browser/rename.js +18 -6
  158. package/vscode/src/vs/editor/contrib/rename/browser/renameWidget.css.js +1 -1
  159. package/vscode/src/vs/editor/contrib/rename/browser/renameWidget.js +165 -40
  160. package/vscode/src/vs/editor/contrib/sectionHeaders/browser/sectionHeaders.js +5 -0
  161. package/vscode/src/vs/editor/contrib/snippet/browser/snippetController2.js +3 -3
  162. package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScrollActions.js +15 -8
  163. package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScrollController.js +13 -6
  164. package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScrollModelProvider.js +0 -2
  165. package/vscode/src/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js +9 -2
  166. package/vscode/src/vs/editor/standalone/browser/standaloneCodeEditor.js +23 -18
  167. package/vscode/src/vs/editor/standalone/browser/standaloneServices.js +33 -11
  168. package/vscode/src/vs/platform/accessibility/common/accessibility.d.ts +1 -9
  169. package/vscode/src/vs/platform/accessibility/common/accessibility.js +2 -1
  170. package/vscode/src/vs/platform/accessibilitySignal/browser/accessibilitySignalService.d.ts +15 -9
  171. package/vscode/src/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js +133 -132
  172. package/vscode/src/vs/platform/accessibilitySignal/browser/accessibilitySignalService.service.d.ts +12 -5
  173. package/vscode/src/vs/platform/accessibilitySignal/browser/progressAccessibilitySignalScheduler.js +25 -0
  174. package/vscode/src/vs/platform/actionWidget/browser/actionWidget.js +4 -4
  175. package/vscode/src/vs/platform/actions/browser/buttonbar.js +10 -7
  176. package/vscode/src/vs/platform/actions/browser/dropdownWithPrimaryActionViewItem.js +1 -1
  177. package/vscode/src/vs/platform/actions/browser/toolbar.d.ts +4 -1
  178. package/vscode/src/vs/platform/actions/browser/toolbar.js +53 -36
  179. package/vscode/src/vs/platform/actions/common/actions.d.ts +3 -1
  180. package/vscode/src/vs/platform/actions/common/actions.js +14 -4
  181. package/vscode/src/vs/platform/actions/common/menuService.js +30 -8
  182. package/vscode/src/vs/platform/configuration/common/configuration.js +4 -0
  183. package/vscode/src/vs/platform/configuration/common/configurationModels.js +43 -32
  184. package/vscode/src/vs/platform/configuration/common/configurations.js +12 -10
  185. package/vscode/src/vs/platform/contextview/browser/contextView.d.ts +4 -1
  186. package/vscode/src/vs/platform/contextview/browser/contextView.service.d.ts +2 -3
  187. package/vscode/src/vs/platform/contextview/browser/contextViewService.js +10 -8
  188. package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.d.ts +0 -1
  189. package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.js +1 -0
  190. package/vscode/src/vs/platform/extensionManagement/common/extensionsScannerService.js +1 -0
  191. package/vscode/src/vs/platform/extensions/common/extensions.d.ts +5 -0
  192. package/vscode/src/vs/platform/files/common/files.d.ts +14 -1
  193. package/vscode/src/vs/platform/hover/browser/hover.service.d.ts +2 -31
  194. package/vscode/src/vs/platform/instantiation/common/instantiation.d.ts +9 -0
  195. package/vscode/src/vs/platform/instantiation/common/instantiationService.js +42 -8
  196. package/vscode/src/vs/platform/log/common/log.js +3 -1
  197. package/vscode/src/vs/platform/markers/common/markerService.js +7 -3
  198. package/vscode/src/vs/platform/opener/browser/link.js +6 -4
  199. package/vscode/src/vs/platform/quickinput/browser/quickInput.js +2 -2
  200. package/vscode/src/vs/platform/quickinput/browser/quickInputTree.js +15 -7
  201. package/vscode/src/vs/platform/telemetry/common/gdprTypings.d.ts +0 -1
  202. package/vscode/src/vs/platform/telemetry/common/telemetryUtils.js +1 -0
  203. package/vscode/src/vs/platform/terminal/common/capabilities/capabilities.d.ts +5 -0
  204. package/vscode/src/vs/platform/terminal/common/capabilities/commandDetection/promptInputModel.d.ts +30 -0
  205. package/vscode/src/vs/platform/theme/browser/defaultStyles.js +6 -0
  206. package/vscode/src/vs/platform/theme/browser/iconsStyleSheet.js +13 -11
  207. package/vscode/src/vs/platform/userDataProfile/common/userDataProfile.js +1 -1
  208. package/vscode/src/vs/workbench/api/common/extHost.api.impl.js +28 -28
  209. package/vscode/src/vs/workbench/api/common/extHost.protocol.js +2 -6
  210. package/vscode/src/vs/workbench/api/common/extHostBulkEdits.js +2 -1
  211. package/vscode/src/vs/workbench/api/common/extHostChatAgents2.js +104 -96
  212. package/vscode/src/vs/workbench/api/common/extHostChatVariables.js +4 -4
  213. package/vscode/src/vs/workbench/api/common/extHostConfiguration.js +9 -3
  214. package/vscode/src/vs/workbench/api/common/extHostDebugService.js +3 -3
  215. package/vscode/src/vs/workbench/api/common/extHostDocumentSaveParticipant.js +2 -1
  216. package/vscode/src/vs/workbench/api/common/extHostEditorTabs.js +1 -1
  217. package/vscode/src/vs/workbench/api/common/extHostFileSystemEventService.js +19 -1
  218. package/vscode/src/vs/workbench/api/common/extHostLanguageFeatures.js +87 -17
  219. package/vscode/src/vs/workbench/api/common/extHostLanguageModels.js +39 -2
  220. package/vscode/src/vs/workbench/api/common/extHostNotebookDocumentSaveParticipant.js +2 -1
  221. package/vscode/src/vs/workbench/api/common/extHostTerminalShellIntegration.js +52 -36
  222. package/vscode/src/vs/workbench/api/common/extHostTesting.js +10 -28
  223. package/vscode/src/vs/workbench/api/common/extHostTreeViews.js +6 -1
  224. package/vscode/src/vs/workbench/api/common/extHostTypeConverters.js +132 -136
  225. package/vscode/src/vs/workbench/api/common/extHostTypes.js +72 -18
  226. package/vscode/src/vs/workbench/api/common/extHostWindow.js +3 -5
  227. package/vscode/src/vs/workbench/browser/actions/layoutActions.js +86 -76
  228. package/vscode/src/vs/workbench/browser/actions/media/actions.css.js +1 -1
  229. package/vscode/src/vs/workbench/browser/actions/widgetNavigationCommands.js +30 -6
  230. package/vscode/src/vs/workbench/browser/labels.js +4 -1
  231. package/vscode/src/vs/workbench/browser/parts/compositePart.d.ts +3 -1
  232. package/vscode/src/vs/workbench/browser/parts/editor/diffEditorCommands.js +19 -7
  233. package/vscode/src/vs/workbench/browser/parts/editor/editorGroupView.js +16 -3
  234. package/vscode/src/vs/workbench/browser/parts/editor/media/editorquickaccess.css.js +1 -1
  235. package/vscode/src/vs/workbench/browser/parts/editor/media/multieditortabscontrol.css.js +1 -1
  236. package/vscode/src/vs/workbench/browser/parts/editor/multiEditorTabsControl.js +14 -33
  237. package/vscode/src/vs/workbench/browser/parts/globalCompositeBar.js +33 -13
  238. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsViewer.js +7 -5
  239. package/vscode/src/vs/workbench/browser/parts/paneCompositePart.d.ts +4 -3
  240. package/vscode/src/vs/workbench/browser/parts/panel/panelPart.d.ts +2 -1
  241. package/vscode/src/vs/workbench/browser/parts/sidebar/sidebarPart.d.ts +3 -1
  242. package/vscode/src/vs/workbench/browser/parts/views/checkbox.js +3 -3
  243. package/vscode/src/vs/workbench/browser/parts/views/media/views.css.js +1 -1
  244. package/vscode/src/vs/workbench/browser/parts/views/treeView.js +182 -63
  245. package/vscode/src/vs/workbench/browser/parts/views/viewPane.d.ts +14 -3
  246. package/vscode/src/vs/workbench/browser/parts/views/viewPane.js +61 -34
  247. package/vscode/src/vs/workbench/browser/workbench.contribution.js +16 -10
  248. package/vscode/src/vs/workbench/common/theme.js +144 -98
  249. package/vscode/src/vs/workbench/common/views.d.ts +2 -0
  250. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration.js +190 -138
  251. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibleView.js +876 -0
  252. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibleViewActions.js +59 -7
  253. package/vscode/src/vs/workbench/contrib/accessibility/browser/{accessibilityContributions.js → accessibleViewContributions.js} +160 -6
  254. package/vscode/src/vs/workbench/contrib/accessibility/browser/editorAccessibilityHelp.js +3 -3
  255. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatActions.js +66 -150
  256. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +75 -12
  257. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +21 -22
  258. package/vscode/src/vs/workbench/contrib/chat/browser/chat.js +6 -1
  259. package/vscode/src/vs/workbench/contrib/chat/browser/chatAgentHover.js +101 -0
  260. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditorInput.js +6 -5
  261. package/vscode/src/vs/workbench/contrib/chat/browser/chatInputPart.js +30 -23
  262. package/vscode/src/vs/workbench/contrib/chat/browser/chatListRenderer.js +201 -47
  263. package/vscode/src/vs/workbench/contrib/chat/browser/chatMarkdownDecorationsRenderer.js +42 -5
  264. package/vscode/src/vs/workbench/contrib/chat/browser/chatWidget.js +13 -28
  265. package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockPart.css.js +1 -1
  266. package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockPart.js +366 -6
  267. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatDynamicVariables.js +35 -2
  268. package/vscode/src/vs/workbench/contrib/chat/browser/media/chat.css.js +1 -1
  269. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatAgentHover.css.js +4 -0
  270. package/vscode/src/vs/workbench/contrib/chat/common/annotations.js +4 -9
  271. package/vscode/src/vs/workbench/contrib/chat/common/chatAgents.js +95 -5
  272. package/vscode/src/vs/workbench/contrib/chat/common/chatAgents.service.js +2 -1
  273. package/vscode/src/vs/workbench/contrib/chat/common/chatColors.js +1 -1
  274. package/vscode/src/vs/workbench/contrib/chat/common/chatContextKeys.js +11 -6
  275. package/vscode/src/vs/workbench/contrib/chat/common/chatModel.js +94 -79
  276. package/vscode/src/vs/workbench/contrib/chat/common/chatParserTypes.js +0 -13
  277. package/vscode/src/vs/workbench/contrib/chat/common/chatParticipantContribTypes.js +2 -0
  278. package/vscode/src/vs/workbench/contrib/chat/common/chatViewModel.js +7 -9
  279. package/vscode/src/vs/workbench/contrib/chat/common/languageModelStats.service.js +3 -0
  280. package/vscode/src/vs/workbench/contrib/codeEditor/browser/dictation/editorDictation.js +1 -1
  281. package/vscode/src/vs/workbench/contrib/codeEditor/browser/diffEditorHelper.js +1 -0
  282. package/vscode/src/vs/workbench/contrib/codeEditor/browser/find/simpleFindWidget.js +4 -4
  283. package/vscode/src/vs/workbench/contrib/comments/browser/commentNode.js +30 -26
  284. package/vscode/src/vs/workbench/contrib/comments/browser/commentReply.js +30 -29
  285. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadBody.js +4 -4
  286. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadWidget.js +5 -4
  287. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadZoneWidget.js +3 -3
  288. package/vscode/src/vs/workbench/contrib/comments/browser/commentsController.js +13 -13
  289. package/vscode/src/vs/workbench/contrib/comments/browser/commentsTreeViewer.js +26 -16
  290. package/vscode/src/vs/workbench/contrib/comments/browser/commentsView.js +107 -26
  291. package/vscode/src/vs/workbench/contrib/comments/browser/media/review.css.js +1 -1
  292. package/vscode/src/vs/workbench/contrib/comments/browser/simpleCommentEditor.js +23 -2
  293. package/vscode/src/vs/workbench/contrib/comments/browser/timestamp.js +2 -3
  294. package/vscode/src/vs/workbench/contrib/debug/browser/baseDebugView.js +39 -11
  295. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointsView.js +53 -33
  296. package/vscode/src/vs/workbench/contrib/debug/browser/debugCommands.js +967 -0
  297. package/vscode/src/vs/workbench/contrib/debug/browser/debugSessionPicker.js +101 -0
  298. package/vscode/src/vs/workbench/contrib/debug/common/debug.js +4 -1
  299. package/vscode/src/vs/workbench/contrib/debug/common/loadedScriptsPicker.js +82 -0
  300. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsActions.js +10 -9
  301. package/vscode/src/vs/workbench/contrib/files/browser/fileActions.js +79 -45
  302. package/vscode/src/vs/workbench/contrib/files/browser/{fileCommands.save.js → fileCommands._save.js} +4 -4
  303. package/vscode/src/vs/workbench/contrib/files/browser/{files.configuration.contribution.js → files.contribution._configuration.js} +1 -1
  304. package/vscode/src/vs/workbench/contrib/files/browser/{files.editorPane.contribution.js → files.contribution._editorPane.js} +18 -18
  305. package/vscode/src/vs/workbench/contrib/files/browser/views/emptyView.js +5 -3
  306. package/vscode/src/vs/workbench/contrib/files/browser/views/explorerView.js +19 -14
  307. package/vscode/src/vs/workbench/contrib/files/browser/views/media/openeditors.css.js +1 -1
  308. package/vscode/src/vs/workbench/contrib/files/browser/views/openEditorsView.js +8 -8
  309. package/vscode/src/vs/workbench/contrib/files/browser/workspaceWatcher.js +15 -2
  310. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +29 -112
  311. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatContentWidget.js +10 -7
  312. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +99 -91
  313. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSession.js +9 -31
  314. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +345 -104
  315. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatStrategies.js +62 -69
  316. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +63 -46
  317. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.js +18 -10
  318. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChat.css.js +1 -1
  319. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatContentWidget.css.js +1 -1
  320. package/vscode/src/vs/workbench/contrib/inlineChat/browser/utils.js +1 -31
  321. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +7 -3
  322. package/vscode/src/vs/workbench/contrib/interactive/browser/interactiveEditorInput.js +5 -1
  323. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInput.js +1 -0
  324. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInputModel.js +1 -0
  325. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeMarkers/mergeMarkersController.js +1 -0
  326. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/textModelDiffs.js +4 -4
  327. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/utils.js +2 -48
  328. package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditorInput.js +28 -23
  329. package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/multiDiffSourceResolverService.js +5 -9
  330. package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/scmMultiDiffSourceResolver.js +112 -0
  331. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindReplaceWidget.js +18 -10
  332. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +4 -4
  333. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOutputActions.js +7 -2
  334. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatController.js +4 -5
  335. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/editActions.js +8 -3
  336. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookAccessibilityProvider.js +1 -0
  337. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookEditor.js +36 -4
  338. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.js +9 -6
  339. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookOptions.js +17 -5
  340. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellActionView.js +6 -4
  341. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellComments.js +5 -5
  342. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellEditorOptions.js +3 -3
  343. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellStatusPart.js +5 -4
  344. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellToolbars.js +2 -0
  345. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/foldedCellHint.js +1 -1
  346. package/vscode/src/vs/workbench/contrib/notebook/browser/view/notebookCellAnchor.js +2 -3
  347. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/backLayerWebView.js +22 -1
  348. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/webviewPreloads.js +34 -6
  349. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/baseCellViewModel.js +15 -0
  350. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/cellEditorOptions.js +6 -4
  351. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/notebookOutlineProviderFactory.service.js +3 -0
  352. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookEditorStickyScroll.js +17 -14
  353. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookEditorToolbar.js +2 -1
  354. package/vscode/src/vs/workbench/contrib/notebook/common/model/notebookCellTextModel.js +52 -16
  355. package/vscode/src/vs/workbench/contrib/notebook/common/notebookCommon.js +3 -1
  356. package/vscode/src/vs/workbench/contrib/notebook/common/notebookContextKeys.js +2 -2
  357. package/vscode/src/vs/workbench/contrib/notebook/common/notebookEditorModel.js +25 -12
  358. package/vscode/src/vs/workbench/contrib/preferences/browser/preferencesWidgets.js +6 -4
  359. package/vscode/src/vs/workbench/contrib/remote/browser/remoteExplorer.js +0 -2
  360. package/vscode/src/vs/workbench/contrib/remote/browser/tunnelView.js +6 -4
  361. package/vscode/src/vs/workbench/contrib/scm/browser/dirtydiffDecorator.js +24 -2
  362. package/vscode/src/vs/workbench/contrib/search/browser/searchActionsFind.js +38 -8
  363. package/vscode/src/vs/workbench/contrib/search/browser/searchModel.js +0 -1
  364. package/vscode/src/vs/workbench/contrib/speech/common/speechService.js +1 -0
  365. package/vscode/src/vs/workbench/contrib/terminal/browser/terminal.d.ts +7 -14
  366. package/vscode/src/vs/workbench/contrib/terminal/browser/terminal.service.d.ts +24 -6
  367. package/vscode/src/vs/workbench/contrib/terminal/browser/terminal.service.js +2 -1
  368. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.d.ts +8 -9
  369. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm-private.d.ts +2 -20
  370. package/vscode/src/vs/workbench/contrib/terminal/common/terminal.d.ts +3 -1
  371. package/vscode/src/vs/workbench/contrib/terminal/common/terminalColorRegistry.js +2 -2
  372. package/vscode/src/vs/workbench/contrib/testing/common/testCoverage.js +1 -0
  373. package/vscode/src/vs/workbench/contrib/testing/common/testItemCollection.js +10 -0
  374. package/vscode/src/vs/workbench/contrib/testing/common/testResult.js +15 -3
  375. package/vscode/src/vs/workbench/services/accessibility/common/accessibleViewInformationService.service.d.ts +9 -0
  376. package/vscode/src/vs/workbench/services/accessibility/common/accessibleViewInformationService.service.js +3 -0
  377. package/vscode/src/vs/workbench/services/editor/common/customEditorLabelService.js +30 -16
  378. package/vscode/src/vs/workbench/services/editor/common/editorGroupsService.d.ts +15 -4
  379. package/vscode/src/vs/workbench/services/editor/common/editorGroupsService.service.d.ts +20 -1
  380. package/vscode/src/vs/workbench/services/extensionManagement/common/extensionManagement.service.d.ts +0 -1
  381. package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.d.ts +4 -1
  382. package/vscode/src/vs/workbench/services/extensions/common/extensionHostManagers.d.ts +4 -1
  383. package/vscode/src/vs/workbench/services/extensions/common/extensionRunningLocation.d.ts +1 -1
  384. package/vscode/src/vs/workbench/services/extensions/common/extensions.d.ts +8 -2
  385. package/vscode/src/vs/workbench/services/extensions/common/extensions.js +2 -1
  386. package/vscode/src/vs/workbench/services/extensions/common/extensions.service.d.ts +4 -1
  387. package/vscode/src/vs/workbench/services/extensions/common/extensionsApiProposals.js +3 -3
  388. package/vscode/src/vs/workbench/services/language/common/languageService.js +23 -18
  389. package/vscode/src/vs/workbench/services/layout/browser/layoutService.js +6 -4
  390. package/vscode/src/vs/workbench/services/preferences/browser/keybindingsEditorModel.js +50 -9
  391. package/vscode/src/vs/workbench/services/themes/common/workbenchThemeService.js +1 -0
  392. package/vscode/src/vs/workbench/services/userDataProfile/browser/iconSelectBox.js +97 -0
  393. package/vscode/src/vs/workbench/services/workingCopy/common/fileWorkingCopy.d.ts +7 -2
  394. package/vscode/src/vs/workbench/services/workingCopy/common/storedFileWorkingCopy.js +2 -2
  395. package/vscode-dts/vscode.proposed.chatParticipant.d.ts +23 -45
  396. package/vscode-dts/vscode.proposed.chatParticipantAdditions.d.ts +65 -91
  397. package/vscode-dts/vscode.proposed.chatProvider.d.ts +9 -0
  398. package/vscode-dts/vscode.proposed.chatTab.d.ts +1 -5
  399. package/vscode-dts/vscode.proposed.contribAccessibilityHelpContent.d.ts +15 -0
  400. package/vscode-dts/vscode.proposed.debugFocus.d.ts +4 -4
  401. package/vscode-dts/vscode.proposed.defaultChatParticipant.d.ts +2 -2
  402. package/vscode-dts/vscode.proposed.documentPaste.d.ts +144 -43
  403. package/vscode-dts/vscode.proposed.editorHoverVerbosityLevel.d.ts +76 -0
  404. package/vscode-dts/vscode.proposed.interactive.d.ts +1 -17
  405. package/vscode-dts/vscode.proposed.languageModels.d.ts +56 -11
  406. package/vscode-dts/vscode.proposed.newSymbolNamesProvider.d.ts +12 -1
  407. package/vscode-dts/vscode.proposed.scmHistoryProvider.d.ts +4 -4
  408. package/vscode-dts/vscode.proposed.speech.d.ts +2 -1
  409. package/vscode-dts/vscode.proposed.terminalShellIntegration.d.ts +144 -38
  410. package/vscode-dts/vscode.proposed.testPreserveFocus.d.ts +28 -0
  411. package/vscode/src/vs/base/browser/ui/hover/updatableHoverWidget.d.ts +0 -21
  412. package/vscode/src/vs/base/browser/ui/hover/updatableHoverWidget.js +0 -214
  413. package/vscode/src/vs/editor/browser/services/hoverService/hoverService.d.ts +0 -32
  414. package/vscode/src/vs/editor/contrib/hover/browser/contentHover.js +0 -838
  415. package/vscode/src/vs/editor/contrib/hover/browser/hover.js +0 -621
  416. package/vscode/src/vs/platform/accessibility/common/accessibility.service.d.ts +0 -19
  417. package/vscode/src/vs/workbench/api/common/extHostChat.js +0 -54
  418. package/vscode/src/vs/workbench/api/common/extHostIssueReporter.js +0 -70
  419. package/vscode/src/vs/workbench/contrib/accessibilitySignals/browser/accessibilitySignal.contribution.js +0 -237
  420. package/vscode/src/vs/workbench/contrib/accessibilitySignals/browser/accessibilitySignalDebuggerContribution.js +0 -49
  421. package/vscode/src/vs/workbench/contrib/accessibilitySignals/browser/accessibilitySignalLineFeatureContribution.js +0 -178
  422. package/vscode/src/vs/workbench/contrib/accessibilitySignals/browser/commands.js +0 -141
  423. package/vscode/src/vs/workbench/contrib/chat/common/chatContributionService.service.js +0 -3
  424. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatFileCreationWidget.js +0 -212
  425. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/OutlineEntry.js +0 -95
  426. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/notebookOutlineEntryFactory.js +0 -110
  427. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/notebookOutlineProvider.js +0 -224
  428. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalConfigHelper.d.ts +0 -48
  429. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalEvents.js +0 -47
  430. package/vscode-dts/vscode.proposed.dropMetadata.d.ts +0 -65
  431. package/vscode-dts/vscode.proposed.handleIssueUri.d.ts +0 -57
  432. package/vscode-dts/vscode.proposed.windowActivity.d.ts +0 -17
  433. /package/vscode/src/vs/workbench/browser/parts/editor/{editor.autosave.contribution.js → editor.contribution._autosave.js} +0 -0
  434. /package/vscode/src/vs/workbench/contrib/files/browser/{files.fileEditorFactory.contribution.js → files.contribution._fileEditorFactory.js} +0 -0
@@ -11,12 +11,12 @@ import { assertType, isObject } from '../../../base/common/types.js';
11
11
  import { URI } from '../../../base/common/uri.js';
12
12
  import { Range as Range$1 } from '../../../editor/common/core/range.js';
13
13
  import { Selection } from '../../../editor/common/core/selection.js';
14
- import { InlineEditTriggerKind, InlineCompletionTriggerKind } from '../../../editor/common/languages.js';
14
+ import { NewSymbolNameTriggerKind, InlineEditTriggerKind, InlineCompletionTriggerKind } from '../../../editor/common/languages.js';
15
15
  import { encodeSemanticTokensDto } from '../../../editor/common/services/semanticTokensDto.js';
16
16
  import { localizeWithPath } from '../../../nls.js';
17
17
  import { ExtensionIdentifier } from '../../../platform/extensions/common/extensions.js';
18
18
  import { DocumentSelector, DocumentSymbol as DocumentSymbol$1, SymbolKind, SymbolTag, Range, Position, Hover, EvaluatableExpression, InlineValueContext, InlineValue, DocumentHighlight, MultiDocumentHighlight, location, Selection as Selection$1, CodeActionTriggerKind, Diagnostic, WorkspaceEdit, DataTransfer, TextEdit, WorkspaceSymbol, CompletionContext, CompletionItemKind, CompletionItemTag, MarkdownString, SignatureHelp, InlayHintKind, DocumentLink, Color, ColorPresentation, FoldingRange, SelectionRange, CallHierarchyItem, TypeHierarchyItem, DefinitionLink, PartialAcceptInfo } from './extHostTypeConverters.js';
19
- import { Disposable, SyntaxTokenType, DocumentSymbol, Range as Range$2, CodeActionKind, InternalDataTransferItem, DocumentPasteEditKind, SemanticTokens, SemanticTokensEdits, SemanticTokensEdit, SnippetString, InlineEditTriggerKind as InlineEditTriggerKind$1, Location, CompletionList, InlineCompletionTriggerKind as InlineCompletionTriggerKind$1 } from './extHostTypes.js';
19
+ import { Disposable, SyntaxTokenType, DocumentSymbol, Range as Range$2, CodeActionKind, InternalDataTransferItem, DocumentDropOrPasteEditKind, NewSymbolNameTriggerKind as NewSymbolNameTriggerKind$1, SemanticTokens, SemanticTokensEdits, SemanticTokensEdit, SnippetString, InlineEditTriggerKind as InlineEditTriggerKind$1, Location, CompletionList, InlineCompletionTriggerKind as InlineCompletionTriggerKind$1 } from './extHostTypes.js';
20
20
  import { isProposedApiEnabled } from '../../services/extensions/common/extensions.js';
21
21
  import { Cache } from './cache.js';
22
22
  import { MainContext } from './extHost.protocol.js';
@@ -212,14 +212,29 @@ class TypeDefinitionAdapter {
212
212
  }
213
213
  }
214
214
  class HoverAdapter {
215
+ static { this.HOVER_MAP_MAX_SIZE = 10; }
215
216
  constructor(_documents, _provider) {
216
217
  this._documents = _documents;
217
218
  this._provider = _provider;
219
+ this._hoverCounter = 0;
220
+ this._hoverMap = ( (new Map()));
218
221
  }
219
- async provideHover(resource, position, token) {
222
+ async provideHover(resource, position, context, token) {
220
223
  const doc = this._documents.getDocument(resource);
221
224
  const pos = Position.to(position);
222
- const value = await this._provider.provideHover(doc, pos, token);
225
+ let value;
226
+ if (context && context.verbosityRequest) {
227
+ const previousHoverId = context.verbosityRequest.previousHover.id;
228
+ const previousHover = this._hoverMap.get(previousHoverId);
229
+ if (!previousHover) {
230
+ throw ( (new Error(`Hover with id ${previousHoverId} not found`)));
231
+ }
232
+ const hoverContext = { action: context.verbosityRequest.action, previousHover };
233
+ value = await this._provider.provideHover(doc, pos, token, hoverContext);
234
+ }
235
+ else {
236
+ value = await this._provider.provideHover(doc, pos, token);
237
+ }
223
238
  if (!value || isFalsyOrEmpty(value.contents)) {
224
239
  return undefined;
225
240
  }
@@ -229,7 +244,22 @@ class HoverAdapter {
229
244
  if (!value.range) {
230
245
  value.range = ( (new Range$2(pos, pos)));
231
246
  }
232
- return Hover.from(value);
247
+ const convertedHover = Hover.from(value);
248
+ const id = this._hoverCounter;
249
+ if (this._hoverMap.size === HoverAdapter.HOVER_MAP_MAX_SIZE) {
250
+ const minimumId = Math.min(...( (this._hoverMap.keys())));
251
+ this._hoverMap.delete(minimumId);
252
+ }
253
+ this._hoverMap.set(id, value);
254
+ this._hoverCounter += 1;
255
+ const hover = {
256
+ ...convertedHover,
257
+ id
258
+ };
259
+ return hover;
260
+ }
261
+ releaseHover(id) {
262
+ this._hoverMap.delete(id);
233
263
  }
234
264
  }
235
265
  class EvaluatableExpressionAdapter {
@@ -479,7 +509,7 @@ class DocumentPasteEditProvider {
479
509
  return (await this._proxy.$resolvePasteFileData(this._handle, requestId, id)).buffer;
480
510
  });
481
511
  const edits = await this._provider.provideDocumentPasteEdits(doc, vscodeRanges, dataTransfer, {
482
- only: context.only ? ( (new DocumentPasteEditKind(context.only))) : undefined,
512
+ only: context.only ? ( (new DocumentDropOrPasteEditKind(context.only))) : undefined,
483
513
  triggerKind: context.triggerKind,
484
514
  }, token);
485
515
  if (!edits || token.isCancellationRequested) {
@@ -705,16 +735,24 @@ class RenameAdapter {
705
735
  }
706
736
  }
707
737
  class NewSymbolNamesAdapter {
738
+ static { this.languageTriggerKindToVSCodeTriggerKind = {
739
+ [NewSymbolNameTriggerKind.Invoke]: NewSymbolNameTriggerKind$1.Invoke,
740
+ [NewSymbolNameTriggerKind.Automatic]: NewSymbolNameTriggerKind$1.Automatic,
741
+ }; }
708
742
  constructor(_documents, _provider, _logService) {
709
743
  this._documents = _documents;
710
744
  this._provider = _provider;
711
745
  this._logService = _logService;
712
746
  }
713
- async provideNewSymbolNames(resource, range, token) {
747
+ async supportsAutomaticNewSymbolNamesTriggerKind() {
748
+ return this._provider.supportsAutomaticTriggerKind;
749
+ }
750
+ async provideNewSymbolNames(resource, range, triggerKind, token) {
714
751
  const doc = this._documents.getDocument(resource);
715
752
  const pos = Range.to(range);
716
753
  try {
717
- const value = await this._provider.provideNewSymbolNames(doc, pos, token);
754
+ const kind = NewSymbolNamesAdapter.languageTriggerKindToVSCodeTriggerKind[triggerKind];
755
+ const value = await this._provider.provideNewSymbolNames(doc, pos, kind, token);
718
756
  if (!value) {
719
757
  return undefined;
720
758
  }
@@ -1649,13 +1687,14 @@ class TypeHierarchyAdapter {
1649
1687
  return map?.get(itemId);
1650
1688
  }
1651
1689
  }
1652
- class DocumentOnDropEditAdapter {
1690
+ class DocumentDropEditAdapter {
1653
1691
  constructor(_proxy, _documents, _provider, _handle, _extension) {
1654
1692
  this._proxy = _proxy;
1655
1693
  this._documents = _documents;
1656
1694
  this._provider = _provider;
1657
1695
  this._handle = _handle;
1658
1696
  this._extension = _extension;
1697
+ this._cache = ( (new Cache('DocumentDropEdit')));
1659
1698
  }
1660
1699
  async provideDocumentOnDropEdits(requestId, uri, position, dataTransferDto, token) {
1661
1700
  const doc = this._documents.getDocument(uri);
@@ -1667,8 +1706,11 @@ class DocumentOnDropEditAdapter {
1667
1706
  if (!edits) {
1668
1707
  return undefined;
1669
1708
  }
1709
+ const editsArray = asArray(edits);
1710
+ const cacheId = this._cache.add(editsArray);
1670
1711
  return (
1671
- (asArray(edits).map((edit) => ({
1712
+ (editsArray.map((edit, i) => ({
1713
+ _cacheId: [cacheId, i],
1672
1714
  title: edit.title ?? ( localizeWithPath(
1673
1715
  _moduleId,
1674
1716
  1,
@@ -1682,6 +1724,19 @@ class DocumentOnDropEditAdapter {
1682
1724
  })))
1683
1725
  );
1684
1726
  }
1727
+ async resolveDropEdit(id, token) {
1728
+ const [sessionId, itemId] = id;
1729
+ const item = this._cache.get(sessionId, itemId);
1730
+ if (!item || !this._provider.resolveDocumentDropEdit) {
1731
+ return {};
1732
+ }
1733
+ const resolvedItem = (await this._provider.resolveDocumentDropEdit(item, token)) ?? item;
1734
+ const additionalEdit = resolvedItem.additionalEdit ? WorkspaceEdit.from(resolvedItem.additionalEdit, undefined) : undefined;
1735
+ return { additionalEdit };
1736
+ }
1737
+ releaseDropEdits(id) {
1738
+ this._cache.delete(id);
1739
+ }
1685
1740
  }
1686
1741
  class MappedEditsAdapter {
1687
1742
  constructor(_documents, _provider) {
@@ -1847,8 +1902,11 @@ class ExtHostLanguageFeatures {
1847
1902
  this._proxy.$registerHoverProvider(handle, this._transformDocumentSelector(selector, extension));
1848
1903
  return this._createDisposable(handle);
1849
1904
  }
1850
- $provideHover(handle, resource, position, token) {
1851
- return this._withAdapter(handle, HoverAdapter, adapter => adapter.provideHover(URI.revive(resource), position, token), undefined, token);
1905
+ $provideHover(handle, resource, position, context, token) {
1906
+ return this._withAdapter(handle, HoverAdapter, adapter => adapter.provideHover(URI.revive(resource), position, context, token), undefined, token);
1907
+ }
1908
+ $releaseHover(handle, id) {
1909
+ this._withAdapter(handle, HoverAdapter, adapter => Promise.resolve(adapter.releaseHover(id)), undefined, undefined);
1852
1910
  }
1853
1911
  registerEvaluatableExpressionProvider(extension, selector, provider, extensionId) {
1854
1912
  const handle = this._addNewAdapter(( (new EvaluatableExpressionAdapter(this._documents, provider))), extension);
@@ -2001,8 +2059,11 @@ class ExtHostLanguageFeatures {
2001
2059
  this._proxy.$registerNewSymbolNamesProvider(handle, this._transformDocumentSelector(selector, extension));
2002
2060
  return this._createDisposable(handle);
2003
2061
  }
2004
- $provideNewSymbolNames(handle, resource, range, token) {
2005
- return this._withAdapter(handle, NewSymbolNamesAdapter, adapter => adapter.provideNewSymbolNames(URI.revive(resource), range, token), undefined, token);
2062
+ $supportsAutomaticNewSymbolNamesTriggerKind(handle) {
2063
+ return this._withAdapter(handle, NewSymbolNamesAdapter, adapter => adapter.supportsAutomaticNewSymbolNamesTriggerKind(), false, undefined);
2064
+ }
2065
+ $provideNewSymbolNames(handle, resource, range, triggerKind, token) {
2066
+ return this._withAdapter(handle, NewSymbolNamesAdapter, adapter => adapter.provideNewSymbolNames(URI.revive(resource), range, triggerKind, token), undefined, token);
2006
2067
  }
2007
2068
  registerDocumentSemanticTokensProvider(extension, selector, provider, legend) {
2008
2069
  const handle = this._addNewAdapter(( (new DocumentSemanticTokensAdapter(this._documents, provider))), extension);
@@ -2211,14 +2272,23 @@ class ExtHostLanguageFeatures {
2211
2272
  registerDocumentOnDropEditProvider(extension, selector, provider, metadata) {
2212
2273
  const handle = this._nextHandle();
2213
2274
  this._adapter.set(handle, ( (new AdapterData(
2214
- (new DocumentOnDropEditAdapter(this._proxy, this._documents, provider, handle, extension)),
2275
+ (new DocumentDropEditAdapter(this._proxy, this._documents, provider, handle, extension)),
2215
2276
  extension
2216
2277
  ))));
2217
- this._proxy.$registerDocumentOnDropEditProvider(handle, this._transformDocumentSelector(selector, extension), isProposedApiEnabled(extension, 'dropMetadata') ? metadata : undefined);
2278
+ this._proxy.$registerDocumentOnDropEditProvider(handle, this._transformDocumentSelector(selector, extension), isProposedApiEnabled(extension, 'documentPaste') && metadata ? {
2279
+ supportsResolve: !!provider.resolveDocumentDropEdit,
2280
+ dropMimeTypes: metadata.dropMimeTypes,
2281
+ } : undefined);
2218
2282
  return this._createDisposable(handle);
2219
2283
  }
2220
2284
  $provideDocumentOnDropEdits(handle, requestId, resource, position, dataTransferDto, token) {
2221
- return this._withAdapter(handle, DocumentOnDropEditAdapter, adapter => Promise.resolve(adapter.provideDocumentOnDropEdits(requestId, URI.revive(resource), position, dataTransferDto, token)), undefined, undefined);
2285
+ return this._withAdapter(handle, DocumentDropEditAdapter, adapter => Promise.resolve(adapter.provideDocumentOnDropEdits(requestId, URI.revive(resource), position, dataTransferDto, token)), undefined, undefined);
2286
+ }
2287
+ $resolveDropEdit(handle, id, token) {
2288
+ return this._withAdapter(handle, DocumentDropEditAdapter, adapter => adapter.resolveDropEdit(id, token), {}, undefined);
2289
+ }
2290
+ $releaseDropEdits(handle, cacheId) {
2291
+ this._withAdapter(handle, DocumentDropEditAdapter, adapter => Promise.resolve(adapter.releaseDropEdits(cacheId)), undefined, undefined);
2222
2292
  }
2223
2293
  registerMappedEditsProvider(extension, selector, provider) {
2224
2294
  const handle = this._addNewAdapter(( (new MappedEditsAdapter(this._documents, provider))), extension);
@@ -14,6 +14,7 @@ import { createDecorator } from '../../../platform/instantiation/common/instanti
14
14
  import { IExtHostRpcService } from './extHostRpcService.js';
15
15
  import { IExtHostAuthentication } from './extHostAuthentication.js';
16
16
  import { ILogService } from '../../../platform/log/common/log.service.js';
17
+ import { Iterable } from '../../../base/common/iterator.js';
17
18
  var ExtHostLanguageModels_1;
18
19
  const _moduleId = "vs/workbench/api/common/extHostLanguageModels";
19
20
  const IExtHostLanguageModels = ( (createDecorator('IExtHostLanguageModels')));
@@ -111,12 +112,18 @@ let ExtHostLanguageModels = class ExtHostLanguageModels {
111
112
  this._proxy.$registerLanguageModelProvider(handle, identifier, {
112
113
  extension: extension.identifier,
113
114
  identifier: identifier,
114
- model: metadata.name ?? '',
115
+ name: metadata.name ?? '',
116
+ version: metadata.version,
117
+ tokens: metadata.tokens,
115
118
  auth
116
119
  });
120
+ const responseReceivedListener = provider.onDidReceiveLanguageModelResponse2?.(({ extensionId, participant, tokenCount }) => {
121
+ this._proxy.$whenLanguageModelChatRequestMade(identifier, ( (new ExtensionIdentifier(extensionId))), participant, tokenCount);
122
+ });
117
123
  return toDisposable(() => {
118
124
  this._languageModels.delete(handle);
119
125
  this._proxy.$unregisterProvider(handle);
126
+ responseReceivedListener?.dispose();
120
127
  });
121
128
  }
122
129
  async $provideLanguageModelResponse(handle, requestId, from, messages, options, token) {
@@ -133,13 +140,20 @@ let ExtHostLanguageModels = class ExtHostLanguageModels {
133
140
  })));
134
141
  return data.provider.provideLanguageModelResponse2(( (messages.map(LanguageModelMessage.to))), options, ExtensionIdentifier.toKey(from), progress, token);
135
142
  }
143
+ $provideTokenLength(handle, value, token) {
144
+ const data = this._languageModels.get(handle);
145
+ if (!data) {
146
+ return Promise.resolve(0);
147
+ }
148
+ return Promise.resolve(data.provider.provideTokenCount(value, token));
149
+ }
136
150
  $updateLanguageModels(data) {
137
151
  const added = [];
138
152
  const removed = [];
139
153
  if (data.added) {
140
154
  for (const metadata of data.added) {
141
155
  this._allLanguageModelData.set(metadata.identifier, metadata);
142
- added.push(metadata.model);
156
+ added.push(metadata.identifier);
143
157
  }
144
158
  }
145
159
  if (data.removed) {
@@ -276,6 +290,29 @@ let ExtHostLanguageModels = class ExtHostLanguageModels {
276
290
  }
277
291
  }
278
292
  }
293
+ async computeTokenLength(languageModelId, value, token) {
294
+ const data = this._allLanguageModelData.get(languageModelId);
295
+ if (!data) {
296
+ throw LanguageModelError.NotFound(`Language model '${languageModelId}' is unknown.`);
297
+ }
298
+ const local = Iterable.find(( (this._languageModels.values())), candidate => candidate.languageModelId === languageModelId);
299
+ if (local) {
300
+ return local.provider.provideTokenCount(value, token);
301
+ }
302
+ return this._proxy.$countTokens(data.identifier, (typeof value === 'string' ? value : LanguageModelMessage.from(value)), token);
303
+ }
304
+ getLanguageModelInfo(languageModelId) {
305
+ const data = this._allLanguageModelData.get(languageModelId);
306
+ if (!data) {
307
+ return undefined;
308
+ }
309
+ return {
310
+ id: data.identifier,
311
+ name: data.name,
312
+ version: data.version,
313
+ tokens: data.tokens,
314
+ };
315
+ }
279
316
  createLanguageModelAccessInformation(from) {
280
317
  this._languageAccessInformationExtensions.add(from);
281
318
  const that = this;
@@ -2,6 +2,7 @@ import { AsyncEmitter } from '../../../base/common/event.js';
2
2
  import { URI } from '../../../base/common/uri.js';
3
3
  import { TextDocumentSaveReason, WorkspaceEdit as WorkspaceEdit$1 } from './extHostTypeConverters.js';
4
4
  import { WorkspaceEdit } from './extHostTypes.js';
5
+ import { SerializableObjectWithBuffers } from '../../services/extensions/common/proxyIdentifier.js';
5
6
  class ExtHostNotebookDocumentSaveParticipant {
6
7
  constructor(_logService, _notebooksAndEditors, _mainThreadBulkEdits, _thresholds = { timeout: 1500, errors: 3 }) {
7
8
  this._logService = _logService;
@@ -56,7 +57,7 @@ class ExtHostNotebookDocumentSaveParticipant {
56
57
  const { edits } = WorkspaceEdit$1.from(edit);
57
58
  dto.edits = dto.edits.concat(edits);
58
59
  }
59
- return this._mainThreadBulkEdits.$tryApplyWorkspaceEdit(dto);
60
+ return this._mainThreadBulkEdits.$tryApplyWorkspaceEdit(( new SerializableObjectWithBuffers(dto)));
60
61
  }
61
62
  }
62
63
  export { ExtHostNotebookDocumentSaveParticipant };
@@ -1,11 +1,12 @@
1
1
  import { __decorate, __param } from '../../../../../../external/tslib/tslib.es6.js';
2
+ import { TerminalShellExecutionCommandLineConfidence } from './extHostTypes.js';
2
3
  import { Disposable, toDisposable, DisposableStore } from '../../../base/common/lifecycle.js';
3
4
  import { createDecorator } from '../../../platform/instantiation/common/instantiation.js';
4
5
  import { MainContext } from './extHost.protocol.js';
5
6
  import { IExtHostRpcService } from './extHostRpcService.js';
6
7
  import { IExtHostTerminalService } from './extHostTerminalService.js';
7
8
  import { Emitter } from '../../../base/common/event.js';
8
- import { URI } from '../../../base/common/uri.js';
9
+ import { isUriComponents, URI } from '../../../base/common/uri.js';
9
10
  import { AsyncIterableObject, Barrier } from '../../../base/common/async.js';
10
11
  const IExtHostTerminalShellIntegration = ( createDecorator('IExtHostTerminalShellIntegration'));
11
12
  let ExtHostTerminalShellIntegration = class ExtHostTerminalShellIntegration extends Disposable {
@@ -39,7 +40,7 @@ let ExtHostTerminalShellIntegration = class ExtHostTerminalShellIntegration exte
39
40
  this._activeShellIntegrations.set(instanceId, shellIntegration);
40
41
  shellIntegration.store.add(terminal.onWillDispose(() => this._activeShellIntegrations.get(instanceId)?.dispose()));
41
42
  shellIntegration.store.add(shellIntegration.onDidRequestShellExecution(commandLine => this._proxy.$executeCommand(instanceId, commandLine)));
42
- shellIntegration.store.add(shellIntegration.onDidRequestEndExecution(e => this._onDidEndTerminalShellExecution.fire(e.value)));
43
+ shellIntegration.store.add(shellIntegration.onDidRequestEndExecution(e => this._onDidEndTerminalShellExecution.fire(e)));
43
44
  shellIntegration.store.add(shellIntegration.onDidRequestChangeShellIntegration(e => this._onDidChangeTerminalShellIntegration.fire(e)));
44
45
  terminal.shellIntegration = shellIntegration.value;
45
46
  }
@@ -48,20 +49,30 @@ let ExtHostTerminalShellIntegration = class ExtHostTerminalShellIntegration exte
48
49
  shellIntegration: shellIntegration.value
49
50
  });
50
51
  }
51
- $shellExecutionStart(instanceId, commandLine, cwd) {
52
+ $shellExecutionStart(instanceId, commandLineValue, commandLineConfidence, isTrusted, cwd) {
52
53
  if (!( this._activeShellIntegrations.has(instanceId))) {
53
54
  this.$shellIntegrationChange(instanceId);
54
55
  }
56
+ const commandLine = {
57
+ value: commandLineValue,
58
+ confidence: commandLineConfidence,
59
+ isTrusted
60
+ };
55
61
  this._activeShellIntegrations.get(instanceId)?.startShellExecution(commandLine, cwd);
56
62
  }
57
- $shellExecutionEnd(instanceId, commandLine, exitCode) {
63
+ $shellExecutionEnd(instanceId, commandLineValue, commandLineConfidence, isTrusted, exitCode) {
64
+ const commandLine = {
65
+ value: commandLineValue,
66
+ confidence: commandLineConfidence,
67
+ isTrusted
68
+ };
58
69
  this._activeShellIntegrations.get(instanceId)?.endShellExecution(commandLine, exitCode);
59
70
  }
60
71
  $shellExecutionData(instanceId, data) {
61
72
  this._activeShellIntegrations.get(instanceId)?.emitData(data);
62
73
  }
63
74
  $cwdChange(instanceId, cwd) {
64
- this._activeShellIntegrations.get(instanceId)?.setCwd(cwd);
75
+ this._activeShellIntegrations.get(instanceId)?.setCwd(isUriComponents(cwd) ? URI.revive(cwd) : cwd);
65
76
  }
66
77
  $closeTerminal(instanceId) {
67
78
  this._activeShellIntegrations.get(instanceId)?.dispose();
@@ -91,25 +102,39 @@ class InternalTerminalShellIntegration extends Disposable {
91
102
  get cwd() {
92
103
  return that._cwd;
93
104
  },
94
- executeCommand(commandLine) {
95
- that._onDidRequestShellExecution.fire(commandLine);
96
- const execution = that.startShellExecution(commandLine, that._cwd).value;
105
+ executeCommand(commandLineOrExecutable, args) {
106
+ let commandLineValue = commandLineOrExecutable;
107
+ if (args) {
108
+ commandLineValue += ` "${( args.map(e => `${e.replaceAll('"', '\\"')}`)).join('" "')}"`;
109
+ }
110
+ that._onDidRequestShellExecution.fire(commandLineValue);
111
+ const commandLine = {
112
+ value: commandLineValue,
113
+ confidence: TerminalShellExecutionCommandLineConfidence.High,
114
+ isTrusted: true
115
+ };
116
+ const execution = that.startShellExecution(commandLine, that._cwd, true).value;
97
117
  that._ignoreNextExecution = true;
98
118
  return execution;
99
119
  }
100
120
  };
101
121
  }
102
- startShellExecution(commandLine, cwd) {
122
+ startShellExecution(commandLine, cwd, fireEventInMicrotask) {
103
123
  if (this._ignoreNextExecution && this._currentExecution) {
104
124
  this._ignoreNextExecution = false;
105
125
  }
106
126
  else {
107
127
  if (this._currentExecution) {
108
- this._currentExecution.endExecution(undefined, undefined);
109
- this._onDidRequestEndExecution.fire(this._currentExecution);
128
+ this._currentExecution.endExecution(undefined);
129
+ this._onDidRequestEndExecution.fire({ terminal: this._terminal, shellIntegration: this.value, execution: this._currentExecution.value, exitCode: undefined });
130
+ }
131
+ const currentExecution = this._currentExecution = ( new InternalTerminalShellExecution(commandLine, cwd));
132
+ if (fireEventInMicrotask) {
133
+ queueMicrotask(() => this._onDidStartTerminalShellExecution.fire({ terminal: this._terminal, shellIntegration: this.value, execution: currentExecution.value }));
134
+ }
135
+ else {
136
+ this._onDidStartTerminalShellExecution.fire({ terminal: this._terminal, shellIntegration: this.value, execution: this._currentExecution.value });
110
137
  }
111
- this._currentExecution = ( new InternalTerminalShellExecution(this._terminal, commandLine, cwd));
112
- this._onDidStartTerminalShellExecution.fire(this._currentExecution.value);
113
138
  }
114
139
  return this._currentExecution;
115
140
  }
@@ -118,17 +143,15 @@ class InternalTerminalShellIntegration extends Disposable {
118
143
  }
119
144
  endShellExecution(commandLine, exitCode) {
120
145
  if (this._currentExecution) {
121
- this._currentExecution.endExecution(commandLine, exitCode);
122
- this._onDidRequestEndExecution.fire(this._currentExecution);
146
+ this._currentExecution.endExecution(commandLine);
147
+ this._onDidRequestEndExecution.fire({ terminal: this._terminal, shellIntegration: this.value, execution: this._currentExecution.value, exitCode });
123
148
  this._currentExecution = undefined;
124
149
  }
125
150
  }
126
151
  setCwd(cwd) {
127
152
  let wasChanged = false;
128
153
  if (URI.isUri(this._cwd)) {
129
- if (( this._cwd.toString()) !== ( cwd.toString())) {
130
- wasChanged = true;
131
- }
154
+ wasChanged = !URI.isUri(cwd) || ( this._cwd.toString()) !== ( cwd.toString());
132
155
  }
133
156
  else if (this._cwd !== cwd) {
134
157
  wasChanged = true;
@@ -140,35 +163,26 @@ class InternalTerminalShellIntegration extends Disposable {
140
163
  }
141
164
  }
142
165
  class InternalTerminalShellExecution {
143
- constructor(terminal, _commandLine, cwd) {
144
- this.terminal = terminal;
166
+ constructor(_commandLine, cwd) {
145
167
  this._commandLine = _commandLine;
146
168
  this.cwd = cwd;
147
- this._exitCode = ( new Promise(resolve => {
148
- this._exitCodeResolve = resolve;
149
- }));
169
+ this._ended = false;
150
170
  const that = this;
151
171
  this.value = {
152
- get terminal() {
153
- return terminal;
154
- },
155
172
  get commandLine() {
156
173
  return that._commandLine;
157
174
  },
158
175
  get cwd() {
159
- return cwd;
176
+ return that.cwd;
160
177
  },
161
- get exitCode() {
162
- return that._exitCode;
163
- },
164
- createDataStream() {
178
+ read() {
165
179
  return that._createDataStream();
166
180
  }
167
181
  };
168
182
  }
169
183
  _createDataStream() {
170
184
  if (!this._dataStream) {
171
- if (this._exitCodeResolve === undefined) {
185
+ if (this._ended) {
172
186
  return AsyncIterableObject.EMPTY;
173
187
  }
174
188
  this._dataStream = ( new ShellExecutionDataStream());
@@ -178,14 +192,13 @@ class InternalTerminalShellExecution {
178
192
  emitData(data) {
179
193
  this._dataStream?.emitData(data);
180
194
  }
181
- endExecution(commandLine, exitCode) {
195
+ endExecution(commandLine) {
182
196
  if (commandLine) {
183
197
  this._commandLine = commandLine;
184
198
  }
185
199
  this._dataStream?.endExecution();
186
200
  this._dataStream = undefined;
187
- this._exitCodeResolve?.(exitCode);
188
- this._exitCodeResolve = undefined;
201
+ this._ended = true;
189
202
  }
190
203
  }
191
204
  class ShellExecutionDataStream extends Disposable {
@@ -194,7 +207,10 @@ class ShellExecutionDataStream extends Disposable {
194
207
  this._emitters = [];
195
208
  }
196
209
  createIterable() {
197
- const barrier = this._barrier = ( new Barrier());
210
+ if (!this._barrier) {
211
+ this._barrier = ( new Barrier());
212
+ }
213
+ const barrier = this._barrier;
198
214
  const iterable = ( new AsyncIterableObject(async (emitter) => {
199
215
  this._emitters.push(emitter);
200
216
  await barrier.wait();
@@ -162,7 +162,7 @@ let ExtHostTesting = class ExtHostTesting extends Disposable {
162
162
  throw ( new Error('Controller not found'));
163
163
  }
164
164
  await this.proxy.$runTests({
165
- isUiTriggered: false,
165
+ preserveFocus: req.preserveFocus ?? true,
166
166
  targets: [{
167
167
  testIds: req.include?.map(t => ( TestId.fromExtHostTestItem(t, controller.collection.root.id).toString())) ?? [controller.collection.root.id],
168
168
  profileGroup: profileGroupToBitset[profile.kind],
@@ -339,18 +339,15 @@ class TestRunTracker extends Disposable {
339
339
  }
340
340
  getCoverageDetails(id, token) {
341
341
  const [, taskId, covId] = TestId.fromString(id).path;
342
- const obj = this.publishedCoverage.get(covId);
343
- if (!obj) {
342
+ const coverage = this.publishedCoverage.get(covId);
343
+ if (!coverage) {
344
344
  return [];
345
345
  }
346
- if (obj.backCompatResolve) {
347
- return obj.backCompatResolve(token);
348
- }
349
346
  const task = this.tasks.get(taskId);
350
347
  if (!task) {
351
348
  throw ( new Error('unreachable: run task was not found'));
352
349
  }
353
- return this.profile?.loadDetailedCoverage?.(task.run, obj.coverage, token) ?? [];
350
+ return this.profile?.loadDetailedCoverage?.(task.run, coverage, token) ?? [];
354
351
  }
355
352
  createRun(name) {
356
353
  const runId = this.dto.id;
@@ -379,34 +376,18 @@ class TestRunTracker extends Disposable {
379
376
  }
380
377
  this.proxy.$appendTestMessagesInRun(runId, taskId, ( TestId.fromExtHostTestItem(test, ctrlId).toString()), converted);
381
378
  };
382
- const addCoverage = (coverage, backCompatResolve) => {
383
- const uriStr = ( coverage.uri.toString());
384
- const id = ( ( new TestId([runId, taskId, uriStr])).toString());
385
- this.publishedCoverage.set(uriStr, { coverage, backCompatResolve });
386
- this.proxy.$appendCoverage(runId, taskId, TestCoverage.fromFile(id, coverage));
387
- };
388
379
  let ended = false;
389
- let coverageProvider;
390
380
  const run = {
391
381
  isPersisted: this.dto.isPersisted,
392
382
  token: this.cts.token,
393
383
  name,
394
384
  onDidDispose: this.onDidDispose,
395
- get coverageProvider() {
396
- return coverageProvider;
397
- },
398
- set coverageProvider(provider) {
399
- coverageProvider = provider;
400
- if (provider) {
401
- Promise.resolve(provider.provideFileCoverage(CancellationToken.None)).then(coverage => {
402
- coverage?.forEach(c => addCoverage(c, provider.resolveFileCoverage && (async (token) => {
403
- const r = await provider.resolveFileCoverage(c, token);
404
- return (r || c).detailedCoverage;
405
- })));
406
- });
407
- }
385
+ addCoverage: coverage => {
386
+ const uriStr = ( coverage.uri.toString());
387
+ const id = ( ( new TestId([runId, taskId, uriStr])).toString());
388
+ this.publishedCoverage.set(uriStr, coverage);
389
+ this.proxy.$appendCoverage(runId, taskId, TestCoverage.fromFile(id, coverage));
408
390
  },
409
- addCoverage,
410
391
  enqueued: guardTestMutation(test => {
411
392
  this.proxy.$updateTestStateInRun(runId, taskId, ( TestId.fromExtHostTestItem(test, ctrlId).toString()), 1 );
412
393
  }),
@@ -544,6 +525,7 @@ class TestRunCoordinator {
544
525
  exclude: request.exclude?.map(t => ( TestId.fromExtHostTestItem(t, collection.root.id).toString())) ?? [],
545
526
  id: dto.id,
546
527
  include: request.include?.map(t => ( TestId.fromExtHostTestItem(t, collection.root.id).toString())) ?? [collection.root.id],
528
+ preserveFocus: request.preserveFocus ?? true,
547
529
  persist
548
530
  });
549
531
  const tracker = this.getTracker(request, dto, request.profile);
@@ -298,7 +298,12 @@ class ExtHostTreeView extends Disposable {
298
298
  this.dataProvider = options.treeDataProvider;
299
299
  this.dndController = options.dragAndDropController;
300
300
  if (this.dataProvider.onDidChangeTreeData) {
301
- this._register(this.dataProvider.onDidChangeTreeData(elementOrElements => this._onDidChangeData.fire({ message: false, element: elementOrElements })));
301
+ this._register(this.dataProvider.onDidChangeTreeData(elementOrElements => {
302
+ if (Array.isArray(elementOrElements) && elementOrElements.length === 0) {
303
+ return;
304
+ }
305
+ this._onDidChangeData.fire({ message: false, element: elementOrElements });
306
+ }));
302
307
  }
303
308
  let refreshingPromise;
304
309
  let promiseCallback;