@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
@@ -89,7 +89,7 @@ async function webviewPreloads(ctx) {
89
89
  return;
90
90
  }
91
91
  const id = lastFocusedOutput?.id;
92
- if (id && (activeElement.tagName === 'INPUT' || activeElement.tagName === 'TEXTAREA')) {
92
+ if (id && (activeElement.tagName === 'INPUT' || activeElement.tagName === 'TEXTAREA' || activeElement.tagName === 'SELECT')) {
93
93
  postNotebookMessage('outputInputFocus', { inputFocused: true, id });
94
94
  activeElement.addEventListener('blur', () => {
95
95
  postNotebookMessage('outputInputFocus', { inputFocused: false, id });
@@ -154,6 +154,13 @@ async function webviewPreloads(ctx) {
154
154
  postNotebookMessage('outputFocus', outputFocus);
155
155
  }
156
156
  };
157
+ const blurOutput = () => {
158
+ const selection = window.getSelection();
159
+ if (!selection) {
160
+ return;
161
+ }
162
+ selection.removeAllRanges();
163
+ };
157
164
  const selectOutputContents = (cellOrOutputId) => {
158
165
  const selection = window.getSelection();
159
166
  if (!selection) {
@@ -182,6 +189,10 @@ async function webviewPreloads(ctx) {
182
189
  if (!lastFocusedOutput?.id || !e.shiftKey) {
183
190
  return;
184
191
  }
192
+ if (e.shiftKey && (e.code === 'ArrowUp' || e.code === 'ArrowDown')) {
193
+ e.stopPropagation();
194
+ return;
195
+ }
185
196
  if (!(e.code === 'PageUp' || e.code === 'PageDown') && !(e.metaKey && (e.code === 'ArrowDown' || e.code === 'ArrowUp'))) {
186
197
  return;
187
198
  }
@@ -389,13 +400,13 @@ async function webviewPreloads(ctx) {
389
400
  return true;
390
401
  }
391
402
  if (node.hasAttribute('recentlyScrolled')) {
392
- if (lastTimeScrolled && Date.now() - lastTimeScrolled > 300) {
393
- if (!!previousDelta && deltaY < 0 && deltaY < previousDelta - 2) {
403
+ if (lastTimeScrolled && Date.now() - lastTimeScrolled > 400) {
404
+ if (!!previousDelta && deltaY < 0 && deltaY < previousDelta - 8) {
394
405
  clearTimeout(scrollTimeout);
395
406
  scrolledElement?.removeAttribute('recentlyScrolled');
396
407
  return false;
397
408
  }
398
- else if (!!previousDelta && deltaY > 0 && deltaY > previousDelta + 2) {
409
+ else if (!!previousDelta && deltaY > 0 && deltaY > previousDelta + 8) {
399
410
  clearTimeout(scrollTimeout);
400
411
  scrolledElement?.removeAttribute('recentlyScrolled');
401
412
  return false;
@@ -1110,7 +1121,7 @@ async function webviewPreloads(ctx) {
1110
1121
  };
1111
1122
  const copyOutputImage = async (outputId, altOutputId, retries = 5) => {
1112
1123
  if (!window.document.hasFocus() && retries > 0) {
1113
- setTimeout(() => { copyOutputImage(outputId, altOutputId, retries - 1); }, 20);
1124
+ setTimeout(() => { copyOutputImage(outputId, altOutputId, retries - 1); }, 50);
1114
1125
  return;
1115
1126
  }
1116
1127
  try {
@@ -1268,6 +1279,9 @@ async function webviewPreloads(ctx) {
1268
1279
  case 'focus-output':
1269
1280
  focusFirstFocusableOrContainerInOutput(event.data.cellOrOutputId, event.data.alternateId);
1270
1281
  break;
1282
+ case 'blur-output':
1283
+ blurOutput();
1284
+ break;
1271
1285
  case 'select-output-contents':
1272
1286
  selectOutputContents(event.data.cellOrOutputId);
1273
1287
  break;
@@ -1410,6 +1424,7 @@ async function webviewPreloads(ctx) {
1410
1424
  get outputScrolling() { return currentRenderOptions.outputScrolling; },
1411
1425
  get outputWordWrap() { return currentRenderOptions.outputWordWrap; },
1412
1426
  get linkifyFilePaths() { return currentRenderOptions.linkifyFilePaths; },
1427
+ get minimalError() { return currentRenderOptions.minimalError; },
1413
1428
  },
1414
1429
  get onDidChangeSettings() { return settingChange.event; }
1415
1430
  };
@@ -2039,7 +2054,20 @@ async function webviewPreloads(ctx) {
2039
2054
  await outputElement.render(data.content, data.rendererId, preloadErrors, signal);
2040
2055
  outputElement .element.style.visibility = data.initiallyHidden ? 'hidden' : '';
2041
2056
  if (!!data.executionId && !!data.rendererId) {
2042
- postNotebookMessage('notebookPerformanceMessage', { cellId: data.cellId, executionId: data.executionId, duration: Date.now() - startTime, rendererId: data.rendererId });
2057
+ let outputSize = undefined;
2058
+ let mimeType = undefined;
2059
+ if (data.content.type === 1 ) {
2060
+ outputSize = data.content.output.valueBytes.length;
2061
+ mimeType = data.content.output.mime;
2062
+ }
2063
+ postNotebookMessage('notebookPerformanceMessage', {
2064
+ cellId: data.cellId,
2065
+ executionId: data.executionId,
2066
+ duration: Date.now() - startTime,
2067
+ rendererId: data.rendererId,
2068
+ outputSize,
2069
+ mimeType
2070
+ });
2043
2071
  }
2044
2072
  }
2045
2073
  clearOutput(outputId, rendererId) {
@@ -5,6 +5,7 @@ import { Range } from '../../../../../editor/common/core/range.js';
5
5
  import { Selection } from '../../../../../editor/common/core/selection.js';
6
6
  import { SearchParams } from '../../../../../editor/common/model/textModelSearch.js';
7
7
  import { writeTransientState, readTransientState } from '../../../codeEditor/browser/toggleWordWrap.js';
8
+ import { InlineChatController } from '../../../inlineChat/browser/inlineChatController.js';
8
9
  import { CellEditState, CellFocusMode, CursorAtLineBoundary, CursorAtBoundary } from '../notebookBrowser.js';
9
10
  class BaseCellViewModel extends Disposable {
10
11
  get handle() {
@@ -191,6 +192,14 @@ class BaseCellViewModel extends Disposable {
191
192
  });
192
193
  });
193
194
  this._editorListeners.push(this._textEditor.onDidChangeCursorSelection(() => { this._onDidChangeState.fire({ selectionChanged: true }); }));
195
+ const inlineChatController = InlineChatController.get(this._textEditor);
196
+ if (inlineChatController) {
197
+ this._editorListeners.push(inlineChatController.onWillStartSession(() => {
198
+ if (this.textBuffer.getLength() === 0) {
199
+ this.enableAutoLanguageDetection();
200
+ }
201
+ }));
202
+ }
194
203
  this._onDidChangeState.fire({ selectionChanged: true });
195
204
  this._onDidChangeEditorAttachState.fire();
196
205
  }
@@ -218,9 +227,15 @@ class BaseCellViewModel extends Disposable {
218
227
  getText() {
219
228
  return this.model.getValue();
220
229
  }
230
+ getAlternativeId() {
231
+ return this.model.alternativeId;
232
+ }
221
233
  getTextLength() {
222
234
  return this.model.getTextLength();
223
235
  }
236
+ enableAutoLanguageDetection() {
237
+ this.model.enableAutoLanguageDetection();
238
+ }
224
239
  saveViewState() {
225
240
  if (!this._textEditor) {
226
241
  return;
@@ -65,11 +65,13 @@ class BaseCellEditorOptions extends Disposable {
65
65
  }
66
66
  _computeEditorOptions() {
67
67
  const editorOptions = deepClone(this.configurationService.getValue('editor', { overrideIdentifier: this.language }));
68
- const editorOptionsOverrideRaw = this.notebookOptions.getDisplayOptions().editorOptionsCustomizations ?? {};
68
+ const editorOptionsOverrideRaw = this.notebookOptions.getDisplayOptions().editorOptionsCustomizations;
69
69
  const editorOptionsOverride = {};
70
- for (const key in editorOptionsOverrideRaw) {
71
- if (key.indexOf('editor.') === 0) {
72
- editorOptionsOverride[key.substring(7)] = editorOptionsOverrideRaw[key];
70
+ if (editorOptionsOverrideRaw) {
71
+ for (const key in editorOptionsOverrideRaw) {
72
+ if (key.indexOf('editor.') === 0) {
73
+ editorOptionsOverride[key.substring(7)] = editorOptionsOverrideRaw[key];
74
+ }
73
75
  }
74
76
  }
75
77
  const computed = ( Object.freeze({
@@ -0,0 +1,3 @@
1
+ import { createDecorator } from '../../../../../platform/instantiation/common/instantiation.js';
2
+ const INotebookCellOutlineProviderFactory = ( createDecorator('INotebookCellOutlineProviderFactory'));
3
+ export { INotebookCellOutlineProviderFactory };
@@ -11,6 +11,8 @@ import { Delayer } from '../../../../../base/common/async.js';
11
11
  import { ThemeIcon } from '../../../../../base/common/themables.js';
12
12
  import { foldingCollapsedIcon, foldingExpandedIcon } from '../../../../../editor/contrib/folding/browser/foldingDecorations.js';
13
13
  import { FoldingController } from '../controller/foldingController.js';
14
+ import { IInstantiationService } from '../../../../../platform/instantiation/common/instantiation.js';
15
+ import { INotebookCellOutlineProviderFactory } from '../viewModel/notebookOutlineProviderFactory.service.js';
14
16
  var NotebookStickyScroll_1;
15
17
  class NotebookStickyLine extends Disposable {
16
18
  constructor(element, foldingIcon, header, entry, notebookEditor) {
@@ -95,13 +97,13 @@ let NotebookStickyScroll = NotebookStickyScroll_1 = class NotebookStickyScroll e
95
97
  }
96
98
  return true;
97
99
  }
98
- constructor(domNode, notebookEditor, notebookOutline, notebookCellList, _contextMenuService) {
100
+ constructor(domNode, notebookEditor, notebookCellList, _contextMenuService, instantiationService) {
99
101
  super();
100
102
  this.domNode = domNode;
101
103
  this.notebookEditor = notebookEditor;
102
- this.notebookOutline = notebookOutline;
103
104
  this.notebookCellList = notebookCellList;
104
105
  this._contextMenuService = _contextMenuService;
106
+ this.instantiationService = instantiationService;
105
107
  this._disposables = ( new DisposableStore());
106
108
  this.currentStickyLines = ( new Map());
107
109
  this._onDidChangeNotebookStickyScroll = this._register(( new Emitter()));
@@ -142,34 +144,34 @@ let NotebookStickyScroll = NotebookStickyScroll_1 = class NotebookStickyScroll e
142
144
  }
143
145
  else {
144
146
  this._disposables.clear();
145
- this.notebookOutline.dispose();
147
+ this.notebookOutlineReference?.dispose();
146
148
  this.disposeCurrentStickyLines();
147
149
  clearNode(this.domNode);
148
150
  this.updateDisplay();
149
151
  }
150
152
  }
151
- else if (e.stickyScrollMode && this.notebookEditor.notebookOptions.getDisplayOptions().stickyScrollEnabled) {
152
- this.updateContent(computeContent(this.notebookEditor, this.notebookCellList, this.notebookOutline.entries, this.getCurrentStickyHeight()));
153
+ else if (e.stickyScrollMode && this.notebookEditor.notebookOptions.getDisplayOptions().stickyScrollEnabled && this.notebookOutlineReference?.object) {
154
+ this.updateContent(computeContent(this.notebookEditor, this.notebookCellList, this.notebookOutlineReference?.object?.entries, this.getCurrentStickyHeight()));
153
155
  }
154
156
  }
155
157
  init() {
156
- this.notebookOutline.init();
157
- this.updateContent(computeContent(this.notebookEditor, this.notebookCellList, this.notebookOutline.entries, this.getCurrentStickyHeight()));
158
- this._disposables.add(this.notebookOutline.onDidChange(() => {
159
- const recompute = computeContent(this.notebookEditor, this.notebookCellList, this.notebookOutline.entries, this.getCurrentStickyHeight());
158
+ const { object: notebookOutlineReference } = this.notebookOutlineReference = this.instantiationService.invokeFunction((accessor) => accessor.get(INotebookCellOutlineProviderFactory).getOrCreate(this.notebookEditor, 1 ));
159
+ this._register(this.notebookOutlineReference);
160
+ this.updateContent(computeContent(this.notebookEditor, this.notebookCellList, notebookOutlineReference.entries, this.getCurrentStickyHeight()));
161
+ this._disposables.add(notebookOutlineReference.onDidChange(() => {
162
+ const recompute = computeContent(this.notebookEditor, this.notebookCellList, notebookOutlineReference.entries, this.getCurrentStickyHeight());
160
163
  if (!this.compareStickyLineMaps(recompute, this.currentStickyLines)) {
161
164
  this.updateContent(recompute);
162
165
  }
163
166
  }));
164
167
  this._disposables.add(this.notebookEditor.onDidAttachViewModel(() => {
165
- this.notebookOutline.init();
166
- this.updateContent(computeContent(this.notebookEditor, this.notebookCellList, this.notebookOutline.entries, this.getCurrentStickyHeight()));
168
+ this.updateContent(computeContent(this.notebookEditor, this.notebookCellList, notebookOutlineReference.entries, this.getCurrentStickyHeight()));
167
169
  }));
168
170
  this._disposables.add(this.notebookEditor.onDidScroll(() => {
169
171
  const d = ( new Delayer(100));
170
172
  d.trigger(() => {
171
173
  d.dispose();
172
- const recompute = computeContent(this.notebookEditor, this.notebookCellList, this.notebookOutline.entries, this.getCurrentStickyHeight());
174
+ const recompute = computeContent(this.notebookEditor, this.notebookCellList, notebookOutlineReference.entries, this.getCurrentStickyHeight());
173
175
  if (!this.compareStickyLineMaps(recompute, this.currentStickyLines)) {
174
176
  this.updateContent(recompute);
175
177
  }
@@ -293,12 +295,13 @@ let NotebookStickyScroll = NotebookStickyScroll_1 = class NotebookStickyScroll e
293
295
  dispose() {
294
296
  this._disposables.dispose();
295
297
  this.disposeCurrentStickyLines();
296
- this.notebookOutline.dispose();
298
+ this.notebookOutlineReference?.dispose();
297
299
  super.dispose();
298
300
  }
299
301
  };
300
302
  NotebookStickyScroll = NotebookStickyScroll_1 = ( __decorate([
301
- ( __param(4, IContextMenuService))
303
+ ( __param(3, IContextMenuService)),
304
+ ( __param(4, IInstantiationService))
302
305
  ], NotebookStickyScroll));
303
306
  function computeContent(notebookEditor, notebookCellList, notebookOutlineEntries, renderedStickyHeight) {
304
307
  const editorScrollTop = notebookEditor.scrollTop - renderedStickyHeight;
@@ -229,7 +229,8 @@ let NotebookEditorWorkbenchToolbar = class NotebookEditorWorkbenchToolbar extend
229
229
  this._updateStrategy();
230
230
  const context = {
231
231
  ui: true,
232
- notebookEditor: this.notebookEditor
232
+ notebookEditor: this.notebookEditor,
233
+ source: 'notebookToolbar'
233
234
  };
234
235
  const actionProvider = (action, options) => {
235
236
  if (action.id === SELECT_KERNEL_ID) {
@@ -7,6 +7,7 @@ import { PieceTreeTextBuffer } from '../../../../../editor/common/model/pieceTre
7
7
  import { PieceTreeTextBufferBuilder } from '../../../../../editor/common/model/pieceTreeTextBuffer/pieceTreeTextBufferBuilder.js';
8
8
  import { PLAINTEXT_LANGUAGE_ID } from '../../../../../editor/common/languages/modesRegistry.js';
9
9
  import { NotebookCellOutputTextModel } from './notebookCellOutputTextModel.js';
10
+ import { ThrottledDelayer } from '../../../../../base/common/async.js';
10
11
  class NotebookCellTextModel extends Disposable {
11
12
  get outputs() {
12
13
  return this._outputs;
@@ -41,21 +42,8 @@ class NotebookCellTextModel extends Disposable {
41
42
  && this._textModel.getLanguageId() === this._languageService.getLanguageIdByLanguageName(this.language)) {
42
43
  return;
43
44
  }
44
- const newLanguageId = this._languageService.getLanguageIdByLanguageName(newLanguage);
45
- if (newLanguageId === null) {
46
- return;
47
- }
48
- if (this._textModel) {
49
- const languageId = this._languageService.createById(newLanguageId);
50
- this._textModel.setLanguage(languageId.languageId);
51
- }
52
- if (this._language === newLanguage) {
53
- return;
54
- }
55
- this._language = newLanguage;
56
- this._hash = null;
57
- this._onDidChangeLanguage.fire(newLanguage);
58
- this._onDidChangeContent.fire('language');
45
+ this._hasLanguageSetExplicitly = true;
46
+ this._setLanguageInternal(newLanguage);
59
47
  }
60
48
  get mime() {
61
49
  return this._mime;
@@ -83,6 +71,7 @@ class NotebookCellTextModel extends Disposable {
83
71
  if (!this._textModel) {
84
72
  this._onDidChangeContent.fire('content');
85
73
  }
74
+ this.autoDetectLanguage();
86
75
  }));
87
76
  return this._textBuffer;
88
77
  }
@@ -122,7 +111,9 @@ class NotebookCellTextModel extends Disposable {
122
111
  this.language = newLanguage;
123
112
  }
124
113
  }
125
- constructor(uri, handle, _source, _language, _mime, cellKind, outputs, metadata, internalMetadata, collapseState, transientOptions, _languageService) {
114
+ static { this.AUTO_DETECT_LANGUAGE_THROTTLE_DELAY = 600; }
115
+ get hasLanguageSetExplicitly() { return this._hasLanguageSetExplicitly; }
116
+ constructor(uri, handle, _source, _language, _mime, cellKind, outputs, metadata, internalMetadata, collapseState, transientOptions, _languageService, _languageDetectionService = undefined) {
126
117
  super();
127
118
  this.uri = uri;
128
119
  this.handle = handle;
@@ -133,6 +124,7 @@ class NotebookCellTextModel extends Disposable {
133
124
  this.collapseState = collapseState;
134
125
  this.transientOptions = transientOptions;
135
126
  this._languageService = _languageService;
127
+ this._languageDetectionService = _languageDetectionService;
136
128
  this._onDidChangeOutputs = this._register(( new Emitter()));
137
129
  this.onDidChangeOutputs = this._onDidChangeOutputs.event;
138
130
  this._onDidChangeOutputItems = this._register(( new Emitter()));
@@ -151,10 +143,54 @@ class NotebookCellTextModel extends Disposable {
151
143
  this._alternativeId = 1;
152
144
  this._textModelDisposables = this._register(( new DisposableStore()));
153
145
  this._textModel = undefined;
146
+ this.autoDetectLanguageThrottler = this._register(( new ThrottledDelayer(NotebookCellTextModel.AUTO_DETECT_LANGUAGE_THROTTLE_DELAY)));
147
+ this._autoLanguageDetectionEnabled = false;
148
+ this._hasLanguageSetExplicitly = false;
154
149
  this._outputs = ( outputs.map(op => ( new NotebookCellOutputTextModel(op))));
155
150
  this._metadata = metadata ?? {};
156
151
  this._internalMetadata = internalMetadata ?? {};
157
152
  }
153
+ enableAutoLanguageDetection() {
154
+ this._autoLanguageDetectionEnabled = true;
155
+ this.autoDetectLanguage();
156
+ }
157
+ async autoDetectLanguage() {
158
+ if (this._autoLanguageDetectionEnabled) {
159
+ this.autoDetectLanguageThrottler.trigger(() => this._doAutoDetectLanguage());
160
+ }
161
+ }
162
+ async _doAutoDetectLanguage() {
163
+ if (this.hasLanguageSetExplicitly) {
164
+ return;
165
+ }
166
+ const newLanguage = await this._languageDetectionService?.detectLanguage(this.uri);
167
+ if (!newLanguage) {
168
+ return;
169
+ }
170
+ if (this._textModel
171
+ && this._textModel.getLanguageId() === this._languageService.getLanguageIdByLanguageName(newLanguage)
172
+ && this._textModel.getLanguageId() === this._languageService.getLanguageIdByLanguageName(this.language)) {
173
+ return;
174
+ }
175
+ this._setLanguageInternal(newLanguage);
176
+ }
177
+ _setLanguageInternal(newLanguage) {
178
+ const newLanguageId = this._languageService.getLanguageIdByLanguageName(newLanguage);
179
+ if (newLanguageId === null) {
180
+ return;
181
+ }
182
+ if (this._textModel) {
183
+ const languageId = this._languageService.createById(newLanguageId);
184
+ this._textModel.setLanguage(languageId.languageId);
185
+ }
186
+ if (this._language === newLanguage) {
187
+ return;
188
+ }
189
+ this._language = newLanguage;
190
+ this._hash = null;
191
+ this._onDidChangeLanguage.fire(newLanguage);
192
+ this._onDidChangeContent.fire('language');
193
+ }
158
194
  resetTextBuffer(textBuffer) {
159
195
  this._textBuffer = textBuffer;
160
196
  }
@@ -262,6 +262,7 @@ const NotebookSetting = {
262
262
  outputScrolling: 'notebook.output.scrolling',
263
263
  textOutputLineLimit: 'notebook.output.textLineLimit',
264
264
  LinkifyOutputFilePaths: 'notebook.output.linkifyFilePaths',
265
+ minimalErrorRendering: 'notebook.output.minimalErrorRendering',
265
266
  formatOnSave: 'notebook.formatOnSave.enabled',
266
267
  insertFinalNewline: 'notebook.insertFinalNewline',
267
268
  formatOnCellExecution: 'notebook.formatOnCellExecution',
@@ -283,11 +284,12 @@ const NotebookSetting = {
283
284
  outlineShowCodeCellSymbols: 'notebook.outline.showCodeCellSymbols',
284
285
  breadcrumbsShowCodeCells: 'notebook.breadcrumbs.showCodeCells',
285
286
  scrollToRevealCell: 'notebook.scrolling.revealNextCellOnExecute',
286
- anchorToFocusedCell: 'notebook.scrolling.experimental.anchorToFocusedCell',
287
287
  cellChat: 'notebook.experimental.cellChat',
288
+ cellGenerate: 'notebook.experimental.generate',
288
289
  notebookVariablesView: 'notebook.experimental.variablesView',
289
290
  InteractiveWindowPromptToSave: 'interactiveWindow.promptToSaveOnClose',
290
291
  cellFailureDiagnostics: 'notebook.cellFailureDiagnostics',
292
+ outputBackupSizeLimit: 'notebook.backup.sizeLimit',
291
293
  };
292
294
  class NotebookWorkingCopyTypeIdentifier {
293
295
  static { this._prefix = 'notebook/'; }
@@ -8,7 +8,7 @@ const INTERACTIVE_WINDOW_IS_ACTIVE_EDITOR = ( ContextKeyExpr.equals('activeEdito
8
8
  const NOTEBOOK_EDITOR_FOCUSED = ( new RawContextKey('notebookEditorFocused', false));
9
9
  const NOTEBOOK_CELL_LIST_FOCUSED = ( new RawContextKey('notebookCellListFocused', false));
10
10
  const NOTEBOOK_OUTPUT_FOCUSED = ( new RawContextKey('notebookOutputFocused', false));
11
- const NOTEBOOK_OUPTUT_INPUT_FOCUSED = ( new RawContextKey('notebookOutputInputFocused', false));
11
+ const NOTEBOOK_OUTPUT_INPUT_FOCUSED = ( new RawContextKey('notebookOutputInputFocused', false));
12
12
  const NOTEBOOK_EDITOR_EDITABLE = ( new RawContextKey('notebookEditable', true));
13
13
  const NOTEBOOK_HAS_RUNNING_CELL = ( new RawContextKey('notebookHasRunningCell', false));
14
14
  const NOTEBOOK_HAS_SOMETHING_RUNNING = ( new RawContextKey('notebookHasSomethingRunning', false));
@@ -38,4 +38,4 @@ const NOTEBOOK_KERNEL_SELECTED = ( new RawContextKey('notebookKernelSelected', f
38
38
  const NOTEBOOK_INTERRUPTIBLE_KERNEL = ( new RawContextKey('notebookInterruptibleKernel', false));
39
39
  const NOTEBOOK_MISSING_KERNEL_EXTENSION = ( new RawContextKey('notebookMissingKernelExtension', false));
40
40
  const NOTEBOOK_HAS_OUTPUTS = ( new RawContextKey('notebookHasOutputs', false));
41
- export { HAS_OPENED_NOTEBOOK, INTERACTIVE_WINDOW_IS_ACTIVE_EDITOR, InteractiveWindowOpen, KEYBINDING_CONTEXT_NOTEBOOK_FIND_WIDGET_FOCUSED, NOTEBOOK_CELL_EDITABLE, NOTEBOOK_CELL_EDITOR_FOCUSED, NOTEBOOK_CELL_EXECUTING, NOTEBOOK_CELL_EXECUTION_STATE, NOTEBOOK_CELL_FOCUSED, NOTEBOOK_CELL_GENERATED_BY_CHAT, NOTEBOOK_CELL_HAS_ERROR_DIAGNOSTICS, NOTEBOOK_CELL_HAS_OUTPUTS, NOTEBOOK_CELL_INPUT_COLLAPSED, NOTEBOOK_CELL_LINE_NUMBERS, NOTEBOOK_CELL_LIST_FOCUSED, NOTEBOOK_CELL_MARKDOWN_EDIT_MODE, NOTEBOOK_CELL_OUTPUT_COLLAPSED, NOTEBOOK_CELL_RESOURCE, NOTEBOOK_CELL_TOOLBAR_LOCATION, NOTEBOOK_CELL_TYPE, NOTEBOOK_CURSOR_NAVIGATION_MODE, NOTEBOOK_EDITOR_EDITABLE, NOTEBOOK_EDITOR_FOCUSED, NOTEBOOK_HAS_OUTPUTS, NOTEBOOK_HAS_RUNNING_CELL, NOTEBOOK_HAS_SOMETHING_RUNNING, NOTEBOOK_INTERRUPTIBLE_KERNEL, NOTEBOOK_IS_ACTIVE_EDITOR, NOTEBOOK_KERNEL, NOTEBOOK_KERNEL_COUNT, NOTEBOOK_KERNEL_SELECTED, NOTEBOOK_KERNEL_SOURCE_COUNT, NOTEBOOK_LAST_CELL_FAILED, NOTEBOOK_MISSING_KERNEL_EXTENSION, NOTEBOOK_OUPTUT_INPUT_FOCUSED, NOTEBOOK_OUTPUT_FOCUSED, NOTEBOOK_USE_CONSOLIDATED_OUTPUT_BUTTON, NOTEBOOK_VIEW_TYPE };
41
+ export { HAS_OPENED_NOTEBOOK, INTERACTIVE_WINDOW_IS_ACTIVE_EDITOR, InteractiveWindowOpen, KEYBINDING_CONTEXT_NOTEBOOK_FIND_WIDGET_FOCUSED, NOTEBOOK_CELL_EDITABLE, NOTEBOOK_CELL_EDITOR_FOCUSED, NOTEBOOK_CELL_EXECUTING, NOTEBOOK_CELL_EXECUTION_STATE, NOTEBOOK_CELL_FOCUSED, NOTEBOOK_CELL_GENERATED_BY_CHAT, NOTEBOOK_CELL_HAS_ERROR_DIAGNOSTICS, NOTEBOOK_CELL_HAS_OUTPUTS, NOTEBOOK_CELL_INPUT_COLLAPSED, NOTEBOOK_CELL_LINE_NUMBERS, NOTEBOOK_CELL_LIST_FOCUSED, NOTEBOOK_CELL_MARKDOWN_EDIT_MODE, NOTEBOOK_CELL_OUTPUT_COLLAPSED, NOTEBOOK_CELL_RESOURCE, NOTEBOOK_CELL_TOOLBAR_LOCATION, NOTEBOOK_CELL_TYPE, NOTEBOOK_CURSOR_NAVIGATION_MODE, NOTEBOOK_EDITOR_EDITABLE, NOTEBOOK_EDITOR_FOCUSED, NOTEBOOK_HAS_OUTPUTS, NOTEBOOK_HAS_RUNNING_CELL, NOTEBOOK_HAS_SOMETHING_RUNNING, NOTEBOOK_INTERRUPTIBLE_KERNEL, NOTEBOOK_IS_ACTIVE_EDITOR, NOTEBOOK_KERNEL, NOTEBOOK_KERNEL_COUNT, NOTEBOOK_KERNEL_SELECTED, NOTEBOOK_KERNEL_SOURCE_COUNT, NOTEBOOK_LAST_CELL_FAILED, NOTEBOOK_MISSING_KERNEL_EXTENSION, NOTEBOOK_OUTPUT_FOCUSED, NOTEBOOK_OUTPUT_INPUT_FOCUSED, NOTEBOOK_USE_CONSOLIDATED_OUTPUT_BUTTON, NOTEBOOK_VIEW_TYPE };
@@ -168,20 +168,21 @@ class NotebookFileWorkingCopyModel extends Disposable {
168
168
  break;
169
169
  }
170
170
  }));
171
- if (_notebookModel.uri.scheme === Schemas.vscodeRemote) {
171
+ const saveWithReducedCommunication = this._configurationService.getValue(NotebookSetting.remoteSaving);
172
+ if (saveWithReducedCommunication || _notebookModel.uri.scheme === Schemas.vscodeRemote) {
172
173
  this.configuration = {
173
174
  backupDelay: 10000
174
175
  };
175
- if (this._configurationService.getValue(NotebookSetting.remoteSaving)) {
176
- this.save = async (options, token) => {
177
- const serializer = await this.getNotebookSerializer();
178
- if (token.isCancellationRequested) {
179
- throw ( new CancellationError());
180
- }
181
- const stat = await serializer.save(this._notebookModel.uri, this._notebookModel.versionId, options, token);
182
- return stat;
183
- };
184
- }
176
+ }
177
+ if (saveWithReducedCommunication) {
178
+ this.save = async (options, token) => {
179
+ const serializer = await this.getNotebookSerializer();
180
+ if (token.isCancellationRequested) {
181
+ throw ( new CancellationError());
182
+ }
183
+ const stat = await serializer.save(this._notebookModel.uri, this._notebookModel.versionId, options, token);
184
+ return stat;
185
+ };
185
186
  }
186
187
  }
187
188
  dispose() {
@@ -191,12 +192,13 @@ class NotebookFileWorkingCopyModel extends Disposable {
191
192
  get notebookModel() {
192
193
  return this._notebookModel;
193
194
  }
194
- async snapshot(token) {
195
+ async snapshot(context, token) {
195
196
  const serializer = await this.getNotebookSerializer();
196
197
  const data = {
197
198
  metadata: filter(this._notebookModel.metadata, key => !serializer.options.transientDocumentMetadata[key]),
198
199
  cells: [],
199
200
  };
201
+ let outputSize = 0;
200
202
  for (const cell of this._notebookModel.cells) {
201
203
  const cellData = {
202
204
  cellKind: cell.cellKind,
@@ -206,6 +208,17 @@ class NotebookFileWorkingCopyModel extends Disposable {
206
208
  outputs: [],
207
209
  internalMetadata: cell.internalMetadata
208
210
  };
211
+ const outputSizeLimit = this._configurationService.getValue(NotebookSetting.outputBackupSizeLimit) * 1024;
212
+ if (context === 2 && outputSizeLimit > 0) {
213
+ cell.outputs.forEach(output => {
214
+ output.outputs.forEach(item => {
215
+ outputSize += item.data.byteLength;
216
+ });
217
+ });
218
+ if (outputSize > outputSizeLimit) {
219
+ throw ( new Error('Notebook too large to backup'));
220
+ }
221
+ }
209
222
  cellData.outputs = !serializer.options.transientOutputs ? cell.outputs : [];
210
223
  cellData.metadata = filter(cell.metadata, key => !serializer.options.transientCellMetadata[key]);
211
224
  data.cells.push(cellData);
@@ -36,14 +36,15 @@ import { IWorkspaceContextService } from '../../../../platform/workspace/common/
36
36
  import { settingsScopeDropDownIcon, settingsEditIcon } from './preferencesIcons.js';
37
37
  import { IWorkbenchEnvironmentService } from '../../../services/environment/common/environmentService.service.js';
38
38
  import { ILanguageService } from '../../../../editor/common/languages/language.js';
39
- import { setupCustomHover } from '../../../../base/browser/ui/hover/updatableHoverWidget.js';
40
39
  import { getDefaultHoverDelegate } from '../../../../base/browser/ui/hover/hoverDelegateFactory.js';
40
+ import { IHoverService } from '../../../../platform/hover/browser/hover.service.js';
41
41
  const _moduleId = "vs/workbench/contrib/preferences/browser/preferencesWidgets";
42
42
  let FolderSettingsActionViewItem = class FolderSettingsActionViewItem extends BaseActionViewItem {
43
- constructor(action, contextService, contextMenuService) {
43
+ constructor(action, contextService, contextMenuService, hoverService) {
44
44
  super(null, action);
45
45
  this.contextService = contextService;
46
46
  this.contextMenuService = contextMenuService;
47
+ this.hoverService = hoverService;
47
48
  this._folderSettingCounts = ( (new Map()));
48
49
  const workspace = this.contextService.getWorkspace();
49
50
  this._folder = workspace.folders.length === 1 ? workspace.folders[0] : null;
@@ -76,7 +77,7 @@ let FolderSettingsActionViewItem = class FolderSettingsActionViewItem extends Ba
76
77
  'aria-haspopup': 'true',
77
78
  'tabindex': '0'
78
79
  }, this.labelElement, this.detailsElement, this.dropDownElement);
79
- this.anchorElementHover = this._register(setupCustomHover(getDefaultHoverDelegate('mouse'), this.anchorElement, ''));
80
+ this.anchorElementHover = this._register(this.hoverService.setupUpdatableHover(getDefaultHoverDelegate('mouse'), this.anchorElement, ''));
80
81
  this._register(addDisposableListener(this.anchorElement, EventType.MOUSE_DOWN, e => EventHelper.stop(e)));
81
82
  this._register(addDisposableListener(this.anchorElement, EventType.CLICK, e => this.onClick(e)));
82
83
  this._register(addDisposableListener(this.container, EventType.KEY_UP, e => this.onKeyUp(e)));
@@ -176,7 +177,8 @@ let FolderSettingsActionViewItem = class FolderSettingsActionViewItem extends Ba
176
177
  };
177
178
  FolderSettingsActionViewItem = ( (__decorate([
178
179
  ( (__param(1, IWorkspaceContextService))),
179
- ( (__param(2, IContextMenuService)))
180
+ ( (__param(2, IContextMenuService))),
181
+ ( (__param(3, IHoverService)))
180
182
  ], FolderSettingsActionViewItem)));
181
183
  let SettingsTargetsWidget = class SettingsTargetsWidget extends Widget {
182
184
  constructor(parent, options, contextService, instantiationService, environmentService, labelService, languageService) {
@@ -200,11 +200,9 @@ let AutomaticPortForwarding = class AutomaticPortForwarding extends Disposable {
200
200
  this.openerService = openerService;
201
201
  this.externalOpenerService = externalOpenerService;
202
202
  this.remoteExplorerService = remoteExplorerService;
203
- this.environmentService = environmentService;
204
203
  this.contextKeyService = contextKeyService;
205
204
  this.configurationService = configurationService;
206
205
  this.debugService = debugService;
207
- this.remoteAgentService = remoteAgentService;
208
206
  this.tunnelService = tunnelService;
209
207
  this.hostService = hostService;
210
208
  this.logService = logService;
@@ -62,6 +62,7 @@ import { Codicon } from '../../../../base/common/codicons.js';
62
62
  import { defaultButtonStyles, defaultInputBoxStyles } from '../../../../platform/theme/browser/defaultStyles.js';
63
63
  import { makeAddress, forwardedPortsViewEnabled, parseAddress, TunnelCloseReason, mapHasAddressLocalhostOrAllInterfaces, TunnelSource } from '../../../services/remote/common/tunnelModel.js';
64
64
  import { getDefaultHoverDelegate } from '../../../../base/browser/ui/hover/hoverDelegateFactory.js';
65
+ import { IHoverService } from '../../../../platform/hover/browser/hover.service.js';
65
66
  import Severity$1 from '../../../../base/common/severity.js';
66
67
  var TunnelPanel_1;
67
68
  const _moduleId = "vs/workbench/contrib/remote/browser/tunnelView";
@@ -715,8 +716,8 @@ let TunnelPanel = class TunnelPanel extends ViewPane {
715
716
  static { TunnelPanel_1 = this; }
716
717
  static { this.ID = TUNNEL_VIEW_ID; }
717
718
  static { this.TITLE = ( localize2WithPath(_moduleId, 25, "Ports")); }
718
- constructor(viewModel, options, keybindingService, contextMenuService, contextKeyService, configurationService, instantiationService, viewDescriptorService, openerService, quickInputService, commandService, menuService, themeService, remoteExplorerService, telemetryService, tunnelService, contextViewService) {
719
- super(options, keybindingService, contextMenuService, configurationService, contextKeyService, viewDescriptorService, instantiationService, openerService, themeService, telemetryService);
719
+ constructor(viewModel, options, keybindingService, contextMenuService, contextKeyService, configurationService, instantiationService, viewDescriptorService, openerService, quickInputService, commandService, menuService, themeService, remoteExplorerService, telemetryService, hoverService, tunnelService, contextViewService) {
720
+ super(options, keybindingService, contextMenuService, configurationService, contextKeyService, viewDescriptorService, instantiationService, openerService, themeService, telemetryService, hoverService);
720
721
  this.viewModel = viewModel;
721
722
  this.quickInputService = quickInputService;
722
723
  this.commandService = commandService;
@@ -1022,8 +1023,9 @@ TunnelPanel = TunnelPanel_1 = ( (__decorate([
1022
1023
  ( (__param(12, IThemeService))),
1023
1024
  ( (__param(13, IRemoteExplorerService))),
1024
1025
  ( (__param(14, ITelemetryService))),
1025
- ( (__param(15, ITunnelService))),
1026
- ( (__param(16, IContextViewService)))
1026
+ ( (__param(15, IHoverService))),
1027
+ ( (__param(16, ITunnelService))),
1028
+ ( (__param(17, IContextViewService)))
1027
1029
  ], TunnelPanel)));
1028
1030
  class TunnelPanelDescriptor {
1029
1031
  constructor(viewModel, environmentService) {
@@ -59,6 +59,9 @@ import { IAccessibilitySignalService } from '../../../../platform/accessibilityS
59
59
  import { IAccessibilityService } from '../../../../platform/accessibility/common/accessibility.service.js';
60
60
  import { IQuickDiffService } from '../common/quickDiff.service.js';
61
61
  import { SwitchQuickDiffViewItem, SwitchQuickDiffBaseAction } from './dirtyDiffSwitcher.js';
62
+ import { TextDiffEditor } from '../../../browser/parts/editor/textDiffEditor.js';
63
+ import { TextFileEditor } from '../../files/browser/editors/textFileEditor.js';
64
+ import { SideBySideEditor } from '../../../browser/parts/editor/sideBySideEditor.js';
62
65
  var DirtyDiffController_1, DirtyDiffDecorator_1;
63
66
  const _moduleId = "vs/workbench/contrib/scm/browser/dirtydiffDecorator";
64
67
  class DiffActionRunner extends ActionRunner {
@@ -1398,8 +1401,27 @@ let DirtyDiffWorkbenchController = class DirtyDiffWorkbenchController extends Di
1398
1401
  this.items.clear();
1399
1402
  this.enabled = false;
1400
1403
  }
1404
+ getVisibleEditorControls() {
1405
+ const controls = [];
1406
+ const addControl = (control) => {
1407
+ if (control) {
1408
+ controls.push(control);
1409
+ }
1410
+ };
1411
+ for (const editorPane of this.editorService.visibleEditorPanes) {
1412
+ if (editorPane instanceof TextDiffEditor || editorPane instanceof TextFileEditor) {
1413
+ addControl(editorPane.getControl());
1414
+ }
1415
+ else if (editorPane instanceof SideBySideEditor) {
1416
+ addControl(editorPane.getPrimaryEditorPane()?.getControl());
1417
+ addControl(editorPane.getSecondaryEditorPane()?.getControl());
1418
+ }
1419
+ }
1420
+ return controls;
1421
+ }
1401
1422
  onEditorsChanged() {
1402
- for (const editor of this.editorService.visibleTextEditorControls) {
1423
+ const visibleControls = this.getVisibleEditorControls();
1424
+ for (const editor of visibleControls) {
1403
1425
  if (isCodeEditor(editor)) {
1404
1426
  const textModel = editor.getModel();
1405
1427
  const controller = DirtyDiffController.get(editor);
@@ -1426,7 +1448,7 @@ let DirtyDiffWorkbenchController = class DirtyDiffWorkbenchController extends Di
1426
1448
  }
1427
1449
  for (const [uri, item] of this.items) {
1428
1450
  for (const editorId of ( (item.keys()))) {
1429
- if (!this.editorService.visibleTextEditorControls.find(editor => isCodeEditor(editor) && editor.getModel()?.uri.toString() === ( (uri.toString())) && editor.getId() === editorId)) {
1451
+ if (!this.getVisibleEditorControls().find(editor => isCodeEditor(editor) && editor.getModel()?.uri.toString() === ( (uri.toString())) && editor.getId() === editorId)) {
1430
1452
  if (( (item.has(editorId)))) {
1431
1453
  const dirtyDiffItem = item.get(editorId);
1432
1454
  dirtyDiffItem?.dispose();