@codingame/monaco-vscode-api 2.0.3-improve-modularity.1 → 2.1.0-update-vscode-1.86.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 (512) hide show
  1. package/api.js +15 -12
  2. package/extensions.d.ts +4 -7
  3. package/external/@xterm/xterm/typings/xterm.d.ts +22 -0
  4. package/missing-services.js +62 -6
  5. package/package.json +8 -8
  6. package/service-override/tools/editor.js +14 -0
  7. package/services.d.ts +3 -2
  8. package/services.js +6 -4
  9. package/vscode/src/vs/base/browser/browser.js +45 -30
  10. package/vscode/src/vs/base/browser/canIUse.js +1 -1
  11. package/vscode/src/vs/base/browser/defaultWorkerFactory.js +12 -5
  12. package/vscode/src/vs/base/browser/dom.js +104 -14
  13. package/vscode/src/vs/base/browser/indexedDB.js +3 -3
  14. package/vscode/src/vs/base/browser/markdownRenderer.js +29 -1
  15. package/vscode/src/vs/base/browser/mouseEvent.js +17 -3
  16. package/vscode/src/vs/base/browser/ui/actionbar/actionbar.js +3 -3
  17. package/vscode/src/vs/base/browser/ui/breadcrumbs/breadcrumbsWidget.css.js +4 -0
  18. package/vscode/src/vs/base/browser/ui/breadcrumbs/breadcrumbsWidget.d.ts +1 -1
  19. package/vscode/src/vs/base/browser/ui/breadcrumbs/breadcrumbsWidget.js +287 -0
  20. package/vscode/src/vs/base/browser/ui/button/button.js +9 -0
  21. package/vscode/src/vs/base/browser/ui/codicons/codicon/codicon.css.js +1 -1
  22. package/vscode/src/vs/base/browser/ui/dialog/dialog.js +1 -1
  23. package/vscode/src/vs/base/browser/ui/iconLabel/iconLabelHover.js +16 -5
  24. package/vscode/src/vs/base/browser/ui/list/listView.js +31 -11
  25. package/vscode/src/vs/base/browser/ui/list/listWidget.js +35 -21
  26. package/vscode/src/vs/base/browser/ui/menu/menu.js +10 -1
  27. package/vscode/src/vs/base/browser/ui/menu/menubar.js +8 -4
  28. package/vscode/src/vs/base/browser/ui/scrollbar/scrollableElement.js +6 -5
  29. package/vscode/src/vs/base/browser/ui/tree/abstractTree.js +469 -95
  30. package/vscode/src/vs/base/browser/ui/tree/asyncDataTree.js +22 -7
  31. package/vscode/src/vs/base/browser/ui/tree/indexTreeModel.js +0 -5
  32. package/vscode/src/vs/base/browser/ui/tree/media/tree.css.js +1 -1
  33. package/vscode/src/vs/base/browser/ui/tree/objectTree.js +70 -4
  34. package/vscode/src/vs/base/common/assert.js +6 -1
  35. package/vscode/src/vs/base/common/async.js +31 -6
  36. package/vscode/src/vs/base/common/codicons.js +5 -0
  37. package/vscode/src/vs/base/common/event.d.ts +0 -5
  38. package/vscode/src/vs/base/common/event.js +0 -15
  39. package/vscode/src/vs/base/common/filters.d.ts +1 -18
  40. package/vscode/src/vs/base/common/htmlContent.js +12 -6
  41. package/vscode/src/vs/base/common/iterator.js +8 -0
  42. package/vscode/src/vs/base/common/labels.js +2 -1
  43. package/vscode/src/vs/base/common/map.js +20 -1
  44. package/vscode/src/vs/base/common/observableInternal/base.d.ts +4 -0
  45. package/vscode/src/vs/base/common/observableInternal/base.js +16 -8
  46. package/vscode/src/vs/base/common/observableInternal/derived.js +4 -6
  47. package/vscode/src/vs/base/common/observableInternal/utils.js +60 -5
  48. package/vscode/src/vs/base/common/platform.js +20 -20
  49. package/vscode/src/vs/base/common/prefixTree.js +4 -3
  50. package/vscode/src/vs/base/common/product.d.ts +5 -2
  51. package/vscode/src/vs/base/common/strings.js +23 -7
  52. package/vscode/src/vs/base/common/themables.js +4 -1
  53. package/vscode/src/vs/base/common/uri.js +11 -1
  54. package/vscode/src/vs/base/common/worker/simpleWorker.js +1 -1
  55. package/vscode/src/vs/editor/browser/config/migrateOptions.js +5 -0
  56. package/vscode/src/vs/editor/browser/controller/mouseHandler.js +1 -0
  57. package/vscode/src/vs/editor/browser/controller/mouseTarget.js +14 -8
  58. package/vscode/src/vs/editor/browser/controller/pointerHandler.js +18 -11
  59. package/vscode/src/vs/editor/browser/controller/textAreaHandler.js +1 -1
  60. package/vscode/src/vs/editor/browser/controller/textAreaInput.js +3 -3
  61. package/vscode/src/vs/{workbench/services/hover/browser → editor/browser/services}/hoverService.d.ts +7 -6
  62. package/vscode/src/vs/editor/browser/services/hoverService.js +195 -0
  63. package/vscode/src/vs/editor/browser/view.js +29 -39
  64. package/vscode/src/vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight.js +41 -19
  65. package/vscode/src/vs/editor/browser/viewParts/editorScrollbar/editorScrollbar.js +1 -1
  66. package/vscode/src/vs/editor/browser/viewParts/glyphMargin/glyphMargin.js +30 -23
  67. package/vscode/src/vs/editor/browser/viewParts/lineNumbers/lineNumbers.js +23 -8
  68. package/vscode/src/vs/editor/browser/viewParts/lines/viewLines.js +1 -1
  69. package/vscode/src/vs/editor/browser/viewParts/linesDecorations/linesDecorations.js +8 -1
  70. package/vscode/src/vs/editor/browser/viewParts/marginDecorations/marginDecorations.js +7 -1
  71. package/vscode/src/vs/editor/browser/viewParts/minimap/minimap.js +1 -1
  72. package/vscode/src/vs/editor/browser/viewParts/overlayWidgets/overlayWidgets.js +30 -3
  73. package/vscode/src/vs/editor/browser/widget/codeEditorWidget.js +39 -15
  74. package/vscode/src/vs/editor/browser/widget/diffEditor/{accessibleDiffViewer.css.js → components/accessibleDiffViewer.css.js} +1 -1
  75. package/vscode/src/vs/editor/browser/widget/diffEditor/{accessibleDiffViewer.js → components/accessibleDiffViewer.js} +43 -43
  76. package/vscode/src/vs/editor/browser/widget/diffEditor/components/diffEditorDecorations.js +89 -0
  77. package/vscode/src/vs/editor/browser/widget/diffEditor/{diffEditorEditors.js → components/diffEditorEditors.js} +14 -14
  78. package/vscode/src/vs/editor/browser/widget/diffEditor/{diffEditorSash.js → components/diffEditorSash.js} +5 -5
  79. package/vscode/src/vs/editor/browser/widget/diffEditor/{lineAlignment.js → components/diffEditorViewZones/diffEditorViewZones.js} +38 -28
  80. package/vscode/src/vs/editor/browser/widget/diffEditor/{inlineDiffDeletedCodeMargin.js → components/diffEditorViewZones/inlineDiffDeletedCodeMargin.js} +14 -14
  81. package/vscode/src/vs/editor/browser/widget/diffEditor/{renderLines.js → components/diffEditorViewZones/renderLines.js} +7 -7
  82. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditor.contribution.js +29 -38
  83. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorViewModel.js +150 -38
  84. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorWidget.js +17 -16
  85. package/vscode/src/vs/editor/browser/widget/diffEditor/diffProviderFactoryService.js +104 -6
  86. package/vscode/src/vs/editor/browser/widget/diffEditor/{hideUnchangedRegionsFeature.js → features/hideUnchangedRegionsFeature.js} +51 -78
  87. package/vscode/src/vs/editor/browser/widget/diffEditor/{movedBlocksLines.js → features/movedBlocksLinesFeature.js} +23 -23
  88. package/vscode/src/vs/editor/browser/widget/diffEditor/{overviewRulerPart.js → features/overviewRulerFeature.js} +28 -28
  89. package/vscode/src/vs/editor/browser/widget/diffEditor/features/revertButtonsFeature.js +145 -0
  90. package/vscode/src/vs/editor/browser/widget/diffEditor/{decorations.js → registrations.contribution.js} +18 -2
  91. package/vscode/src/vs/editor/browser/widget/diffEditor/utils.js +10 -2
  92. package/vscode/src/vs/editor/browser/widget/hoverWidget/hover.css.js +4 -0
  93. package/vscode/src/vs/editor/browser/widget/hoverWidget/hoverWidget.js +527 -0
  94. package/vscode/src/vs/editor/{contrib → browser/widget}/markdownRenderer/browser/markdownRenderer.js +11 -11
  95. package/vscode/src/vs/editor/{contrib → browser/widget}/markdownRenderer/browser/renderedMarkdown.css.js +1 -1
  96. package/vscode/src/vs/editor/common/config/editorOptions.d.ts +11 -10
  97. package/vscode/src/vs/editor/common/config/editorOptions.js +46 -42
  98. package/vscode/src/vs/editor/common/core/editorColorRegistry.js +3 -3
  99. package/vscode/src/vs/editor/common/core/offsetRange.d.ts +2 -0
  100. package/vscode/src/vs/editor/common/core/offsetRange.js +8 -0
  101. package/vscode/src/vs/editor/common/diff/defaultLinesDiffComputer/algorithms/diffAlgorithm.js +9 -0
  102. package/vscode/src/vs/editor/common/diff/defaultLinesDiffComputer/heuristicSequenceOptimizations.js +50 -47
  103. package/vscode/src/vs/editor/common/diff/defaultLinesDiffComputer/linesSliceCharSequence.js +4 -1
  104. package/vscode/src/vs/editor/common/diff/rangeMapping.d.ts +2 -1
  105. package/vscode/src/vs/editor/common/diff/rangeMapping.js +13 -2
  106. package/vscode/src/vs/editor/common/languages.d.ts +10 -2
  107. package/vscode/src/vs/editor/common/model/textModel.js +19 -13
  108. package/vscode/src/vs/editor/common/model/tokenizationTextModelPart.js +1 -1
  109. package/vscode/src/vs/editor/common/model.d.ts +19 -1
  110. package/vscode/src/vs/editor/common/model.js +2 -1
  111. package/vscode/src/vs/editor/common/services/editorSimpleWorker.js +2 -1
  112. package/vscode/src/vs/editor/common/services/getIconClasses.js +4 -1
  113. package/vscode/src/vs/editor/common/services/semanticTokensProviderStyling.js +3 -3
  114. package/vscode/src/vs/editor/common/standalone/standaloneEnums.js +9 -8
  115. package/vscode/src/vs/editor/common/standaloneStrings.js +18 -18
  116. package/vscode/src/vs/editor/common/viewEvents.js +2 -0
  117. package/vscode/src/vs/editor/common/viewModel/glyphLanesModel.js +55 -0
  118. package/vscode/src/vs/editor/common/viewModel/viewModelImpl.js +4 -1
  119. package/vscode/src/vs/editor/contrib/clipboard/browser/clipboard.js +5 -1
  120. package/vscode/src/vs/editor/contrib/codeAction/browser/codeAction.js +1 -0
  121. package/vscode/src/vs/editor/contrib/codeAction/browser/codeActionController.js +46 -20
  122. package/vscode/src/vs/editor/contrib/codeAction/browser/codeActionMenu.js +1 -1
  123. package/vscode/src/vs/editor/contrib/codeAction/browser/codeActionModel.js +38 -11
  124. package/vscode/src/vs/editor/contrib/codeAction/browser/lightBulbWidget.js +56 -101
  125. package/vscode/src/vs/editor/contrib/codelens/browser/codelensWidget.js +3 -2
  126. package/vscode/src/vs/editor/contrib/colorPicker/browser/colorContributions.js +2 -2
  127. package/vscode/src/vs/editor/contrib/colorPicker/browser/colorHoverParticipant.js +10 -29
  128. package/vscode/src/vs/editor/contrib/colorPicker/browser/colorPickerWidget.js +4 -4
  129. package/vscode/src/vs/editor/contrib/diffEditorBreadcrumbs/browser/contribution.js +51 -0
  130. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js +19 -1
  131. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js +38 -10
  132. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/defaultProviders.js +29 -1
  133. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/edit.js +10 -3
  134. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/postEditWidget.js +3 -17
  135. package/vscode/src/vs/editor/contrib/find/browser/findController.js +3 -35
  136. package/vscode/src/vs/editor/contrib/folding/browser/foldingDecorations.js +26 -6
  137. package/vscode/src/vs/editor/contrib/fontZoom/browser/fontZoom.js +6 -6
  138. package/vscode/src/vs/editor/contrib/format/browser/format.js +9 -9
  139. package/vscode/src/vs/editor/contrib/format/browser/formatActions.js +5 -5
  140. package/vscode/src/vs/editor/contrib/gotoError/browser/media/gotoErrorWidget.css.js +1 -1
  141. package/vscode/src/vs/editor/contrib/gotoSymbol/browser/goToCommands.js +2 -2
  142. package/vscode/src/vs/editor/contrib/hover/browser/contentHover.js +85 -76
  143. package/vscode/src/vs/editor/contrib/hover/browser/hover.js +120 -90
  144. package/vscode/src/vs/editor/contrib/hover/browser/marginHover.js +18 -6
  145. package/vscode/src/vs/editor/contrib/hover/browser/markdownHoverParticipant.js +1 -1
  146. package/vscode/src/vs/editor/contrib/hover/browser/markerHoverParticipant.js +2 -2
  147. package/vscode/src/vs/editor/contrib/inlayHints/browser/inlayHints.js +4 -2
  148. package/vscode/src/vs/editor/contrib/inlayHints/browser/inlayHintsController.js +56 -38
  149. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/hoverParticipant.js +1 -1
  150. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsController.js +12 -0
  151. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsHintsWidget.js +4 -0
  152. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsModel.js +2 -2
  153. package/vscode/src/vs/editor/contrib/linkedEditing/browser/linkedEditing.js +50 -53
  154. package/vscode/src/vs/editor/contrib/message/browser/messageController.js +5 -2
  155. package/vscode/src/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +1 -1
  156. package/vscode/src/vs/editor/contrib/semanticTokens/browser/documentSemanticTokens.js +5 -1
  157. package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScroll.css.js +1 -1
  158. package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScrollActions.js +4 -4
  159. package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScrollController.js +8 -5
  160. package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScrollWidget.js +58 -46
  161. package/vscode/src/vs/editor/contrib/suggest/browser/suggestController.js +34 -7
  162. package/vscode/src/vs/editor/contrib/suggest/browser/suggestInlineCompletions.js +30 -38
  163. package/vscode/src/vs/editor/contrib/suggest/browser/suggestModel.js +2 -2
  164. package/vscode/src/vs/editor/contrib/suggest/browser/suggestWidget.js +11 -3
  165. package/vscode/src/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js +18 -7
  166. package/vscode/src/vs/editor/contrib/suggest/browser/suggestWidgetRenderer.js +8 -10
  167. package/vscode/src/vs/editor/contrib/unicodeHighlighter/browser/bannerController.js +1 -1
  168. package/vscode/src/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +7 -6
  169. package/vscode/src/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js +3 -0
  170. package/vscode/src/vs/editor/editor.api.d.ts +82 -11
  171. package/vscode/src/vs/editor/standalone/browser/quickInput/standaloneQuickInputService.js +8 -3
  172. package/vscode/src/vs/editor/standalone/browser/standaloneLayoutService.js +4 -3
  173. package/vscode/src/vs/editor/standalone/browser/standaloneServices.js +22 -11
  174. package/vscode/src/vs/editor/standalone/browser/standaloneThemeService.js +1 -1
  175. package/vscode/src/vs/nls.d.ts +6 -0
  176. package/vscode/src/vs/platform/accessibility/browser/accessibilityService.js +4 -1
  177. package/vscode/src/vs/platform/accessibility/common/accessibility.d.ts +2 -16
  178. package/vscode/src/vs/platform/accessibility/common/accessibility.js +1 -2
  179. package/vscode/src/vs/platform/action/common/actionCommonCategories.d.ts +7 -20
  180. package/vscode/src/vs/platform/action/common/actionCommonCategories.js +8 -8
  181. package/vscode/src/vs/platform/actionWidget/browser/actionList.js +0 -1
  182. package/vscode/src/vs/platform/actionWidget/browser/actionWidget.css.js +1 -1
  183. package/vscode/src/vs/platform/actions/browser/buttonbar.js +2 -0
  184. package/vscode/src/vs/platform/actions/browser/dropdownWithPrimaryActionViewItem.js +5 -0
  185. package/vscode/src/vs/platform/actions/browser/menuEntryActionViewItem.css.js +1 -1
  186. package/vscode/src/vs/platform/actions/browser/menuEntryActionViewItem.js +2 -2
  187. package/vscode/src/vs/platform/actions/common/actions.d.ts +9 -1
  188. package/vscode/src/vs/platform/actions/common/actions.js +12 -1
  189. package/vscode/src/vs/platform/audioCues/browser/audioCueService.d.ts +11 -1
  190. package/vscode/src/vs/platform/audioCues/browser/audioCueService.js +174 -28
  191. package/vscode/src/vs/platform/clipboard/browser/clipboardService.js +38 -5
  192. package/vscode/src/vs/platform/configuration/common/configuration.d.ts +0 -1
  193. package/vscode/src/vs/platform/environment/common/environmentService.js +1 -1
  194. package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.d.ts +5 -1
  195. package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.js +24 -5
  196. package/vscode/src/vs/platform/extensions/common/extensions.d.ts +6 -1
  197. package/vscode/src/vs/{workbench/services → platform}/hover/browser/hover.d.ts +6 -8
  198. package/vscode/src/vs/platform/hover/browser/hover.js +3 -0
  199. package/vscode/src/vs/platform/instantiation/common/instantiationService.js +14 -4
  200. package/vscode/src/vs/platform/keybinding/common/abstractKeybindingService.js +11 -4
  201. package/vscode/src/vs/platform/keybinding/common/keybinding.d.ts +7 -0
  202. package/vscode/src/vs/platform/layout/browser/layoutService.d.ts +6 -0
  203. package/vscode/src/vs/platform/list/browser/listService.js +7 -5
  204. package/vscode/src/vs/platform/log/common/bufferLog.js +1 -0
  205. package/vscode/src/vs/platform/log/common/log.d.ts +0 -1
  206. package/vscode/src/vs/platform/log/common/log.js +1 -2
  207. package/vscode/src/vs/platform/notification/common/notification.d.ts +36 -19
  208. package/vscode/src/vs/platform/notification/common/notification.js +9 -3
  209. package/vscode/src/vs/platform/quickinput/browser/pickerQuickAccess.js +4 -1
  210. package/vscode/src/vs/platform/quickinput/browser/quickInput.js +50 -48
  211. package/vscode/src/vs/platform/quickinput/browser/quickInputController.js +3 -5
  212. package/vscode/src/vs/platform/quickinput/browser/quickInputList.js +49 -66
  213. package/vscode/src/vs/platform/quickinput/browser/quickInputService.js +11 -3
  214. package/vscode/src/vs/platform/quickinput/browser/quickInputUtils.js +16 -2
  215. package/vscode/src/vs/platform/quickinput/common/quickInput.d.ts +230 -26
  216. package/vscode/src/vs/platform/remote/common/remoteAuthorityResolver.d.ts +1 -0
  217. package/vscode/src/vs/platform/telemetry/common/telemetryUtils.js +1 -0
  218. package/vscode/src/vs/platform/theme/browser/defaultStyles.js +5 -3
  219. package/vscode/src/vs/platform/theme/common/colorRegistry.js +28 -9
  220. package/vscode/src/vs/platform/tunnel/common/tunnel.d.ts +2 -0
  221. package/vscode/src/vs/platform/window/common/window.js +14 -8
  222. package/vscode/src/vs/workbench/api/common/extHost.api.impl.js +97 -78
  223. package/vscode/src/vs/workbench/api/common/extHost.protocol.js +1 -1
  224. package/vscode/src/vs/workbench/api/common/extHostAuthentication.js +1 -22
  225. package/vscode/src/vs/workbench/api/common/extHostChat.js +0 -6
  226. package/vscode/src/vs/workbench/api/common/extHostChatAgents2.js +31 -36
  227. package/vscode/src/vs/workbench/api/common/extHostChatVariables.js +1 -1
  228. package/vscode/src/vs/workbench/api/common/extHostComments.js +6 -1
  229. package/vscode/src/vs/workbench/api/common/extHostConsoleForwarder.js +1 -0
  230. package/vscode/src/vs/workbench/api/common/extHostDebugService.js +130 -6
  231. package/vscode/src/vs/workbench/api/common/extHostDocumentContentProviders.js +28 -15
  232. package/vscode/src/vs/workbench/api/common/extHostDocuments.js +4 -5
  233. package/vscode/src/vs/workbench/api/common/extHostExtensionService.js +5 -1
  234. package/vscode/src/vs/workbench/api/common/extHostFileSystem.js +1 -2
  235. package/vscode/src/vs/workbench/api/common/extHostFileSystemConsumer.js +2 -2
  236. package/vscode/src/vs/workbench/api/common/extHostInlineChat.js +35 -33
  237. package/vscode/src/vs/workbench/api/common/extHostLanguageFeatures.js +40 -13
  238. package/vscode/src/vs/workbench/api/common/extHostMessageService.js +10 -1
  239. package/vscode/src/vs/workbench/api/common/extHostNotebook.js +11 -7
  240. package/vscode/src/vs/workbench/api/common/extHostNotebookEditors.js +2 -3
  241. package/vscode/src/vs/workbench/api/common/extHostNotebookKernels.js +29 -4
  242. package/vscode/src/vs/workbench/api/common/extHostProfileContentHandler.js +1 -1
  243. package/vscode/src/vs/workbench/api/common/extHostProgress.js +1 -7
  244. package/vscode/src/vs/workbench/api/common/extHostSCM.js +49 -93
  245. package/vscode/src/vs/workbench/api/common/extHostSpeech.js +21 -0
  246. package/vscode/src/vs/workbench/api/common/extHostTask.js +18 -22
  247. package/vscode/src/vs/workbench/api/common/extHostTelemetry.js +1 -0
  248. package/vscode/src/vs/workbench/api/common/extHostTerminalService.js +3 -3
  249. package/vscode/src/vs/workbench/api/common/extHostTesting.js +55 -36
  250. package/vscode/src/vs/workbench/api/common/extHostTextEditor.js +5 -2
  251. package/vscode/src/vs/workbench/api/common/extHostTextEditors.js +6 -7
  252. package/vscode/src/vs/workbench/api/common/extHostTreeViews.js +6 -3
  253. package/vscode/src/vs/workbench/api/common/extHostTunnelService.js +4 -2
  254. package/vscode/src/vs/workbench/api/common/extHostTypeConverters.js +74 -12
  255. package/vscode/src/vs/workbench/api/common/extHostTypes.js +27 -8
  256. package/vscode/src/vs/workbench/api/worker/extHostConsoleForwarder.js +1 -1
  257. package/vscode/src/vs/workbench/browser/actions/layoutActions.js +172 -103
  258. package/vscode/src/vs/workbench/browser/actions/windowActions.js +13 -17
  259. package/vscode/src/vs/workbench/browser/actions/workspaceActions.js +34 -34
  260. package/vscode/src/vs/workbench/browser/actions/workspaceCommands.js +4 -4
  261. package/vscode/src/vs/workbench/browser/dnd.js +2 -2
  262. package/vscode/src/vs/workbench/browser/labels.js +34 -4
  263. package/vscode/src/vs/workbench/browser/part.js +2 -2
  264. package/vscode/src/vs/workbench/browser/parts/auxiliarybar/auxiliaryBarActions.js +4 -4
  265. package/vscode/src/vs/workbench/browser/parts/compositeBarActions.js +1 -1
  266. package/vscode/src/vs/workbench/browser/parts/editor/breadcrumbsControl.js +801 -0
  267. package/vscode/src/vs/workbench/browser/parts/editor/breadcrumbsModel.js +140 -0
  268. package/vscode/src/vs/workbench/browser/parts/editor/breadcrumbsPicker.js +410 -0
  269. package/vscode/src/vs/workbench/browser/parts/editor/editor.js +1 -2
  270. package/vscode/src/vs/workbench/browser/parts/editor/editorActions.js +304 -303
  271. package/vscode/src/vs/workbench/browser/parts/editor/editorAutoSave.js +101 -47
  272. package/vscode/src/vs/workbench/browser/parts/editor/editorCommands.js +114 -47
  273. package/vscode/src/vs/workbench/browser/parts/editor/editorGroupView.js +1313 -0
  274. package/vscode/src/vs/workbench/browser/parts/editor/editorGroupWatermark.js +190 -0
  275. package/vscode/src/vs/workbench/browser/parts/editor/editorPanes.js +344 -0
  276. package/vscode/src/vs/workbench/browser/parts/editor/editorQuickAccess.js +1 -1
  277. package/vscode/src/vs/workbench/browser/parts/editor/editorStatus.js +10 -10
  278. package/vscode/src/vs/workbench/browser/parts/editor/editorTabsControl.js +27 -42
  279. package/vscode/src/vs/workbench/browser/parts/editor/editorTitleControl.js +152 -0
  280. package/vscode/src/vs/workbench/browser/parts/editor/editorsObserver.js +8 -8
  281. package/vscode/src/vs/workbench/browser/parts/editor/media/breadcrumbscontrol.css.js +4 -0
  282. package/vscode/src/vs/workbench/browser/parts/editor/media/editorgroupview.css.js +4 -0
  283. package/vscode/src/vs/workbench/browser/parts/editor/media/editortitlecontrol.css.js +4 -0
  284. package/vscode/src/vs/workbench/browser/parts/editor/media/multieditortabscontrol.css.js +4 -0
  285. package/vscode/src/vs/workbench/browser/parts/editor/media/singleeditortabscontrol.css.js +4 -0
  286. package/vscode/src/vs/workbench/browser/parts/editor/multiEditorTabsControl.js +1626 -0
  287. package/vscode/src/vs/workbench/browser/parts/editor/multiRowEditorTabsControl.js +150 -0
  288. package/vscode/src/vs/workbench/browser/parts/editor/noEditorTabsControl.js +52 -0
  289. package/vscode/src/vs/workbench/browser/parts/editor/singleEditorTabsControl.js +260 -0
  290. package/vscode/src/vs/workbench/browser/parts/editor/textEditor.js +1 -1
  291. package/vscode/src/vs/workbench/browser/parts/editor/textResourceEditor.js +2 -2
  292. package/vscode/src/vs/workbench/browser/parts/globalCompositeBar.js +39 -36
  293. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsCommands.js +68 -28
  294. package/vscode/src/vs/workbench/browser/parts/panel/media/panelpart.css.js +1 -1
  295. package/vscode/src/vs/workbench/browser/parts/panel/panelActions.js +15 -14
  296. package/vscode/src/vs/workbench/browser/parts/titlebar/menubarControl.js +18 -17
  297. package/vscode/src/vs/workbench/browser/parts/titlebar/windowTitle.js +1 -1
  298. package/vscode/src/vs/workbench/browser/parts/views/media/views.css.js +1 -1
  299. package/vscode/src/vs/workbench/browser/parts/views/treeView.js +7 -10
  300. package/vscode/src/vs/workbench/browser/parts/views/viewPane.js +2 -1
  301. package/vscode/src/vs/workbench/browser/parts/views/viewPaneContainer.d.ts +2 -1
  302. package/vscode/src/vs/workbench/browser/parts/views/viewPaneContainer.js +18 -17
  303. package/vscode/src/vs/workbench/browser/quickaccess.js +33 -1
  304. package/vscode/src/vs/workbench/browser/web.api.d.ts +6 -0
  305. package/vscode/src/vs/workbench/browser/window.js +92 -9
  306. package/vscode/src/vs/workbench/browser/workbench.contribution.js +114 -65
  307. package/vscode/src/vs/workbench/common/component.d.ts +5 -1
  308. package/vscode/src/vs/workbench/common/component.js +6 -0
  309. package/vscode/src/vs/workbench/common/configuration.js +11 -1
  310. package/vscode/src/vs/workbench/common/contextkeys.js +8 -4
  311. package/vscode/src/vs/workbench/common/editor/editorInput.d.ts +6 -0
  312. package/vscode/src/vs/workbench/common/editor/editorInput.js +3 -0
  313. package/vscode/src/vs/workbench/common/editor/filteredEditorGroupModel.js +107 -0
  314. package/vscode/src/vs/workbench/common/editor/resourceEditorInput.d.ts +6 -3
  315. package/vscode/src/vs/workbench/common/editor/resourceEditorInput.js +21 -3
  316. package/vscode/src/vs/workbench/common/editor/textResourceEditorInput.d.ts +2 -1
  317. package/vscode/src/vs/workbench/common/editor/textResourceEditorInput.js +9 -6
  318. package/vscode/src/vs/workbench/common/editor.d.ts +16 -4
  319. package/vscode/src/vs/workbench/common/editor.js +7 -1
  320. package/vscode/src/vs/workbench/common/memento.js +33 -12
  321. package/vscode/src/vs/workbench/common/notifications.js +30 -7
  322. package/vscode/src/vs/workbench/common/theme.js +61 -1
  323. package/vscode/src/vs/workbench/common/views.d.ts +1 -28
  324. package/vscode/src/vs/workbench/common/views.js +1 -2
  325. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration.js +232 -19
  326. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibilityContributions.js +9 -9
  327. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibleView.js +1 -0
  328. package/vscode/src/vs/workbench/contrib/accessibility/browser/editorAccessibilityHelp.js +19 -31
  329. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +8 -3
  330. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatActions.js +57 -38
  331. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +4 -4
  332. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditorInput.js +9 -2
  333. package/vscode/src/vs/workbench/contrib/chat/browser/chatFollowups.js +7 -0
  334. package/vscode/src/vs/workbench/contrib/chat/browser/chatInputPart.js +31 -20
  335. package/vscode/src/vs/workbench/contrib/chat/browser/chatListRenderer.js +93 -49
  336. package/vscode/src/vs/workbench/contrib/chat/browser/chatMarkdownDecorationsRenderer.js +30 -6
  337. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommandContentWidget.js +24 -12
  338. package/vscode/src/vs/workbench/contrib/chat/browser/chatWidget.js +9 -5
  339. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatDynamicVariables.js +12 -1
  340. package/vscode/src/vs/workbench/contrib/chat/browser/media/chat.css.js +1 -1
  341. package/vscode/src/vs/workbench/contrib/chat/common/chatContextKeys.js +2 -1
  342. package/vscode/src/vs/workbench/contrib/chat/common/chatModel.js +21 -43
  343. package/vscode/src/vs/workbench/contrib/chat/common/chatService.js +6 -6
  344. package/vscode/src/vs/workbench/contrib/codeActions/browser/codeActionsContribution.js +4 -4
  345. package/vscode/src/vs/workbench/contrib/codeEditor/browser/suggestEnabledInput/suggestEnabledInput.css.js +1 -1
  346. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleMultiCursorModifier.js +4 -4
  347. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleWordWrap.js +0 -3
  348. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadBody.js +1 -1
  349. package/vscode/src/vs/workbench/contrib/comments/browser/{comments.contribution.js → commentsAccessibility.js} +36 -128
  350. package/vscode/src/vs/workbench/contrib/comments/browser/reactionsAction.js +41 -18
  351. package/vscode/src/vs/workbench/contrib/debug/browser/baseDebugView.js +202 -0
  352. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointEditorContribution.js +27 -4
  353. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointWidget.js +165 -52
  354. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointsView.js +48 -31
  355. package/vscode/src/vs/workbench/contrib/debug/browser/debugIcons.js +6 -1
  356. package/vscode/src/vs/workbench/contrib/debug/browser/media/breakpointWidget.css.js +1 -1
  357. package/vscode/src/vs/workbench/contrib/debug/common/debug.d.ts +40 -10
  358. package/vscode/src/vs/workbench/contrib/debug/common/debug.js +28 -1
  359. package/vscode/src/vs/workbench/contrib/debug/common/debugContext.js +14 -0
  360. package/vscode/src/vs/workbench/contrib/debug/common/debugModel.js +52 -23
  361. package/vscode/src/vs/workbench/contrib/debug/common/debugSource.js +1 -1
  362. package/vscode/src/vs/workbench/contrib/debug/common/debugVisualizers.js +164 -0
  363. package/vscode/src/vs/workbench/contrib/debug/common/disassemblyViewInput.js +10 -0
  364. package/vscode/src/vs/workbench/contrib/debug/common/replModel.js +285 -0
  365. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsActions.js +123 -78
  366. package/vscode/src/vs/workbench/contrib/extensions/common/extensionsInput.js +10 -0
  367. package/vscode/src/vs/workbench/contrib/files/browser/editors/fileEditorInput.js +326 -0
  368. package/vscode/src/vs/workbench/contrib/files/browser/explorerViewlet.js +1 -2
  369. package/vscode/src/vs/workbench/contrib/files/browser/fileActions.js +8 -9
  370. package/vscode/src/vs/workbench/contrib/files/browser/files.configuration.contribution.js +70 -2
  371. package/vscode/src/vs/workbench/contrib/files/browser/files.d.ts +5 -2
  372. package/vscode/src/vs/workbench/contrib/files/browser/files.fileEditorFactory.contribution.js +13 -0
  373. package/vscode/src/vs/workbench/contrib/files/browser/views/emptyView.js +2 -2
  374. package/vscode/src/vs/workbench/contrib/files/browser/views/explorerView.js +34 -17
  375. package/vscode/src/vs/workbench/contrib/files/browser/views/explorerViewer.js +5 -4
  376. package/vscode/src/vs/workbench/contrib/files/browser/views/openEditorsView.js +48 -14
  377. package/vscode/src/vs/workbench/contrib/format/browser/formatActionsMultiple.js +16 -8
  378. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.css.js +1 -1
  379. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +317 -321
  380. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatLivePreviewWidget.js +17 -24
  381. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSavingService.js +3 -0
  382. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSession.js +306 -130
  383. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.js +3 -0
  384. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatStrategies.js +385 -613
  385. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +69 -64
  386. package/vscode/src/vs/workbench/contrib/inlineChat/browser/utils.js +71 -3
  387. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +39 -44
  388. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInput.js +5 -3
  389. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInputModel.js +1 -1
  390. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/findModel.js +1 -1
  391. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/coreActions.js +4 -4
  392. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/foldingController.js +3 -3
  393. package/vscode/src/vs/workbench/contrib/notebook/browser/media/notebookCellChat.css.js +1 -1
  394. package/vscode/src/vs/workbench/contrib/notebook/browser/media/notebookEditorStickyScroll.css.js +1 -1
  395. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookEditor.js +38 -7
  396. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.js +36 -8
  397. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookOptions.js +32 -12
  398. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellPart.js +24 -14
  399. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellEditorOptions.js +4 -4
  400. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellStatusPart.js +1 -1
  401. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellToolbarStickyScroll.js +1 -2
  402. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/chat/cellChatActions.js +264 -12
  403. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/chat/cellChatController.js +60 -27
  404. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCell.js +12 -5
  405. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCellExecutionIcon.js +2 -2
  406. package/vscode/src/vs/workbench/contrib/notebook/browser/view/notebookCellList.js +2 -2
  407. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/backLayerWebView.js +12 -9
  408. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/webviewPreloads.js +6 -3
  409. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/notebookViewModelImpl.js +1 -0
  410. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookEditorStickyScroll.js +188 -155
  411. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookKernelView.js +4 -4
  412. package/vscode/src/vs/workbench/contrib/notebook/common/model/notebookCellTextModel.js +10 -3
  413. package/vscode/src/vs/workbench/contrib/notebook/common/notebookCommon.js +16 -33
  414. package/vscode/src/vs/workbench/contrib/notebook/common/notebookEditorInput.js +9 -7
  415. package/vscode/src/vs/workbench/contrib/notebook/common/notebookEditorModel.js +6 -2
  416. package/vscode/src/vs/workbench/contrib/notebook/common/notebookKernelService.js +2 -1
  417. package/vscode/src/vs/workbench/contrib/remote/browser/remoteExplorer.js +29 -14
  418. package/vscode/src/vs/workbench/contrib/remote/browser/tunnelView.js +15 -3
  419. package/vscode/src/vs/workbench/contrib/remote/browser/urlFinder.js +2 -2
  420. package/vscode/src/vs/workbench/contrib/scm/browser/dirtydiffDecorator.js +22 -6
  421. package/vscode/src/vs/workbench/contrib/search/browser/searchActionsFind.js +1 -1
  422. package/vscode/src/vs/workbench/contrib/search/browser/searchModel.js +16 -17
  423. package/vscode/src/vs/workbench/contrib/snippets/browser/snippetCompletionProvider.js +78 -50
  424. package/vscode/src/vs/workbench/contrib/speech/common/speechService.js +15 -1
  425. package/vscode/src/vs/workbench/contrib/terminal/browser/terminal.d.ts +25 -45
  426. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalEditorInput.js +12 -4
  427. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalIcon.js +2 -1
  428. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/decorationAddon.js +33 -36
  429. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/decorationStyles.js +1 -1
  430. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/markNavigationAddon.js +3 -0
  431. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.d.ts +5 -8
  432. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.js +15 -27
  433. package/vscode/src/vs/workbench/contrib/terminal/common/terminalColorRegistry.js +3 -3
  434. package/vscode/src/vs/workbench/contrib/testing/common/testCoverage.js +38 -22
  435. package/vscode/src/vs/workbench/contrib/testing/common/testCoverageService.js +5 -2
  436. package/vscode/src/vs/workbench/contrib/testing/common/testProfileService.js +60 -40
  437. package/vscode/src/vs/workbench/contrib/testing/common/testResult.js +2 -2
  438. package/vscode/src/vs/workbench/contrib/testing/common/testResultStorage.js +15 -11
  439. package/vscode/src/vs/workbench/contrib/testing/common/testService.js +26 -1
  440. package/vscode/src/vs/workbench/contrib/testing/common/testTypes.js +24 -23
  441. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedService.js +1 -1
  442. package/vscode/src/vs/workbench/services/authentication/browser/authenticationService.js +124 -26
  443. package/vscode/src/vs/workbench/services/authentication/common/authentication.d.ts +68 -0
  444. package/vscode/src/vs/workbench/services/auxiliaryWindow/browser/auxiliaryWindowService.js +76 -36
  445. package/vscode/src/vs/workbench/services/configurationResolver/common/configurationResolver.js +1 -0
  446. package/vscode/src/vs/workbench/services/configurationResolver/common/variableResolver.js +1 -0
  447. package/vscode/src/vs/workbench/services/editor/browser/editorService.js +15 -3
  448. package/vscode/src/vs/workbench/services/editor/common/editorGroupFinder.js +10 -1
  449. package/vscode/src/vs/workbench/services/editor/common/editorGroupsService.d.ts +51 -43
  450. package/vscode/src/vs/workbench/services/editor/common/editorService.d.ts +13 -8
  451. package/vscode/src/vs/workbench/services/editor/common/editorService.js +2 -1
  452. package/vscode/src/vs/workbench/services/extensionManagement/browser/extensionBisect.js +10 -10
  453. package/vscode/src/vs/workbench/services/extensions/browser/extensionUrlHandler.js +8 -8
  454. package/vscode/src/vs/workbench/services/extensions/common/extensionsApiProposals.js +7 -7
  455. package/vscode/src/vs/workbench/services/extensions/common/rpcProtocol.js +1 -0
  456. package/vscode/src/vs/workbench/services/filesConfiguration/common/filesConfigurationService.d.ts +29 -9
  457. package/vscode/src/vs/workbench/services/filesConfiguration/common/filesConfigurationService.js +160 -63
  458. package/vscode/src/vs/workbench/services/host/browser/host.d.ts +8 -0
  459. package/vscode/src/vs/workbench/services/keybinding/common/keybindingEditing.js +60 -72
  460. package/vscode/src/vs/workbench/services/layout/browser/layoutService.d.ts +0 -4
  461. package/vscode/src/vs/workbench/services/notebook/common/notebookDocumentService.js +56 -0
  462. package/vscode/src/vs/workbench/services/output/common/output.js +2 -2
  463. package/vscode/src/vs/workbench/services/preferences/browser/keybindingsEditorInput.js +10 -0
  464. package/vscode/src/vs/workbench/services/preferences/common/preferencesEditorInput.js +10 -0
  465. package/vscode/src/vs/workbench/services/remote/common/remoteExplorerService.js +2 -1
  466. package/vscode/src/vs/workbench/services/textfile/common/textFileEditorModel.js +5 -4
  467. package/vscode/src/vs/workbench/services/untitled/common/untitledTextEditorInput.js +21 -8
  468. package/vscode/src/vs/workbench/services/untitled/common/untitledTextEditorService.d.ts +4 -0
  469. package/vscode/src/vs/workbench/services/untitled/common/untitledTextEditorService.js +3 -0
  470. package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfile.js +4 -4
  471. package/vscode/src/vs/workbench/{browser/parts/views → services/views/browser}/viewsService.js +20 -15
  472. package/vscode/src/vs/workbench/services/views/common/viewsService.d.ts +34 -0
  473. package/vscode/src/vs/workbench/services/{hover/browser/hover.js → views/common/viewsService.js} +2 -2
  474. package/vscode/src/vs/workbench/services/workingCopy/common/storedFileWorkingCopy.d.ts +6 -1
  475. package/vscode/src/vs/workbench/services/workingCopy/common/storedFileWorkingCopy.js +5 -2
  476. package/vscode/src/vs/workbench/services/workspaces/common/workspaceTrust.js +1 -0
  477. package/vscode-dts/vscode.proposed.chatAgents2.d.ts +112 -47
  478. package/vscode-dts/vscode.proposed.chatAgents2Additions.d.ts +68 -9
  479. package/vscode-dts/{vscode.proposed.scmInputBoxActionButton.d.ts → vscode.proposed.codeActionRanges.d.ts} +8 -10
  480. package/vscode-dts/{vscode.proposed.readonlyMessage.d.ts → vscode.proposed.commentReactor.d.ts} +3 -4
  481. package/vscode-dts/vscode.proposed.contribMultiDiffEditorMenus.d.ts +6 -0
  482. package/vscode-dts/vscode.proposed.contribSourceControlHistoryItemGroupMenu.d.ts +8 -0
  483. package/vscode-dts/vscode.proposed.contribSourceControlHistoryItemMenu.d.ts +8 -0
  484. package/vscode-dts/vscode.proposed.debugVisualization.d.ts +100 -0
  485. package/vscode-dts/vscode.proposed.defaultChatAgent.d.ts +1 -1
  486. package/vscode-dts/vscode.proposed.interactive.d.ts +13 -16
  487. package/vscode-dts/vscode.proposed.notebookVariableProvider.d.ts +4 -1
  488. package/vscode-dts/vscode.proposed.resolvers.d.ts +4 -0
  489. package/vscode-dts/vscode.proposed.scmHistoryProvider.d.ts +4 -10
  490. package/vscode-dts/vscode.proposed.scmMultiDiffEditor.d.ts +34 -0
  491. package/vscode-dts/vscode.proposed.speech.d.ts +17 -3
  492. package/vscode-dts/vscode.proposed.testCoverage.d.ts +7 -1
  493. package/vscode-dts/vscode.proposed.tunnelFactory.d.ts +4 -0
  494. package/vscode/src/vs/editor/browser/widget/diffEditor/colors.js +0 -17
  495. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorDecorations.js +0 -231
  496. package/vscode/src/vs/editor/browser/widget/diffEditor/outlineModel.js +0 -299
  497. package/vscode/src/vs/editor/browser/widget/diffEditor/workerBasedDocumentDiffProvider.js +0 -101
  498. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/suggestAddon.js +0 -390
  499. package/vscode/src/vs/workbench/services/editor/common/editorGroupColumn.d.ts +0 -10
  500. package/vscode/src/vs/workbench/services/suggest/browser/media/suggest.css.js +0 -4
  501. package/vscode/src/vs/workbench/services/suggest/browser/simpleCompletionItem.d.ts +0 -28
  502. package/vscode/src/vs/workbench/services/suggest/browser/simpleCompletionItem.js +0 -10
  503. package/vscode/src/vs/workbench/services/suggest/browser/simpleCompletionModel.d.ts +0 -30
  504. package/vscode/src/vs/workbench/services/suggest/browser/simpleCompletionModel.js +0 -98
  505. package/vscode/src/vs/workbench/services/suggest/browser/simpleSuggestWidget.d.ts +0 -10
  506. package/vscode/src/vs/workbench/services/suggest/browser/simpleSuggestWidget.js +0 -428
  507. package/vscode/src/vs/workbench/services/suggest/browser/simpleSuggestWidgetRenderer.js +0 -83
  508. package/vscode-dts/vscode.proposed.chatVariables.d.ts +0 -39
  509. package/vscode-dts/vscode.proposed.interactiveUserActions.d.ts +0 -77
  510. package/vscode-dts/vscode.proposed.saveEditor.d.ts +0 -35
  511. package/vscode-dts/vscode.proposed.scmInputBoxValueProvider.d.ts +0 -25
  512. package/vscode-dts/vscode.proposed.testingActiveProfile.d.ts +0 -21
@@ -6,8 +6,8 @@ import { localizeWithPath } from '../../../../nls.js';
6
6
  import { IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';
7
7
  import { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';
8
8
  import { ZoneWidget } from '../../../../editor/contrib/zoneWidget/browser/zoneWidget.js';
9
- import { CTX_INLINE_CHAT_MESSAGE_CROP_STATE, CTX_INLINE_CHAT_EMPTY, CTX_INLINE_CHAT_INNER_CURSOR_FIRST, CTX_INLINE_CHAT_INNER_CURSOR_LAST, CTX_INLINE_CHAT_INNER_CURSOR_START, CTX_INLINE_CHAT_INNER_CURSOR_END, CTX_INLINE_CHAT_FOCUSED, CTX_INLINE_CHAT_RESPONSE_FOCUSED, MENU_INLINE_CHAT_WIDGET_MARKDOWN_MESSAGE, MENU_INLINE_CHAT_WIDGET_TOGGLE, ACTION_REGENERATE_RESPONSE, ACTION_VIEW_IN_CHAT, ACTION_ACCEPT_CHANGES, CTX_INLINE_CHAT_VISIBLE, CTX_INLINE_CHAT_OUTER_CURSOR_POSITION, MENU_INLINE_CHAT_WIDGET, MENU_INLINE_CHAT_WIDGET_STATUS, MENU_INLINE_CHAT_WIDGET_FEEDBACK } from '../common/inlineChat.js';
10
- import { h, addDisposableListener, getWindow, getTotalWidth, Dimension, getTotalHeight, reset, getActiveElement, EventType } from '../../../../base/browser/dom.js';
9
+ import { CTX_INLINE_CHAT_MESSAGE_CROP_STATE, CTX_INLINE_CHAT_EMPTY, CTX_INLINE_CHAT_INNER_CURSOR_FIRST, CTX_INLINE_CHAT_INNER_CURSOR_LAST, CTX_INLINE_CHAT_INNER_CURSOR_START, CTX_INLINE_CHAT_INNER_CURSOR_END, CTX_INLINE_CHAT_FOCUSED, CTX_INLINE_CHAT_RESPONSE_FOCUSED, MENU_INLINE_CHAT_WIDGET_MARKDOWN_MESSAGE, ACTION_REGENERATE_RESPONSE, ACTION_VIEW_IN_CHAT, ACTION_ACCEPT_CHANGES, CTX_INLINE_CHAT_VISIBLE, CTX_INLINE_CHAT_OUTER_CURSOR_POSITION, MENU_INLINE_CHAT_INPUT, MENU_INLINE_CHAT_WIDGET, MENU_INLINE_CHAT_WIDGET_STATUS, MENU_INLINE_CHAT_WIDGET_FEEDBACK } from '../common/inlineChat.js';
10
+ import { h, addDisposableListener, getTotalWidth, Dimension, getTotalHeight, reset, getActiveElement } from '../../../../base/browser/dom.js';
11
11
  import { MicrotaskEmitter, Event, Emitter } from '../../../../base/common/event.js';
12
12
  import { EditorExtensionsRegistry } from '../../../../editor/browser/editorExtensions.js';
13
13
  import { SnippetController2 } from '../../../../editor/contrib/snippet/browser/snippetController2.js';
@@ -21,8 +21,7 @@ import { DEFAULT_FONT_FAMILY } from '../../../browser/style.js';
21
21
  import { ResourceLabel } from '../../../browser/labels.js';
22
22
  import { FileKind } from '../../../../platform/files/common/files.js';
23
23
  import { ILanguageFeaturesService } from '../../../../editor/common/services/languageFeatures.js';
24
- import { createTextBufferFactoryFromSnapshot } from '../../../../editor/common/model/textModel.js';
25
- import { invertLineRange, lineRangeAsRange } from './utils.js';
24
+ import { invertLineRange, asRange } from './utils.js';
26
25
  import { LineRange } from '../../../../editor/common/core/lineRange.js';
27
26
  import { IAccessibilityService } from '../../../../platform/accessibility/common/accessibility.js';
28
27
  import { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';
@@ -30,11 +29,9 @@ import { IKeybindingService } from '../../../../platform/keybinding/common/keybi
30
29
  import { renderLabelWithIcons } from '../../../../base/browser/ui/iconLabel/iconLabels.js';
31
30
  import { ExpansionState } from './inlineChatSession.js';
32
31
  import { status } from '../../../../base/browser/ui/aria/aria.js';
33
- import { MenuWorkbenchButtonBar, WorkbenchButtonBar } from '../../../../platform/actions/browser/buttonbar.js';
32
+ import { MenuWorkbenchButtonBar } from '../../../../platform/actions/browser/buttonbar.js';
34
33
  import { SlashCommandContentWidget } from '../../chat/browser/chatSlashCommandContentWidget.js';
35
- import { IContextMenuService } from '../../../../platform/contextview/browser/contextView.js';
36
34
  import { IAccessibleViewService } from '../../accessibility/browser/accessibleView.js';
37
- import { StandardMouseEvent } from '../../../../base/browser/mouseEvent.js';
38
35
  import { assertType } from '../../../../base/common/types.js';
39
36
  import { renderFormattedText } from '../../../../base/browser/formattedTextRenderer.js';
40
37
  import { MarkdownString } from '../../../../base/common/htmlContent.js';
@@ -91,6 +88,7 @@ const _inputEditorOptions = {
91
88
  suggest: {
92
89
  showIcons: false,
93
90
  showSnippets: false,
91
+ showWords: true,
94
92
  showStatusBar: false,
95
93
  },
96
94
  wordWrap: 'on',
@@ -122,7 +120,7 @@ const _previewEditorEditorOptions = {
122
120
  let InlineChatWidget = class InlineChatWidget {
123
121
  static { InlineChatWidget_1 = this; }
124
122
  static { this._modelPool = 1; }
125
- constructor(parentEditor, _options, _modelService, _contextKeyService, _languageFeaturesService, _keybindingService, _instantiationService, _accessibilityService, _configurationService, _contextMenuService, _accessibleViewService, _editorWorkerService, _logService, _textModelResolverService, _chatAgentService) {
123
+ constructor(parentEditor, _options, _modelService, _contextKeyService, _languageFeaturesService, _keybindingService, _instantiationService, _accessibilityService, _configurationService, _accessibleViewService, _editorWorkerService, _logService, _textModelResolverService, _chatAgentService) {
126
124
  this.parentEditor = parentEditor;
127
125
  this._modelService = _modelService;
128
126
  this._contextKeyService = _contextKeyService;
@@ -131,7 +129,6 @@ let InlineChatWidget = class InlineChatWidget {
131
129
  this._instantiationService = _instantiationService;
132
130
  this._accessibilityService = _accessibilityService;
133
131
  this._configurationService = _configurationService;
134
- this._contextMenuService = _contextMenuService;
135
132
  this._accessibleViewService = _accessibleViewService;
136
133
  this._editorWorkerService = _editorWorkerService;
137
134
  this._logService = _logService;
@@ -146,8 +143,10 @@ let InlineChatWidget = class InlineChatWidget {
146
143
  ]),
147
144
  h('div.toolbar@editorToolbar'),
148
145
  ]),
146
+ h('div.widget-toolbar@widgetToolbar')
149
147
  ]),
150
148
  h('div.progress@progress'),
149
+ h('div.detectedIntent.hidden@detectedIntent'),
151
150
  h('div.previewDiff.hidden@previewDiff'),
152
151
  h('div.previewCreateTitle.show-file-icons@previewCreateTitle'),
153
152
  h('div.previewCreate.hidden@previewCreate'),
@@ -158,7 +157,6 @@ let InlineChatWidget = class InlineChatWidget {
158
157
  h('div.followUps.hidden@followUps'),
159
158
  h('div.status@status', [
160
159
  h('div.label.info.hidden@infoLabel'),
161
- h('div.actions.hidden@extraToolbar'),
162
160
  h('div.actions.hidden@statusToolbar'),
163
161
  h('div.label.status.hidden@statusLabel'),
164
162
  h('div.actions.hidden@feedbackToolbar'),
@@ -173,12 +171,14 @@ let InlineChatWidget = class InlineChatWidget {
173
171
  this._onDidChangeLayout = this._store.add(( new MicrotaskEmitter()));
174
172
  this._onDidChangeInput = this._store.add(( new Emitter()));
175
173
  this.onDidChangeInput = this._onDidChangeInput.event;
174
+ this._onRequestWithoutIntentDetection = this._store.add(( new Emitter()));
175
+ this.onRequestWithoutIntentDetection = this._onRequestWithoutIntentDetection.event;
176
176
  this._isLayouting = false;
177
177
  this._expansionState = ExpansionState.NOT_CROPPED;
178
178
  this._slashCommandDetails = [];
179
179
  this._chatMessageDisposables = this._store.add(( new DisposableStore()));
180
180
  this._followUpDisposables = this._store.add(( new DisposableStore()));
181
- this._extraButtonsCleanup = this._store.add(( new MutableDisposable()));
181
+ this._slashCommandUsedDisposables = this._store.add(( new DisposableStore()));
182
182
  const codeEditorWidgetOptions = {
183
183
  isSimpleWidget: true,
184
184
  contributions: EditorExtensionsRegistry.getSomeEditorContributions([
@@ -270,13 +270,16 @@ let InlineChatWidget = class InlineChatWidget {
270
270
  togglePlaceholder();
271
271
  this._slashCommandContentWidget = ( new SlashCommandContentWidget(this._inputEditor));
272
272
  this._store.add(this._slashCommandContentWidget);
273
- const toolbar = this._instantiationService.createInstance(MenuWorkbenchToolBar, this._elements.editorToolbar, _options.menuId, {
273
+ this._store.add(this._instantiationService.createInstance(MenuWorkbenchToolBar, this._elements.editorToolbar, _options.menuId, {
274
274
  telemetrySource: 'interactiveEditorWidget-toolbar',
275
275
  toolbarOptions: { primaryGroup: 'main' }
276
- });
277
- this._store.add(toolbar);
276
+ }));
278
277
  this._progressBar = ( new ProgressBar(this._elements.progress));
279
278
  this._store.add(this._progressBar);
279
+ this._store.add(this._instantiationService.createInstance(MenuWorkbenchToolBar, this._elements.widgetToolbar, _options.widgetMenuId, {
280
+ telemetrySource: 'interactiveEditorWidget-toolbar',
281
+ toolbarOptions: { primaryGroup: 'main' }
282
+ }));
280
283
  const workbenchMenubarOptions = {
281
284
  telemetrySource: 'interactiveEditorWidget-toolbar',
282
285
  buttonConfigProvider: action => {
@@ -306,6 +309,7 @@ let InlineChatWidget = class InlineChatWidget {
306
309
  this._store.add(feedbackToolbar);
307
310
  this._previewDiffEditor = ( new Lazy(
308
311
  () => this._store.add(_instantiationService.createInstance(EmbeddedDiffEditorWidget, this._elements.previewDiff, {
312
+ useInlineViewWhenSpaceIsLimited: false,
309
313
  ..._previewEditorEditorOptions,
310
314
  onlyShowAccessibleDiffViewer: this._accessibilityService.isScreenReaderOptimized(),
311
315
  }, { modifiedEditor: codeEditorWidgetOptions, originalEditor: codeEditorWidgetOptions }, parentEditor))
@@ -322,9 +326,6 @@ let InlineChatWidget = class InlineChatWidget {
322
326
  const markdownMessageToolbar = this._instantiationService.createInstance(MenuWorkbenchToolBar, this._elements.messageActions, MENU_INLINE_CHAT_WIDGET_MARKDOWN_MESSAGE, workbenchToolbarOptions);
323
327
  this._store.add(markdownMessageToolbar.onDidChangeMenuItems(() => this._onDidChangeHeight.fire()));
324
328
  this._store.add(markdownMessageToolbar);
325
- this._store.add(addDisposableListener(this._elements.root, EventType.CONTEXT_MENU, async (event) => {
326
- this._onContextMenu(event);
327
- }));
328
329
  this._store.add(this._configurationService.onDidChangeConfiguration(e => {
329
330
  if (e.affectsConfiguration("accessibility.verbosity.inlineChat" )) {
330
331
  this._elements.chatMessageContent.ariaLabel = this._accessibleViewService.getOpenAriaHint("accessibility.verbosity.inlineChat" );
@@ -332,13 +333,6 @@ let InlineChatWidget = class InlineChatWidget {
332
333
  }
333
334
  }));
334
335
  }
335
- _onContextMenu(e) {
336
- const event = ( new StandardMouseEvent(getWindow(this._elements.root), e));
337
- this._contextMenuService.showContextMenu({
338
- menuId: MENU_INLINE_CHAT_WIDGET_TOGGLE,
339
- getAnchor: () => event,
340
- });
341
- }
342
336
  _updateAriaLabel() {
343
337
  if (!this._accessibilityService.isScreenReaderOptimized()) {
344
338
  return;
@@ -368,22 +362,25 @@ let InlineChatWidget = class InlineChatWidget {
368
362
  get domNode() {
369
363
  return this._elements.root;
370
364
  }
371
- layout(dim) {
365
+ layout(_dim) {
372
366
  this._isLayouting = true;
373
367
  try {
374
- const innerEditorWidth = dim.width - ((getTotalWidth(this._elements.editorToolbar) + 8) );
375
- dim = ( new Dimension(innerEditorWidth, dim.height));
368
+ const widgetToolbarWidth = getTotalWidth(this._elements.widgetToolbar);
369
+ const editorToolbarWidth = getTotalWidth(this._elements.editorToolbar) + 8 ;
370
+ const innerEditorWidth = _dim.width - editorToolbarWidth - widgetToolbarWidth;
371
+ const dim = ( new Dimension(innerEditorWidth, _dim.height));
376
372
  if (!this._lastDim || !Dimension.equals(this._lastDim, dim)) {
377
373
  this._lastDim = dim;
378
374
  this._inputEditor.layout(( new Dimension(innerEditorWidth, this._inputEditor.getContentHeight())));
379
375
  this._elements.placeholder.style.width = `${innerEditorWidth }px`;
380
376
  if (this._previewDiffEditor.hasValue) {
381
377
  const previewDiffDim = ( new Dimension(
382
- dim.width,
378
+ _dim.width - 12,
383
379
  Math.min(300, Math.max(0, this._previewDiffEditor.value.getContentHeight()))
384
380
  ));
385
- this._previewDiffEditor.value.layout(previewDiffDim);
381
+ this._elements.previewDiff.style.width = `${previewDiffDim.width}px`;
386
382
  this._elements.previewDiff.style.height = `${previewDiffDim.height}px`;
383
+ this._previewDiffEditor.value.layout(previewDiffDim);
387
384
  }
388
385
  if (this._previewCreateEditor.hasValue) {
389
386
  const previewCreateDim = ( new Dimension(
@@ -408,19 +405,22 @@ let InlineChatWidget = class InlineChatWidget {
408
405
  getHeight() {
409
406
  const base = getTotalHeight(this._elements.progress) + getTotalHeight(this._elements.status);
410
407
  const editorHeight = this._inputEditor.getContentHeight() + 12 ;
408
+ const detectedIntentHeight = getTotalHeight(this._elements.detectedIntent);
411
409
  const followUpsHeight = getTotalHeight(this._elements.followUps);
412
410
  const chatResponseHeight = getTotalHeight(this._elements.chatMessage);
413
411
  const previewDiffHeight = this._previewDiffEditor.hasValue && this._previewDiffEditor.value.getModel() ? 12 + Math.min(300, Math.max(0, this._previewDiffEditor.value.getContentHeight())) : 0;
414
412
  const previewCreateTitleHeight = getTotalHeight(this._elements.previewCreateTitle);
415
413
  const previewCreateHeight = this._previewCreateEditor.hasValue && this._previewCreateEditor.value.getModel() ? 18 + Math.min(300, Math.max(0, this._previewCreateEditor.value.getContentHeight())) : 0;
416
- return base + editorHeight + followUpsHeight + chatResponseHeight + previewDiffHeight + previewCreateTitleHeight + previewCreateHeight + 18 + 8 ;
414
+ return base + editorHeight + detectedIntentHeight + followUpsHeight + chatResponseHeight + previewDiffHeight + previewCreateTitleHeight + previewCreateHeight + 18 + 8 ;
417
415
  }
418
416
  updateProgress(show) {
419
417
  if (show) {
418
+ this._progressBar.show();
420
419
  this._progressBar.infinite();
421
420
  }
422
421
  else {
423
422
  this._progressBar.stop();
423
+ this._progressBar.hide();
424
424
  }
425
425
  }
426
426
  get value() {
@@ -464,12 +464,6 @@ let InlineChatWidget = class InlineChatWidget {
464
464
  this._elements.infoLabel.classList.toggle('hidden', show);
465
465
  this._onDidChangeHeight.fire();
466
466
  }
467
- setExtraButtons(buttons) {
468
- const bar = this._instantiationService.createInstance(WorkbenchButtonBar, this._elements.extraToolbar, { telemetrySource: 'inlineChat' });
469
- bar.update(buttons);
470
- this._elements.extraToolbar.classList.toggle('hidden', buttons.length === 0);
471
- this._extraButtonsCleanup.value = bar;
472
- }
473
467
  get expansionState() {
474
468
  return this._expansionState;
475
469
  }
@@ -497,6 +491,7 @@ let InlineChatWidget = class InlineChatWidget {
497
491
  message.message,
498
492
  sessionModel,
499
493
  undefined,
494
+ undefined,
500
495
  message.requestId,
501
496
  !isIncomplete,
502
497
  false,
@@ -571,15 +566,30 @@ let InlineChatWidget = class InlineChatWidget {
571
566
  if (!details) {
572
567
  return;
573
568
  }
574
- this._elements.infoLabel.classList.toggle('hidden', false);
569
+ this._elements.detectedIntent.classList.toggle('hidden', false);
570
+ this._slashCommandUsedDisposables.clear();
575
571
  const label = ( localizeWithPath(
576
572
  'vs/workbench/contrib/inlineChat/browser/inlineChatWidget',
577
573
  'slashCommandUsed',
578
- "Using {0} to generate response...",
574
+ "Using {0} to generate response ([[re-run without]])",
579
575
  `\`\`/${details.command}\`\``
580
576
  ));
581
- const e = renderFormattedText(label, { inline: true, renderCodeSegments: true, className: 'slash-command-pill' });
582
- reset(this._elements.infoLabel, e);
577
+ const usingSlashCommandText = renderFormattedText(label, {
578
+ inline: true,
579
+ renderCodeSegments: true,
580
+ className: 'slash-command-pill',
581
+ actionHandler: {
582
+ callback: (content) => {
583
+ if (content !== '0') {
584
+ return;
585
+ }
586
+ this._elements.detectedIntent.classList.toggle('hidden', true);
587
+ this._onRequestWithoutIntentDetection.fire();
588
+ },
589
+ disposables: this._slashCommandUsedDisposables,
590
+ }
591
+ });
592
+ reset(this._elements.detectedIntent, usingSlashCommandText);
583
593
  this._onDidChangeHeight.fire();
584
594
  }
585
595
  updateInfo(message) {
@@ -617,10 +627,11 @@ let InlineChatWidget = class InlineChatWidget {
617
627
  this.updateChatMessage(undefined);
618
628
  this.updateFollowUps(undefined);
619
629
  reset(this._elements.statusLabel);
630
+ this._elements.detectedIntent.classList.toggle('hidden', true);
620
631
  this._elements.statusLabel.classList.toggle('hidden', true);
621
- this._elements.extraToolbar.classList.add('hidden');
622
632
  this._elements.statusToolbar.classList.add('hidden');
623
633
  this._elements.feedbackToolbar.classList.add('hidden');
634
+ this.updateInfo('');
624
635
  this.hideCreatePreview();
625
636
  this.hideEditsPreview();
626
637
  this._onDidChangeHeight.fire();
@@ -631,19 +642,14 @@ let InlineChatWidget = class InlineChatWidget {
631
642
  hasFocus() {
632
643
  return this.domNode.contains(getActiveElement());
633
644
  }
634
- async showEditsPreview(textModel0, textModelN, allEdits) {
645
+ async showEditsPreview(textModel0, textModelN) {
635
646
  this._elements.previewDiff.classList.remove('hidden');
636
- const languageSelection = { languageId: textModel0.getLanguageId(), onDidChange: Event.None };
637
- const modified = this._modelService.createModel(createTextBufferFactoryFromSnapshot(textModel0.createSnapshot()), languageSelection, undefined, true);
638
- for (const edits of allEdits) {
639
- modified.applyEdits(edits, false);
640
- }
641
- const diff = await this._editorWorkerService.computeDiff(textModel0.uri, modified.uri, { ignoreTrimWhitespace: false, maxComputationTimeMs: 5000, computeMoves: false }, 'advanced');
647
+ const diff = await this._editorWorkerService.computeDiff(textModel0.uri, textModelN.uri, { ignoreTrimWhitespace: false, maxComputationTimeMs: 5000, computeMoves: false }, 'advanced');
642
648
  if (!diff || diff.changes.length === 0) {
643
649
  this.hideEditsPreview();
644
650
  return;
645
651
  }
646
- this._previewDiffEditor.value.setModel({ original: textModel0, modified });
652
+ this._previewDiffEditor.value.setModel({ original: textModel0, modified: textModelN });
647
653
  let originalLineRange = diff.changes[0].original;
648
654
  let modifiedLineRange = diff.changes[0].modified;
649
655
  for (let i = 1; i < diff.changes.length; i++) {
@@ -654,14 +660,14 @@ let InlineChatWidget = class InlineChatWidget {
654
660
  const newStartLine = Math.max(1, originalLineRange.startLineNumber - pad);
655
661
  modifiedLineRange = ( new LineRange(newStartLine, modifiedLineRange.endLineNumberExclusive));
656
662
  originalLineRange = ( new LineRange(newStartLine, originalLineRange.endLineNumberExclusive));
657
- const newEndLineModified = Math.min(modifiedLineRange.endLineNumberExclusive + pad, modified.getLineCount());
663
+ const newEndLineModified = Math.min(modifiedLineRange.endLineNumberExclusive + pad, textModelN.getLineCount());
658
664
  modifiedLineRange = ( new LineRange(modifiedLineRange.startLineNumber, newEndLineModified));
659
665
  const newEndLineOriginal = Math.min(originalLineRange.endLineNumberExclusive + pad, textModel0.getLineCount());
660
666
  originalLineRange = ( new LineRange(originalLineRange.startLineNumber, newEndLineOriginal));
661
667
  const hiddenOriginal = invertLineRange(originalLineRange, textModel0);
662
- const hiddenModified = invertLineRange(modifiedLineRange, modified);
663
- this._previewDiffEditor.value.getOriginalEditor().setHiddenAreas(( hiddenOriginal.map(lineRangeAsRange)), 'diff-hidden');
664
- this._previewDiffEditor.value.getModifiedEditor().setHiddenAreas(( hiddenModified.map(lineRangeAsRange)), 'diff-hidden');
668
+ const hiddenModified = invertLineRange(modifiedLineRange, textModelN);
669
+ this._previewDiffEditor.value.getOriginalEditor().setHiddenAreas(( hiddenOriginal.map(lr => asRange(lr, textModel0))), 'diff-hidden');
670
+ this._previewDiffEditor.value.getModifiedEditor().setHiddenAreas(( hiddenModified.map(lr => asRange(lr, textModelN))), 'diff-hidden');
665
671
  this._previewDiffEditor.value.revealLine(modifiedLineRange.startLineNumber, 1 );
666
672
  this._onDidChangeHeight.fire();
667
673
  }
@@ -727,6 +733,7 @@ let InlineChatWidget = class InlineChatWidget {
727
733
  const decorations = this._inputEditor.createDecorationsCollection();
728
734
  const updateSlashDecorations = () => {
729
735
  this._slashCommandContentWidget.hide();
736
+ this._elements.detectedIntent.classList.toggle('hidden', true);
730
737
  const newDecorations = [];
731
738
  for (const command of commands) {
732
739
  const withSlash = `/${command.command}`;
@@ -773,12 +780,11 @@ InlineChatWidget = InlineChatWidget_1 = ( __decorate([
773
780
  ( __param(6, IInstantiationService)),
774
781
  ( __param(7, IAccessibilityService)),
775
782
  ( __param(8, IConfigurationService)),
776
- ( __param(9, IContextMenuService)),
777
- ( __param(10, IAccessibleViewService)),
778
- ( __param(11, IEditorWorkerService)),
779
- ( __param(12, ILogService)),
780
- ( __param(13, ITextModelService)),
781
- ( __param(14, IChatAgentService))
783
+ ( __param(9, IAccessibleViewService)),
784
+ ( __param(10, IEditorWorkerService)),
785
+ ( __param(11, ILogService)),
786
+ ( __param(12, ITextModelService)),
787
+ ( __param(13, IChatAgentService))
782
788
  ], InlineChatWidget));
783
789
  let InlineChatZoneWidget = class InlineChatZoneWidget extends ZoneWidget {
784
790
  constructor(editor, _instaService, contextKeyService) {
@@ -791,7 +797,8 @@ let InlineChatZoneWidget = class InlineChatZoneWidget extends ZoneWidget {
791
797
  this._ctxCursorPosition.reset();
792
798
  }));
793
799
  this.widget = this._instaService.createInstance(InlineChatWidget, this.editor, {
794
- menuId: MENU_INLINE_CHAT_WIDGET,
800
+ menuId: MENU_INLINE_CHAT_INPUT,
801
+ widgetMenuId: MENU_INLINE_CHAT_WIDGET,
795
802
  statusMenuId: MENU_INLINE_CHAT_WIDGET_STATUS,
796
803
  feedbackMenuId: MENU_INLINE_CHAT_WIDGET_FEEDBACK
797
804
  });
@@ -884,10 +891,8 @@ let InlineChatZoneWidget = class InlineChatZoneWidget extends ZoneWidget {
884
891
  const marginWithoutIndentation = info.glyphMarginWidth + info.decorationsWidth + info.lineNumbersWidth;
885
892
  this.container.style.marginLeft = `${marginWithoutIndentation}px`;
886
893
  }
887
- setWidgetMargins(position, indentationWidth) {
888
- if (indentationWidth === undefined) {
889
- indentationWidth = this._calculateIndentationWidth(position);
890
- }
894
+ setWidgetMargins(position) {
895
+ const indentationWidth = this._calculateIndentationWidth(position);
891
896
  if (this._indentationWidth === indentationWidth) {
892
897
  return;
893
898
  }
@@ -1,5 +1,8 @@
1
+ import { EditOperation } from '../../../../editor/common/core/editOperation.js';
1
2
  import { LineRange } from '../../../../editor/common/core/lineRange.js';
2
3
  import { Range } from '../../../../editor/common/core/range.js';
4
+ import { AsyncIterableSource } from '../../../../base/common/async.js';
5
+ import { getNWords } from '../../chat/common/chatWordCounter.js';
3
6
  function invertLineRange(range, model) {
4
7
  if (range.isEmpty) {
5
8
  return [];
@@ -13,7 +16,72 @@ function invertLineRange(range, model) {
13
16
  }
14
17
  return result.filter(r => !r.isEmpty);
15
18
  }
16
- function lineRangeAsRange(r) {
17
- return ( new Range(r.startLineNumber, 1, r.endLineNumberExclusive - 1, 1));
19
+ function asRange(lineRange, model) {
20
+ return lineRange.isEmpty
21
+ ? ( new Range(
22
+ lineRange.startLineNumber,
23
+ 1,
24
+ lineRange.startLineNumber,
25
+ model.getLineLength(lineRange.startLineNumber)
26
+ ))
27
+ : ( new Range(
28
+ lineRange.startLineNumber,
29
+ 1,
30
+ lineRange.endLineNumberExclusive - 1,
31
+ model.getLineLength(lineRange.endLineNumberExclusive - 1)
32
+ ));
18
33
  }
19
- export { invertLineRange, lineRangeAsRange };
34
+ async function performAsyncTextEdit(model, edit, progress, obs) {
35
+ const [id] = model.deltaDecorations([], [{
36
+ range: edit.range,
37
+ options: {
38
+ description: 'asyncTextEdit',
39
+ stickiness: 0
40
+ }
41
+ }]);
42
+ let first = true;
43
+ for await (const part of edit.newText) {
44
+ if (model.isDisposed()) {
45
+ break;
46
+ }
47
+ const range = model.getDecorationRange(id);
48
+ if (!range) {
49
+ throw new Error('FAILED to perform async replace edit because the anchor decoration was removed');
50
+ }
51
+ const edit = first
52
+ ? EditOperation.replace(range, part)
53
+ : EditOperation.insert(range.getEndPosition(), part);
54
+ obs?.start();
55
+ model.pushEditOperations(null, [edit], (undoEdits) => {
56
+ progress?.report(undoEdits);
57
+ return null;
58
+ });
59
+ obs?.stop();
60
+ first = false;
61
+ }
62
+ }
63
+ function asProgressiveEdit(interval, edit, wordsPerSec, token) {
64
+ wordsPerSec = Math.max(10, wordsPerSec);
65
+ const stream = ( new AsyncIterableSource());
66
+ let newText = edit.text ?? '';
67
+ interval.cancelAndSet(() => {
68
+ const r = getNWords(newText, 1);
69
+ stream.emitOne(r.value);
70
+ newText = newText.substring(r.value.length);
71
+ if (r.isFullString) {
72
+ interval.cancel();
73
+ stream.resolve();
74
+ d.dispose();
75
+ }
76
+ }, 1000 / wordsPerSec);
77
+ const d = token.onCancellationRequested(() => {
78
+ interval.cancel();
79
+ stream.resolve();
80
+ d.dispose();
81
+ });
82
+ return {
83
+ range: edit.range,
84
+ newText: stream.asyncIterable
85
+ };
86
+ }
87
+ export { asProgressiveEdit, asRange, invertLineRange, performAsyncTextEdit };
@@ -9,7 +9,6 @@ import { Extensions } from '../../../common/configuration.js';
9
9
  const IInlineChatService = ( createDecorator('IInlineChatService'));
10
10
  const INLINE_CHAT_ID = 'interactiveEditor';
11
11
  const INTERACTIVE_EDITOR_ACCESSIBILITY_HELP_ID = 'interactiveEditorAccessiblityHelp';
12
- const INLINE_CHAT_DECORATIONS_ID = 'interactiveEditorDecorations';
13
12
  const CTX_INLINE_CHAT_HAS_PROVIDER = ( new RawContextKey('inlineChatHasProvider', false, ( localizeWithPath(
14
13
  'vs/workbench/contrib/inlineChat/common/inlineChat',
15
14
  'inlineChatHasProvider',
@@ -80,11 +79,15 @@ const CTX_INLINE_CHAT_LAST_RESPONSE_TYPE = ( new RawContextKey('inlineChatLastRe
80
79
  'inlineChatResponseType',
81
80
  "What type was the last response of the current interactive editor session"
82
81
  ))));
83
- const CTX_INLINE_CHAT_RESPONSE_TYPES = ( new RawContextKey('inlineChatResponseTypes', undefined, ( localizeWithPath(
84
- 'vs/workbench/contrib/inlineChat/common/inlineChat',
82
+ const CTX_INLINE_CHAT_RESPONSE_TYPES = ( new RawContextKey(
85
83
  'inlineChatResponseTypes',
86
- "What type was the responses have been receieved"
87
- ))));
84
+ "empty" ,
85
+ ( localizeWithPath(
86
+ 'vs/workbench/contrib/inlineChat/common/inlineChat',
87
+ 'inlineChatResponseTypes',
88
+ "What type was the responses have been receieved"
89
+ ))
90
+ ));
88
91
  const CTX_INLINE_CHAT_DID_EDIT = ( new RawContextKey('inlineChatDidEdit', undefined, ( localizeWithPath(
89
92
  'vs/workbench/contrib/inlineChat/common/inlineChat',
90
93
  'inlineChatDidEdit',
@@ -121,16 +124,15 @@ const CTX_INLINE_CHAT_CHANGE_SHOWS_DIFF = ( new RawContextKey('inlineChatChangeS
121
124
  "Whether the current change showing a diff"
122
125
  ))));
123
126
  const CTX_INLINE_CHAT_EDIT_MODE = ( new RawContextKey('config.inlineChat.mode', "live" ));
124
- const CTX_INLINE_CHAT_TOOLBAR_ICON_ENABLED = ( new RawContextKey('config.inlineChat.showToolbarIcon', false));
125
- const ACTION_ACCEPT_CHANGES = 'interactive.acceptChanges';
127
+ const ACTION_ACCEPT_CHANGES = 'inlineChat.acceptChanges';
126
128
  const ACTION_REGENERATE_RESPONSE = 'inlineChat.regenerate';
127
129
  const ACTION_VIEW_IN_CHAT = 'inlineChat.viewInChat';
130
+ const MENU_INLINE_CHAT_INPUT = MenuId.for('inlineChatInput');
128
131
  const MENU_INLINE_CHAT_WIDGET = MenuId.for('inlineChatWidget');
129
132
  const MENU_INLINE_CHAT_WIDGET_MARKDOWN_MESSAGE = MenuId.for('inlineChatWidget.markdownMessage');
130
133
  const MENU_INLINE_CHAT_WIDGET_STATUS = MenuId.for('inlineChatWidget.status');
131
134
  const MENU_INLINE_CHAT_WIDGET_FEEDBACK = MenuId.for('inlineChatWidget.feedback');
132
135
  const MENU_INLINE_CHAT_WIDGET_DISCARD = MenuId.for('inlineChatWidget.undo');
133
- const MENU_INLINE_CHAT_WIDGET_TOGGLE = MenuId.for('inlineChatWidget.toggle');
134
136
  registerColor('inlineChat.background', { dark: editorWidgetBackground, light: editorWidgetBackground, hcDark: editorWidgetBackground, hcLight: editorWidgetBackground }, ( localizeWithPath(
135
137
  'vs/workbench/contrib/inlineChat/common/inlineChat',
136
138
  'inlineChat.background',
@@ -176,11 +178,21 @@ const inlineChatDiffInserted = registerColor('inlineChatDiff.inserted', { dark:
176
178
  'inlineChatDiff.inserted',
177
179
  "Background color of inserted text in the interactive editor input"
178
180
  )));
181
+ const overviewRulerInlineChatDiffInserted = registerColor('editorOverviewRuler.inlineChatInserted', { dark: ( transparent(diffInserted, 0.6)), light: ( transparent(diffInserted, 0.8)), hcDark: ( transparent(diffInserted, 0.6)), hcLight: ( transparent(diffInserted, 0.8)) }, ( localizeWithPath(
182
+ 'vs/workbench/contrib/inlineChat/common/inlineChat',
183
+ 'editorOverviewRuler.inlineChatInserted',
184
+ 'Overview ruler marker color for inline chat inserted content.'
185
+ )));
179
186
  const inlineChatDiffRemoved = registerColor('inlineChatDiff.removed', { dark: ( transparent(diffRemoved, .5)), light: ( transparent(diffRemoved, .5)), hcDark: ( transparent(diffRemoved, .5)), hcLight: ( transparent(diffRemoved, .5)) }, ( localizeWithPath(
180
187
  'vs/workbench/contrib/inlineChat/common/inlineChat',
181
188
  'inlineChatDiff.removed',
182
189
  "Background color of removed text in the interactive editor input"
183
190
  )));
191
+ registerColor('editorOverviewRuler.inlineChatRemoved', { dark: ( transparent(diffRemoved, 0.6)), light: ( transparent(diffRemoved, 0.8)), hcDark: ( transparent(diffRemoved, 0.6)), hcLight: ( transparent(diffRemoved, 0.8)) }, ( localizeWithPath(
192
+ 'vs/workbench/contrib/inlineChat/common/inlineChat',
193
+ 'editorOverviewRuler.inlineChatRemoved',
194
+ 'Overview ruler marker color for inline chat removed content.'
195
+ )));
184
196
  ( Registry.as(Extensions.ConfigurationMigration)).registerConfigurationMigrations([{
185
197
  key: 'interactiveEditor.editMode', migrateFn: (value) => {
186
198
  return [['inlineChat.mode', { value: value }]];
@@ -189,11 +201,11 @@ const inlineChatDiffRemoved = registerColor('inlineChatDiff.removed', { dark: (
189
201
  ( Registry.as(Extensions$1.Configuration)).registerConfiguration({
190
202
  id: 'editor',
191
203
  properties: {
192
- 'inlineChat.mode': {
204
+ ["inlineChat.mode" ]: {
193
205
  description: ( localizeWithPath(
194
206
  'vs/workbench/contrib/inlineChat/common/inlineChat',
195
207
  'mode',
196
- "Configure if changes crafted in the interactive editor are applied directly to the document or are previewed first."
208
+ "Configure if changes crafted with inline chat are applied directly to the document or are previewed first."
197
209
  )),
198
210
  default: "livePreview" ,
199
211
  type: 'string',
@@ -212,55 +224,38 @@ const inlineChatDiffRemoved = registerColor('inlineChatDiff.removed', { dark: (
212
224
  ( localizeWithPath(
213
225
  'vs/workbench/contrib/inlineChat/common/inlineChat',
214
226
  'mode.live',
215
- "Changes are applied directly to the document but can be highlighted via inline diffs. Ending a session will keep the changes."
227
+ "Changes are applied directly to the document, can be highlighted via inline diffs, and accepted/discarded by hunks. Ending a session will keep the changes."
216
228
  )),
217
- ]
229
+ ],
230
+ tags: ['experimental']
218
231
  },
219
- 'inlineChat.showDiff': {
232
+ ["inlineChat.finishOnType" ]: {
220
233
  description: ( localizeWithPath(
221
234
  'vs/workbench/contrib/inlineChat/common/inlineChat',
222
- 'showDiff',
223
- "Enable/disable showing the diff when edits are generated. Works only with inlineChat.mode equal to live or livePreview."
235
+ 'finishOnType',
236
+ "Whether to finish an inline chat session when typing outside of changed regions."
224
237
  )),
225
- default: true,
238
+ default: false,
226
239
  type: 'boolean'
227
240
  },
228
- 'inlineChat.showGutterIcon': {
241
+ ["inlineChat.acceptedOrDiscardBeforeSave" ]: {
229
242
  description: ( localizeWithPath(
230
243
  'vs/workbench/contrib/inlineChat/common/inlineChat',
231
- 'showGutterIcon',
232
- "Controls when the gutter icon for spawning inline chat is shown."
244
+ 'acceptedOrDiscardBeforeSave',
245
+ "Whether pending inline chat sessions prevent saving."
233
246
  )),
234
- default: "never" ,
235
- type: 'string',
236
- enum: ["always" , "mouseover" , "never" ],
237
- markdownEnumDescriptions: [
238
- ( localizeWithPath(
239
- 'vs/workbench/contrib/inlineChat/common/inlineChat',
240
- 'showGutterIcon.always',
241
- "Always show the gutter icon."
242
- )),
243
- ( localizeWithPath(
244
- 'vs/workbench/contrib/inlineChat/common/inlineChat',
245
- 'showGutterIcon.mouseover',
246
- "Show the gutter icon when the mouse is over the icon."
247
- )),
248
- ( localizeWithPath(
249
- 'vs/workbench/contrib/inlineChat/common/inlineChat',
250
- 'showGutterIcon.never',
251
- "Never show the gutter icon."
252
- )),
253
- ]
247
+ default: true,
248
+ type: 'boolean'
254
249
  },
255
- 'inlineChat.showToolbarIcon': {
250
+ ["inlineChat.holdToSpeech" ]: {
256
251
  description: ( localizeWithPath(
257
252
  'vs/workbench/contrib/inlineChat/common/inlineChat',
258
- 'showToolbarIcon',
259
- "Controls whether the toolbar icon spawning the inline chat is enabled."
253
+ 'holdToSpeech',
254
+ "Whether holding the inline chat keybinding will automatically enable speech recognition."
260
255
  )),
261
- default: false,
256
+ default: true,
262
257
  type: 'boolean'
263
258
  }
264
259
  }
265
260
  });
266
- export { ACTION_ACCEPT_CHANGES, ACTION_REGENERATE_RESPONSE, ACTION_VIEW_IN_CHAT, CTX_INLINE_CHAT_CHANGE_HAS_DIFF, CTX_INLINE_CHAT_CHANGE_SHOWS_DIFF, CTX_INLINE_CHAT_DID_EDIT, CTX_INLINE_CHAT_DOCUMENT_CHANGED, CTX_INLINE_CHAT_EDIT_MODE, CTX_INLINE_CHAT_EMPTY, CTX_INLINE_CHAT_FOCUSED, CTX_INLINE_CHAT_HAS_ACTIVE_REQUEST, CTX_INLINE_CHAT_HAS_PROVIDER, CTX_INLINE_CHAT_HAS_STASHED_SESSION, CTX_INLINE_CHAT_INNER_CURSOR_END, CTX_INLINE_CHAT_INNER_CURSOR_FIRST, CTX_INLINE_CHAT_INNER_CURSOR_LAST, CTX_INLINE_CHAT_INNER_CURSOR_START, CTX_INLINE_CHAT_LAST_FEEDBACK, CTX_INLINE_CHAT_LAST_RESPONSE_TYPE, CTX_INLINE_CHAT_MESSAGE_CROP_STATE, CTX_INLINE_CHAT_OUTER_CURSOR_POSITION, CTX_INLINE_CHAT_RESPONSE_FOCUSED, CTX_INLINE_CHAT_RESPONSE_TYPES, CTX_INLINE_CHAT_SUPPORT_ISSUE_REPORTING, CTX_INLINE_CHAT_TOOLBAR_ICON_ENABLED, CTX_INLINE_CHAT_USER_DID_EDIT, CTX_INLINE_CHAT_VISIBLE, IInlineChatService, INLINE_CHAT_DECORATIONS_ID, INLINE_CHAT_ID, INTERACTIVE_EDITOR_ACCESSIBILITY_HELP_ID, MENU_INLINE_CHAT_WIDGET, MENU_INLINE_CHAT_WIDGET_DISCARD, MENU_INLINE_CHAT_WIDGET_FEEDBACK, MENU_INLINE_CHAT_WIDGET_MARKDOWN_MESSAGE, MENU_INLINE_CHAT_WIDGET_STATUS, MENU_INLINE_CHAT_WIDGET_TOGGLE, inlineChatDiffInserted, inlineChatDiffRemoved, inlineChatRegionHighlight };
261
+ export { ACTION_ACCEPT_CHANGES, ACTION_REGENERATE_RESPONSE, ACTION_VIEW_IN_CHAT, CTX_INLINE_CHAT_CHANGE_HAS_DIFF, CTX_INLINE_CHAT_CHANGE_SHOWS_DIFF, CTX_INLINE_CHAT_DID_EDIT, CTX_INLINE_CHAT_DOCUMENT_CHANGED, CTX_INLINE_CHAT_EDIT_MODE, CTX_INLINE_CHAT_EMPTY, CTX_INLINE_CHAT_FOCUSED, CTX_INLINE_CHAT_HAS_ACTIVE_REQUEST, CTX_INLINE_CHAT_HAS_PROVIDER, CTX_INLINE_CHAT_HAS_STASHED_SESSION, CTX_INLINE_CHAT_INNER_CURSOR_END, CTX_INLINE_CHAT_INNER_CURSOR_FIRST, CTX_INLINE_CHAT_INNER_CURSOR_LAST, CTX_INLINE_CHAT_INNER_CURSOR_START, CTX_INLINE_CHAT_LAST_FEEDBACK, CTX_INLINE_CHAT_LAST_RESPONSE_TYPE, CTX_INLINE_CHAT_MESSAGE_CROP_STATE, CTX_INLINE_CHAT_OUTER_CURSOR_POSITION, CTX_INLINE_CHAT_RESPONSE_FOCUSED, CTX_INLINE_CHAT_RESPONSE_TYPES, CTX_INLINE_CHAT_SUPPORT_ISSUE_REPORTING, CTX_INLINE_CHAT_USER_DID_EDIT, CTX_INLINE_CHAT_VISIBLE, IInlineChatService, INLINE_CHAT_ID, INTERACTIVE_EDITOR_ACCESSIBILITY_HELP_ID, MENU_INLINE_CHAT_INPUT, MENU_INLINE_CHAT_WIDGET, MENU_INLINE_CHAT_WIDGET_DISCARD, MENU_INLINE_CHAT_WIDGET_FEEDBACK, MENU_INLINE_CHAT_WIDGET_MARKDOWN_MESSAGE, MENU_INLINE_CHAT_WIDGET_STATUS, inlineChatDiffInserted, inlineChatDiffRemoved, inlineChatRegionHighlight, overviewRulerInlineChatDiffInserted };
@@ -2,6 +2,7 @@ import { __decorate, __param } from '../../../../../../../external/tslib/tslib.e
2
2
  import { assertFn } from '../../../../base/common/assert.js';
3
3
  import { isEqual } from '../../../../base/common/resources.js';
4
4
  import { isDefined } from '../../../../base/common/types.js';
5
+ import { ITextResourceConfigurationService } from '../../../../editor/common/services/textResourceConfiguration.js';
5
6
  import { localizeWithPath } from '../../../../nls.js';
6
7
  import { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';
7
8
  import { IFileService } from '../../../../platform/files/common/files.js';
@@ -30,8 +31,8 @@ let MergeEditorInput = class MergeEditorInput extends AbstractTextResourceEditor
30
31
  get useWorkingCopy() {
31
32
  return this.configurationService.getValue('mergeEditor.useWorkingCopy') ?? false;
32
33
  }
33
- constructor(base, input1, input2, result, _instaService, editorService, textFileService, labelService, fileService, configurationService, filesConfigurationService) {
34
- super(result, undefined, editorService, textFileService, labelService, fileService, filesConfigurationService);
34
+ constructor(base, input1, input2, result, _instaService, editorService, textFileService, labelService, fileService, configurationService, filesConfigurationService, textResourceConfigurationService) {
35
+ super(result, undefined, editorService, textFileService, labelService, fileService, filesConfigurationService, textResourceConfigurationService);
35
36
  this.base = base;
36
37
  this.input1 = input1;
37
38
  this.input2 = input2;
@@ -145,6 +146,7 @@ MergeEditorInput = MergeEditorInput_1 = ( __decorate([
145
146
  ( __param(7, ILabelService)),
146
147
  ( __param(8, IFileService)),
147
148
  ( __param(9, IConfigurationService)),
148
- ( __param(10, IFilesConfigurationService))
149
+ ( __param(10, IFilesConfigurationService)),
150
+ ( __param(11, ITextResourceConfigurationService))
149
151
  ], MergeEditorInput));
150
152
  export { MergeEditorInput, MergeEditorInputData };
@@ -452,7 +452,7 @@ let WorkspaceMergeEditorInputModel = class WorkspaceMergeEditorInputModel extend
452
452
  checkbox: { label: ( localizeWithPath(
453
453
  'vs/workbench/contrib/mergeEditor/browser/mergeEditorInputModel',
454
454
  'noMoreWarn',
455
- "Don't ask again"
455
+ "Do not ask me again"
456
456
  )) }
457
457
  });
458
458
  if (checkboxChecked) {