@codingame/monaco-vscode-api 2.0.3 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (511) 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 +3 -19
  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/views/emptyView.js +2 -2
  373. package/vscode/src/vs/workbench/contrib/files/browser/views/explorerView.js +34 -17
  374. package/vscode/src/vs/workbench/contrib/files/browser/views/explorerViewer.js +5 -4
  375. package/vscode/src/vs/workbench/contrib/files/browser/views/openEditorsView.js +48 -14
  376. package/vscode/src/vs/workbench/contrib/format/browser/formatActionsMultiple.js +16 -8
  377. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.css.js +1 -1
  378. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +317 -321
  379. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatLivePreviewWidget.js +17 -24
  380. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSavingService.js +3 -0
  381. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSession.js +306 -130
  382. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.js +3 -0
  383. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatStrategies.js +385 -613
  384. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +69 -64
  385. package/vscode/src/vs/workbench/contrib/inlineChat/browser/utils.js +71 -3
  386. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +39 -44
  387. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInput.js +5 -3
  388. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInputModel.js +1 -1
  389. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/findModel.js +1 -1
  390. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/coreActions.js +4 -4
  391. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/foldingController.js +3 -3
  392. package/vscode/src/vs/workbench/contrib/notebook/browser/media/notebookCellChat.css.js +1 -1
  393. package/vscode/src/vs/workbench/contrib/notebook/browser/media/notebookEditorStickyScroll.css.js +1 -1
  394. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookEditor.js +38 -7
  395. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.js +36 -8
  396. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookOptions.js +32 -12
  397. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellPart.js +24 -14
  398. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellEditorOptions.js +4 -4
  399. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellStatusPart.js +1 -1
  400. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellToolbarStickyScroll.js +1 -2
  401. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/chat/cellChatActions.js +264 -12
  402. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/chat/cellChatController.js +60 -27
  403. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCell.js +12 -5
  404. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCellExecutionIcon.js +2 -2
  405. package/vscode/src/vs/workbench/contrib/notebook/browser/view/notebookCellList.js +2 -2
  406. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/backLayerWebView.js +12 -9
  407. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/webviewPreloads.js +6 -3
  408. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/notebookViewModelImpl.js +1 -0
  409. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookEditorStickyScroll.js +188 -155
  410. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookKernelView.js +4 -4
  411. package/vscode/src/vs/workbench/contrib/notebook/common/model/notebookCellTextModel.js +10 -3
  412. package/vscode/src/vs/workbench/contrib/notebook/common/notebookCommon.js +16 -33
  413. package/vscode/src/vs/workbench/contrib/notebook/common/notebookEditorInput.js +9 -7
  414. package/vscode/src/vs/workbench/contrib/notebook/common/notebookEditorModel.js +6 -2
  415. package/vscode/src/vs/workbench/contrib/notebook/common/notebookKernelService.js +2 -1
  416. package/vscode/src/vs/workbench/contrib/remote/browser/remoteExplorer.js +29 -14
  417. package/vscode/src/vs/workbench/contrib/remote/browser/tunnelView.js +15 -3
  418. package/vscode/src/vs/workbench/contrib/remote/browser/urlFinder.js +2 -2
  419. package/vscode/src/vs/workbench/contrib/scm/browser/dirtydiffDecorator.js +22 -6
  420. package/vscode/src/vs/workbench/contrib/search/browser/searchActionsFind.js +1 -1
  421. package/vscode/src/vs/workbench/contrib/search/browser/searchModel.js +16 -17
  422. package/vscode/src/vs/workbench/contrib/snippets/browser/snippetCompletionProvider.js +78 -50
  423. package/vscode/src/vs/workbench/contrib/speech/common/speechService.js +15 -1
  424. package/vscode/src/vs/workbench/contrib/terminal/browser/terminal.d.ts +25 -45
  425. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalEditorInput.js +12 -4
  426. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalIcon.js +2 -1
  427. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/decorationAddon.js +33 -36
  428. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/decorationStyles.js +1 -1
  429. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/markNavigationAddon.js +3 -0
  430. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.d.ts +5 -8
  431. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.js +15 -27
  432. package/vscode/src/vs/workbench/contrib/terminal/common/terminalColorRegistry.js +3 -3
  433. package/vscode/src/vs/workbench/contrib/testing/common/testCoverage.js +38 -22
  434. package/vscode/src/vs/workbench/contrib/testing/common/testCoverageService.js +5 -2
  435. package/vscode/src/vs/workbench/contrib/testing/common/testProfileService.js +60 -40
  436. package/vscode/src/vs/workbench/contrib/testing/common/testResult.js +2 -2
  437. package/vscode/src/vs/workbench/contrib/testing/common/testResultStorage.js +15 -11
  438. package/vscode/src/vs/workbench/contrib/testing/common/testService.js +26 -1
  439. package/vscode/src/vs/workbench/contrib/testing/common/testTypes.js +24 -23
  440. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedService.js +1 -1
  441. package/vscode/src/vs/workbench/services/authentication/browser/authenticationService.js +124 -26
  442. package/vscode/src/vs/workbench/services/authentication/common/authentication.d.ts +68 -0
  443. package/vscode/src/vs/workbench/services/auxiliaryWindow/browser/auxiliaryWindowService.js +76 -36
  444. package/vscode/src/vs/workbench/services/configurationResolver/common/configurationResolver.js +1 -0
  445. package/vscode/src/vs/workbench/services/configurationResolver/common/variableResolver.js +1 -0
  446. package/vscode/src/vs/workbench/services/editor/browser/editorService.js +15 -3
  447. package/vscode/src/vs/workbench/services/editor/common/editorGroupFinder.js +10 -1
  448. package/vscode/src/vs/workbench/services/editor/common/editorGroupsService.d.ts +51 -43
  449. package/vscode/src/vs/workbench/services/editor/common/editorService.d.ts +13 -8
  450. package/vscode/src/vs/workbench/services/editor/common/editorService.js +2 -1
  451. package/vscode/src/vs/workbench/services/extensionManagement/browser/extensionBisect.js +10 -10
  452. package/vscode/src/vs/workbench/services/extensions/browser/extensionUrlHandler.js +8 -8
  453. package/vscode/src/vs/workbench/services/extensions/common/extensionsApiProposals.js +7 -7
  454. package/vscode/src/vs/workbench/services/extensions/common/rpcProtocol.js +1 -0
  455. package/vscode/src/vs/workbench/services/filesConfiguration/common/filesConfigurationService.d.ts +29 -9
  456. package/vscode/src/vs/workbench/services/filesConfiguration/common/filesConfigurationService.js +160 -63
  457. package/vscode/src/vs/workbench/services/host/browser/host.d.ts +8 -0
  458. package/vscode/src/vs/workbench/services/keybinding/common/keybindingEditing.js +60 -72
  459. package/vscode/src/vs/workbench/services/layout/browser/layoutService.d.ts +0 -4
  460. package/vscode/src/vs/workbench/services/notebook/common/notebookDocumentService.js +56 -0
  461. package/vscode/src/vs/workbench/services/output/common/output.js +2 -2
  462. package/vscode/src/vs/workbench/services/preferences/browser/keybindingsEditorInput.js +10 -0
  463. package/vscode/src/vs/workbench/services/preferences/common/preferencesEditorInput.js +10 -0
  464. package/vscode/src/vs/workbench/services/remote/common/remoteExplorerService.js +2 -1
  465. package/vscode/src/vs/workbench/services/textfile/common/textFileEditorModel.js +5 -4
  466. package/vscode/src/vs/workbench/services/untitled/common/untitledTextEditorInput.js +21 -8
  467. package/vscode/src/vs/workbench/services/untitled/common/untitledTextEditorService.d.ts +4 -0
  468. package/vscode/src/vs/workbench/services/untitled/common/untitledTextEditorService.js +3 -0
  469. package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfile.js +4 -4
  470. package/vscode/src/vs/workbench/{browser/parts/views → services/views/browser}/viewsService.js +20 -15
  471. package/vscode/src/vs/workbench/services/views/common/viewsService.d.ts +34 -0
  472. package/vscode/src/vs/workbench/services/{hover/browser/hover.js → views/common/viewsService.js} +2 -2
  473. package/vscode/src/vs/workbench/services/workingCopy/common/storedFileWorkingCopy.d.ts +6 -1
  474. package/vscode/src/vs/workbench/services/workingCopy/common/storedFileWorkingCopy.js +5 -2
  475. package/vscode/src/vs/workbench/services/workspaces/common/workspaceTrust.js +1 -0
  476. package/vscode-dts/vscode.proposed.chatAgents2.d.ts +112 -47
  477. package/vscode-dts/vscode.proposed.chatAgents2Additions.d.ts +68 -9
  478. package/vscode-dts/{vscode.proposed.scmInputBoxActionButton.d.ts → vscode.proposed.codeActionRanges.d.ts} +8 -10
  479. package/vscode-dts/{vscode.proposed.readonlyMessage.d.ts → vscode.proposed.commentReactor.d.ts} +3 -4
  480. package/vscode-dts/vscode.proposed.contribMultiDiffEditorMenus.d.ts +6 -0
  481. package/vscode-dts/vscode.proposed.contribSourceControlHistoryItemGroupMenu.d.ts +8 -0
  482. package/vscode-dts/vscode.proposed.contribSourceControlHistoryItemMenu.d.ts +8 -0
  483. package/vscode-dts/vscode.proposed.debugVisualization.d.ts +100 -0
  484. package/vscode-dts/vscode.proposed.defaultChatAgent.d.ts +1 -1
  485. package/vscode-dts/vscode.proposed.interactive.d.ts +13 -16
  486. package/vscode-dts/vscode.proposed.notebookVariableProvider.d.ts +4 -1
  487. package/vscode-dts/vscode.proposed.resolvers.d.ts +4 -0
  488. package/vscode-dts/vscode.proposed.scmHistoryProvider.d.ts +4 -10
  489. package/vscode-dts/vscode.proposed.scmMultiDiffEditor.d.ts +34 -0
  490. package/vscode-dts/vscode.proposed.speech.d.ts +17 -3
  491. package/vscode-dts/vscode.proposed.testCoverage.d.ts +7 -1
  492. package/vscode-dts/vscode.proposed.tunnelFactory.d.ts +4 -0
  493. package/vscode/src/vs/editor/browser/widget/diffEditor/colors.js +0 -17
  494. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorDecorations.js +0 -231
  495. package/vscode/src/vs/editor/browser/widget/diffEditor/outlineModel.js +0 -299
  496. package/vscode/src/vs/editor/browser/widget/diffEditor/workerBasedDocumentDiffProvider.js +0 -101
  497. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/suggestAddon.js +0 -390
  498. package/vscode/src/vs/workbench/services/editor/common/editorGroupColumn.d.ts +0 -10
  499. package/vscode/src/vs/workbench/services/suggest/browser/media/suggest.css.js +0 -4
  500. package/vscode/src/vs/workbench/services/suggest/browser/simpleCompletionItem.d.ts +0 -28
  501. package/vscode/src/vs/workbench/services/suggest/browser/simpleCompletionItem.js +0 -10
  502. package/vscode/src/vs/workbench/services/suggest/browser/simpleCompletionModel.d.ts +0 -30
  503. package/vscode/src/vs/workbench/services/suggest/browser/simpleCompletionModel.js +0 -98
  504. package/vscode/src/vs/workbench/services/suggest/browser/simpleSuggestWidget.d.ts +0 -10
  505. package/vscode/src/vs/workbench/services/suggest/browser/simpleSuggestWidget.js +0 -428
  506. package/vscode/src/vs/workbench/services/suggest/browser/simpleSuggestWidgetRenderer.js +0 -83
  507. package/vscode-dts/vscode.proposed.chatVariables.d.ts +0 -39
  508. package/vscode-dts/vscode.proposed.interactiveUserActions.d.ts +0 -77
  509. package/vscode-dts/vscode.proposed.saveEditor.d.ts +0 -35
  510. package/vscode-dts/vscode.proposed.scmInputBoxValueProvider.d.ts +0 -25
  511. package/vscode-dts/vscode.proposed.testingActiveProfile.d.ts +0 -21
@@ -2,6 +2,7 @@ import './lineNumbers.css.js';
2
2
  import { isLinux } from '../../../../base/common/platform.js';
3
3
  import { DynamicViewOverlay } from '../../view/dynamicViewOverlay.js';
4
4
  import { Position } from '../../../common/core/position.js';
5
+ import { Range } from '../../../common/core/range.js';
5
6
  import { registerThemingParticipant } from '../../../../platform/theme/common/themeService.js';
6
7
  import { editorLineNumbers, editorDimmedLineNumber } from '../../../common/core/editorColorRegistry.js';
7
8
  class LineNumbersOverlay extends DynamicViewOverlay {
@@ -66,6 +67,9 @@ class LineNumbersOverlay extends DynamicViewOverlay {
66
67
  onZonesChanged(e) {
67
68
  return true;
68
69
  }
70
+ onDecorationsChanged(e) {
71
+ return e.affectsLineNumber;
72
+ }
69
73
  _getLineRenderLineNumber(viewLineNumber) {
70
74
  const modelPosition = this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(( new Position(viewLineNumber, 1)));
71
75
  if (modelPosition.column !== 1) {
@@ -101,29 +105,40 @@ class LineNumbersOverlay extends DynamicViewOverlay {
101
105
  const lineHeightClassName = (isLinux ? (this._lineHeight % 2 === 0 ? ' lh-even' : ' lh-odd') : '');
102
106
  const visibleStartLineNumber = ctx.visibleRange.startLineNumber;
103
107
  const visibleEndLineNumber = ctx.visibleRange.endLineNumber;
108
+ const lineNoDecorations = this._context.viewModel.getDecorationsInViewport(ctx.visibleRange).filter(d => !!d.options.lineNumberClassName);
109
+ lineNoDecorations.sort((a, b) => Range.compareRangesUsingEnds(a.range, b.range));
110
+ let decorationStartIndex = 0;
104
111
  const lineCount = this._context.viewModel.getLineCount();
105
112
  const output = [];
106
113
  for (let lineNumber = visibleStartLineNumber; lineNumber <= visibleEndLineNumber; lineNumber++) {
107
114
  const lineIndex = lineNumber - visibleStartLineNumber;
108
- const renderLineNumber = this._getLineRenderLineNumber(lineNumber);
109
- if (!renderLineNumber) {
115
+ let renderLineNumber = this._getLineRenderLineNumber(lineNumber);
116
+ let extraClassNames = '';
117
+ while (decorationStartIndex < lineNoDecorations.length && lineNoDecorations[decorationStartIndex].range.endLineNumber < lineNumber) {
118
+ decorationStartIndex++;
119
+ }
120
+ for (let i = decorationStartIndex; i < lineNoDecorations.length; i++) {
121
+ const { range, options } = lineNoDecorations[i];
122
+ if (range.startLineNumber <= lineNumber) {
123
+ extraClassNames += ' ' + options.lineNumberClassName;
124
+ }
125
+ }
126
+ if (!renderLineNumber && !extraClassNames) {
110
127
  output[lineIndex] = '';
111
128
  continue;
112
129
  }
113
- let extraClassName = '';
114
130
  if (lineNumber === lineCount && this._context.viewModel.getLineLength(lineNumber) === 0) {
115
131
  if (this._renderFinalNewline === 'off') {
116
- output[lineIndex] = '';
117
- continue;
132
+ renderLineNumber = '';
118
133
  }
119
134
  if (this._renderFinalNewline === 'dimmed') {
120
- extraClassName = ' dimmed-line-number';
135
+ extraClassNames += ' dimmed-line-number';
121
136
  }
122
137
  }
123
138
  if (lineNumber === this._activeLineNumber) {
124
- extraClassName = ' active-line-number';
139
+ extraClassNames += ' active-line-number';
125
140
  }
126
- output[lineIndex] = (`<div class="${LineNumbersOverlay.CLASS_NAME}${lineHeightClassName}${extraClassName}" style="left:${this._lineNumbersLeft}px;width:${this._lineNumbersWidth}px;">${renderLineNumber}</div>`);
141
+ output[lineIndex] = (`<div class="${LineNumbersOverlay.CLASS_NAME}${lineHeightClassName}${extraClassNames}" style="left:${this._lineNumbersLeft}px;width:${this._lineNumbersWidth}px;">${renderLineNumber}</div>`);
127
142
  }
128
143
  this._renderResult = output;
129
144
  }
@@ -74,7 +74,7 @@ class ViewLines extends ViewPart {
74
74
  this._cursorSurroundingLinesStyle = options.get(30 );
75
75
  this._canUseLayerHinting = !options.get(32 );
76
76
  this._viewLineOptions = ( new ViewLineOptions(conf, this._context.theme.type));
77
- PartFingerprints.write(this.domNode, 7 );
77
+ PartFingerprints.write(this.domNode, 8 );
78
78
  this.domNode.setClassName(`view-lines ${MOUSE_CURSOR_TEXT_CSS_CLASS_NAME}`);
79
79
  applyFontInfo(this.domNode, fontInfo);
80
80
  this._maxLineWidth = 0;
@@ -57,6 +57,7 @@ class LinesDecorationsOverlay extends DedupOverlay {
57
57
  d.range.startLineNumber,
58
58
  d.range.endLineNumber,
59
59
  linesDecorationsClassName,
60
+ d.options.linesDecorationsTooltip ?? null,
60
61
  zIndex
61
62
  ));
62
63
  }
@@ -66,6 +67,7 @@ class LinesDecorationsOverlay extends DedupOverlay {
66
67
  d.range.startLineNumber,
67
68
  d.range.startLineNumber,
68
69
  firstLineDecorationClassName,
70
+ d.options.linesDecorationsTooltip ?? null,
69
71
  zIndex
70
72
  ));
71
73
  }
@@ -85,7 +87,12 @@ class LinesDecorationsOverlay extends DedupOverlay {
85
87
  const decorations = toRender[lineIndex].getDecorations();
86
88
  let lineOutput = '';
87
89
  for (const decoration of decorations) {
88
- lineOutput += '<div class="cldr ' + decoration.className + common;
90
+ let addition = '<div class="cldr ' + decoration.className;
91
+ if (decoration.tooltip !== null) {
92
+ addition += '" title="' + decoration.tooltip;
93
+ }
94
+ addition += common;
95
+ lineOutput += addition;
89
96
  }
90
97
  output[lineIndex] = lineOutput;
91
98
  }
@@ -45,7 +45,13 @@ class MarginViewLineDecorationsOverlay extends DedupOverlay {
45
45
  const marginClassName = d.options.marginClassName;
46
46
  const zIndex = d.options.zIndex;
47
47
  if (marginClassName) {
48
- r[rLen++] = ( new DecorationToRender(d.range.startLineNumber, d.range.endLineNumber, marginClassName, zIndex));
48
+ r[rLen++] = ( new DecorationToRender(
49
+ d.range.startLineNumber,
50
+ d.range.endLineNumber,
51
+ marginClassName,
52
+ null,
53
+ zIndex
54
+ ));
49
55
  }
50
56
  }
51
57
  return r;
@@ -815,7 +815,7 @@ class InnerMinimap extends Disposable {
815
815
  this._buffers = null;
816
816
  this._selectionColor = this._theme.getColor(minimapSelection);
817
817
  this._domNode = createFastDomNode(document.createElement('div'));
818
- PartFingerprints.write(this._domNode, 8 );
818
+ PartFingerprints.write(this._domNode, 9 );
819
819
  this._domNode.setClassName(this._getMinimapDomNodeClassName());
820
820
  this._domNode.setPosition('absolute');
821
821
  this._domNode.setAttribute('role', 'presentation');
@@ -1,9 +1,11 @@
1
1
  import './overlayWidgets.css.js';
2
2
  import { createFastDomNode } from '../../../../base/browser/fastDomNode.js';
3
3
  import { ViewPart, PartFingerprints } from '../../view/viewPart.js';
4
+ import { getDomNodePagePosition } from '../../../../base/browser/dom.js';
4
5
  class ViewOverlayWidgets extends ViewPart {
5
- constructor(context) {
6
+ constructor(context, viewDomNode) {
6
7
  super(context);
8
+ this._viewDomNode = viewDomNode;
7
9
  const options = this._context.configuration.options;
8
10
  const layoutInfo = options.get(143 );
9
11
  this._widgets = {};
@@ -12,9 +14,13 @@ class ViewOverlayWidgets extends ViewPart {
12
14
  this._horizontalScrollbarHeight = layoutInfo.horizontalScrollbarHeight;
13
15
  this._editorHeight = layoutInfo.height;
14
16
  this._editorWidth = layoutInfo.width;
17
+ this._viewDomNodeRect = { top: 0, left: 0, width: 0, height: 0 };
15
18
  this._domNode = createFastDomNode(document.createElement('div'));
16
19
  PartFingerprints.write(this._domNode, 4 );
17
20
  this._domNode.setClassName('overlayWidgets');
21
+ this.overflowingOverlayWidgetsDomNode = createFastDomNode(document.createElement('div'));
22
+ PartFingerprints.write(this.overflowingOverlayWidgetsDomNode, 5 );
23
+ this.overflowingOverlayWidgetsDomNode.setClassName('overflowingOverlayWidgets');
18
24
  }
19
25
  dispose() {
20
26
  super.dispose();
@@ -42,7 +48,12 @@ class ViewOverlayWidgets extends ViewPart {
42
48
  };
43
49
  domNode.setPosition('absolute');
44
50
  domNode.setAttribute('widgetId', widget.getId());
45
- this._domNode.appendChild(domNode);
51
+ if (widget.allowEditorOverflow) {
52
+ this.overflowingOverlayWidgetsDomNode.appendChild(domNode);
53
+ }
54
+ else {
55
+ this._domNode.appendChild(domNode);
56
+ }
46
57
  this.setShouldRender();
47
58
  this._updateMaxMinWidth();
48
59
  }
@@ -63,7 +74,7 @@ class ViewOverlayWidgets extends ViewPart {
63
74
  const widgetData = this._widgets[widgetId];
64
75
  const domNode = widgetData.domNode.domNode;
65
76
  delete this._widgets[widgetId];
66
- domNode.parentNode.removeChild(domNode);
77
+ domNode.remove();
67
78
  this.setShouldRender();
68
79
  this._updateMaxMinWidth();
69
80
  }
@@ -100,8 +111,24 @@ class ViewOverlayWidgets extends ViewPart {
100
111
  domNode.setTop(0);
101
112
  domNode.domNode.style.right = '50%';
102
113
  }
114
+ else {
115
+ const { top, left } = widgetData.preference;
116
+ const fixedOverflowWidgets = this._context.configuration.options.get(42 );
117
+ if (fixedOverflowWidgets && widgetData.widget.allowEditorOverflow) {
118
+ const editorBoundingBox = this._viewDomNodeRect;
119
+ domNode.setTop(top + editorBoundingBox.top);
120
+ domNode.setLeft(left + editorBoundingBox.left);
121
+ domNode.setPosition('fixed');
122
+ }
123
+ else {
124
+ domNode.setTop(top);
125
+ domNode.setLeft(left);
126
+ domNode.setPosition('absolute');
127
+ }
128
+ }
103
129
  }
104
130
  prepareRender(ctx) {
131
+ this._viewDomNodeRect = getDomNodePagePosition(this._viewDomNode.domNode);
105
132
  }
106
133
  render(ctx) {
107
134
  this._domNode.setWidth(this._editorWidth);
@@ -91,6 +91,8 @@ let CodeEditorWidget = class CodeEditorWidget extends Disposable {
91
91
  this.onDidChangeModelTokens = this._onDidChangeModelTokens.event;
92
92
  this._onDidChangeConfiguration = this._register(( new Emitter({ deliveryQueue: this._deliveryQueue })));
93
93
  this.onDidChangeConfiguration = this._onDidChangeConfiguration.event;
94
+ this._onWillChangeModel = this._register(( new Emitter({ deliveryQueue: this._deliveryQueue })));
95
+ this.onWillChangeModel = this._onWillChangeModel.event;
94
96
  this._onDidChangeModel = this._register(( new Emitter({ deliveryQueue: this._deliveryQueue })));
95
97
  this.onDidChangeModel = this._onDidChangeModel.event;
96
98
  this._onDidChangeCursorPosition = this._register(( new Emitter({ deliveryQueue: this._deliveryQueue })));
@@ -179,7 +181,7 @@ let CodeEditorWidget = class CodeEditorWidget extends Disposable {
179
181
  this._register(( new EditorModeContext(this, this._contextKeyService, languageFeaturesService)));
180
182
  this._instantiationService = instantiationService.createChild(( new ServiceCollection([IContextKeyService, this._contextKeyService])));
181
183
  this._modelData = null;
182
- this._focusTracker = ( new CodeEditorWidgetFocusTracker(domElement));
184
+ this._focusTracker = ( new CodeEditorWidgetFocusTracker(domElement, this._overflowWidgetsDomNode));
183
185
  this._register(this._focusTracker.onChange(() => {
184
186
  this._editorWidgetFocus.setValue(this._focusTracker.hasFocus());
185
187
  }));
@@ -205,9 +207,9 @@ let CodeEditorWidget = class CodeEditorWidget extends Disposable {
205
207
  action.alias,
206
208
  action.metadata,
207
209
  action.precondition ?? undefined,
208
- () => {
210
+ (args) => {
209
211
  return this._instantiationService.invokeFunction((accessor) => {
210
- return Promise.resolve(action.runEditorCommand(accessor, this, null));
212
+ return Promise.resolve(action.runEditorCommand(accessor, this, args));
211
213
  });
212
214
  },
213
215
  this._contextKeyService
@@ -331,16 +333,17 @@ let CodeEditorWidget = class CodeEditorWidget extends Disposable {
331
333
  if (this._modelData && this._modelData.model === model) {
332
334
  return;
333
335
  }
336
+ const e = {
337
+ oldModelUrl: this._modelData?.model.uri || null,
338
+ newModelUrl: model?.uri || null
339
+ };
340
+ this._onWillChangeModel.fire(e);
334
341
  const hasTextFocus = this.hasTextFocus();
335
342
  const detachedModel = this._detachModel();
336
343
  this._attachModel(model);
337
344
  if (hasTextFocus && this.hasModel()) {
338
345
  this.focus();
339
346
  }
340
- const e = {
341
- oldModelUrl: detachedModel ? detachedModel.uri : null,
342
- newModelUrl: model ? model.uri : null
343
- };
344
347
  this._removeDecorationTypes();
345
348
  this._onDidChangeModel.fire(e);
346
349
  this._postDetachModelCleanup(detachedModel);
@@ -1677,26 +1680,47 @@ class EditorModeContext extends Disposable {
1677
1680
  }
1678
1681
  }
1679
1682
  class CodeEditorWidgetFocusTracker extends Disposable {
1680
- constructor(domElement) {
1683
+ constructor(domElement, overflowWidgetsDomNode) {
1681
1684
  super();
1682
1685
  this._onChange = this._register(( new Emitter()));
1683
1686
  this.onChange = this._onChange.event;
1684
- this._hasFocus = false;
1687
+ this._hadFocus = undefined;
1688
+ this._hasDomElementFocus = false;
1685
1689
  this._domFocusTracker = this._register(trackFocus(domElement));
1690
+ this._overflowWidgetsDomNodeHasFocus = false;
1686
1691
  this._register(this._domFocusTracker.onDidFocus(() => {
1687
- this._hasFocus = true;
1688
- this._onChange.fire(undefined);
1692
+ this._hasDomElementFocus = true;
1693
+ this._update();
1689
1694
  }));
1690
1695
  this._register(this._domFocusTracker.onDidBlur(() => {
1691
- this._hasFocus = false;
1692
- this._onChange.fire(undefined);
1696
+ this._hasDomElementFocus = false;
1697
+ this._update();
1693
1698
  }));
1699
+ if (overflowWidgetsDomNode) {
1700
+ this._overflowWidgetsDomNode = this._register(trackFocus(overflowWidgetsDomNode));
1701
+ this._register(this._overflowWidgetsDomNode.onDidFocus(() => {
1702
+ this._overflowWidgetsDomNodeHasFocus = true;
1703
+ this._update();
1704
+ }));
1705
+ this._register(this._overflowWidgetsDomNode.onDidBlur(() => {
1706
+ this._overflowWidgetsDomNodeHasFocus = false;
1707
+ this._update();
1708
+ }));
1709
+ }
1710
+ }
1711
+ _update() {
1712
+ const focused = this._hasDomElementFocus || this._overflowWidgetsDomNodeHasFocus;
1713
+ if (this._hadFocus !== focused) {
1714
+ this._hadFocus = focused;
1715
+ this._onChange.fire(undefined);
1716
+ }
1694
1717
  }
1695
1718
  hasFocus() {
1696
- return this._hasFocus;
1719
+ return this._hadFocus ?? false;
1697
1720
  }
1698
1721
  refreshState() {
1699
- this._domFocusTracker.refreshState?.();
1722
+ this._domFocusTracker.refreshState();
1723
+ this._overflowWidgetsDomNode?.refreshState?.();
1700
1724
  }
1701
1725
  }
1702
1726
  class EditorDecorationsCollection {
@@ -1,4 +1,4 @@
1
- import n from '../../../../../../../external/rollup-plugin-styles/dist/runtime/inject-css.js';
1
+ import n from '../../../../../../../../external/rollup-plugin-styles/dist/runtime/inject-css.js';
2
2
  var css = ".monaco-diff-editor .diff-review-line-number{color:var(--vscode-editorLineNumber-foreground);display:inline-block;text-align:right}.monaco-diff-editor .diff-review{position:absolute;user-select:none;-webkit-user-select:none;z-index:99}.monaco-diff-editor .diff-review-summary{padding-left:10px}.monaco-diff-editor .diff-review-shadow{box-shadow:var(--vscode-scrollbar-shadow) 0 -6px 6px -6px inset;position:absolute}.monaco-diff-editor .diff-review-row{white-space:pre}.monaco-diff-editor .diff-review-table{display:table;min-width:100%}.monaco-diff-editor .diff-review-row{display:table-row;width:100%}.monaco-diff-editor .diff-review-spacer{display:inline-block;vertical-align:middle;width:10px}.monaco-diff-editor .diff-review-spacer>.codicon{font-size:9px!important}.monaco-diff-editor .diff-review-actions{display:inline-block;position:absolute;right:10px;top:2px;z-index:100}.monaco-diff-editor .diff-review-actions .action-label{height:16px;margin:2px 0;width:16px}.monaco-diff-editor .revertButton{cursor:pointer}";
3
3
  n(css,{});
4
4
  export { css, css as default };
@@ -1,45 +1,45 @@
1
- import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
2
- import { reset, addStandardDisposableListener, addDisposableListener } from '../../../../base/browser/dom.js';
3
- import { createTrustedTypesPolicy } from '../../../../base/browser/trustedTypes.js';
4
- import { ActionBar } from '../../../../base/browser/ui/actionbar/actionbar.js';
5
- import { DomScrollableElement } from '../../../../base/browser/ui/scrollbar/scrollableElement.js';
6
- import { Action } from '../../../../base/common/actions.js';
7
- import { groupAdjacentBy, forEachAdjacent } from '../../../../base/common/arrays.js';
8
- import { Codicon } from '../../../../base/common/codicons.js';
9
- import { Disposable, toDisposable } from '../../../../base/common/lifecycle.js';
10
- import { ThemeIcon } from '../../../../base/common/themables.js';
11
- import { applyFontInfo } from '../../config/domFontInfo.js';
12
- import { applyStyle } from './utils.js';
13
- import { EditorFontLigatures } from '../../../common/config/editorOptions.js';
14
- import { LineRange } from '../../../common/core/lineRange.js';
15
- import { OffsetRange } from '../../../common/core/offsetRange.js';
16
- import { Position } from '../../../common/core/position.js';
17
- import { Range } from '../../../common/core/range.js';
18
- import { LineRangeMapping } from '../../../common/diff/rangeMapping.js';
19
- import { ILanguageService } from '../../../common/languages/language.js';
20
- import { LineTokens } from '../../../common/tokens/lineTokens.js';
21
- import { renderViewLine2, RenderLineInput } from '../../../common/viewLayout/viewLineRenderer.js';
22
- import { ViewLineRenderingData } from '../../../common/viewModel.js';
23
- import { localizeWithPath } from '../../../../nls.js';
24
- import { AudioCue, IAudioCueService } from '../../../../platform/audioCues/browser/audioCueService.js';
25
- import { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';
26
- import { registerIcon } from '../../../../platform/theme/common/iconRegistry.js';
1
+ import { __decorate, __param } from '../../../../../../../../external/tslib/tslib.es6.js';
2
+ import { reset, addStandardDisposableListener, addDisposableListener } from '../../../../../base/browser/dom.js';
3
+ import { createTrustedTypesPolicy } from '../../../../../base/browser/trustedTypes.js';
4
+ import { ActionBar } from '../../../../../base/browser/ui/actionbar/actionbar.js';
5
+ import { DomScrollableElement } from '../../../../../base/browser/ui/scrollbar/scrollableElement.js';
6
+ import { Action } from '../../../../../base/common/actions.js';
7
+ import { groupAdjacentBy, forEachAdjacent } from '../../../../../base/common/arrays.js';
8
+ import { Codicon } from '../../../../../base/common/codicons.js';
9
+ import { Disposable, toDisposable } from '../../../../../base/common/lifecycle.js';
10
+ import { ThemeIcon } from '../../../../../base/common/themables.js';
11
+ import { applyFontInfo } from '../../../config/domFontInfo.js';
12
+ import { applyStyle } from '../utils.js';
13
+ import { EditorFontLigatures } from '../../../../common/config/editorOptions.js';
14
+ import { LineRange } from '../../../../common/core/lineRange.js';
15
+ import { OffsetRange } from '../../../../common/core/offsetRange.js';
16
+ import { Position } from '../../../../common/core/position.js';
17
+ import { Range } from '../../../../common/core/range.js';
18
+ import { LineRangeMapping } from '../../../../common/diff/rangeMapping.js';
19
+ import { ILanguageService } from '../../../../common/languages/language.js';
20
+ import { LineTokens } from '../../../../common/tokens/lineTokens.js';
21
+ import { renderViewLine2, RenderLineInput } from '../../../../common/viewLayout/viewLineRenderer.js';
22
+ import { ViewLineRenderingData } from '../../../../common/viewModel.js';
23
+ import { localizeWithPath } from '../../../../../nls.js';
24
+ import { AudioCue, IAudioCueService } from '../../../../../platform/audioCues/browser/audioCueService.js';
25
+ import { IInstantiationService } from '../../../../../platform/instantiation/common/instantiation.js';
26
+ import { registerIcon } from '../../../../../platform/theme/common/iconRegistry.js';
27
27
  import './accessibleDiffViewer.css.js';
28
- import { derivedWithStore, derived } from '../../../../base/common/observableInternal/derived.js';
29
- import { transaction, observableValue, subtransaction } from '../../../../base/common/observableInternal/base.js';
30
- import { autorun, autorunWithStore } from '../../../../base/common/observableInternal/autorun.js';
28
+ import { derivedWithStore, derived } from '../../../../../base/common/observableInternal/derived.js';
29
+ import { transaction, observableValue, subtransaction } from '../../../../../base/common/observableInternal/base.js';
30
+ import { autorun, autorunWithStore } from '../../../../../base/common/observableInternal/autorun.js';
31
31
  const accessibleDiffViewerInsertIcon = registerIcon('diff-review-insert', Codicon.add, ( localizeWithPath(
32
- 'vs/editor/browser/widget/diffEditor/accessibleDiffViewer',
32
+ 'vs/editor/browser/widget/diffEditor/components/accessibleDiffViewer',
33
33
  'accessibleDiffViewerInsertIcon',
34
34
  'Icon for \'Insert\' in accessible diff viewer.'
35
35
  )));
36
36
  const accessibleDiffViewerRemoveIcon = registerIcon('diff-review-remove', Codicon.remove, ( localizeWithPath(
37
- 'vs/editor/browser/widget/diffEditor/accessibleDiffViewer',
37
+ 'vs/editor/browser/widget/diffEditor/components/accessibleDiffViewer',
38
38
  'accessibleDiffViewerRemoveIcon',
39
39
  'Icon for \'Remove\' in accessible diff viewer.'
40
40
  )));
41
41
  const accessibleDiffViewerCloseIcon = registerIcon('diff-review-close', Codicon.close, ( localizeWithPath(
42
- 'vs/editor/browser/widget/diffEditor/accessibleDiffViewer',
42
+ 'vs/editor/browser/widget/diffEditor/components/accessibleDiffViewer',
43
43
  'accessibleDiffViewerCloseIcon',
44
44
  'Icon for \'Close\' in accessible diff viewer.'
45
45
  )));
@@ -306,7 +306,7 @@ let View = class View extends Disposable {
306
306
  this._actionBar.clear();
307
307
  if (this._model.canClose.read(reader)) {
308
308
  this._actionBar.push(( new Action('diffreview.close', ( localizeWithPath(
309
- 'vs/editor/browser/widget/diffEditor/accessibleDiffViewer',
309
+ 'vs/editor/browser/widget/diffEditor/components/accessibleDiffViewer',
310
310
  'label.close',
311
311
  "Close"
312
312
  )), 'close-diff-review ' + ThemeIcon.asClassName(accessibleDiffViewerCloseIcon), true, async () => _model.close())), { label: false, icon: true });
@@ -358,7 +358,7 @@ let View = class View extends Disposable {
358
358
  container.className = 'diff-review-table';
359
359
  container.setAttribute('role', 'list');
360
360
  container.setAttribute('aria-label', ( localizeWithPath(
361
- 'vs/editor/browser/widget/diffEditor/accessibleDiffViewer',
361
+ 'vs/editor/browser/widget/diffEditor/components/accessibleDiffViewer',
362
362
  'ariaLabel',
363
363
  'Accessible Diff Viewer. Use arrow up and down to navigate.'
364
364
  )));
@@ -386,24 +386,24 @@ let View = class View extends Disposable {
386
386
  const diffIndex = this._model.currentGroupIndex.get();
387
387
  const diffsLength = this._model.groups.get().length;
388
388
  const getAriaLines = (lines) => lines === 0 ? ( localizeWithPath(
389
- 'vs/editor/browser/widget/diffEditor/accessibleDiffViewer',
389
+ 'vs/editor/browser/widget/diffEditor/components/accessibleDiffViewer',
390
390
  'no_lines_changed',
391
391
  "no lines changed"
392
392
  ))
393
393
  : lines === 1 ? ( localizeWithPath(
394
- 'vs/editor/browser/widget/diffEditor/accessibleDiffViewer',
394
+ 'vs/editor/browser/widget/diffEditor/components/accessibleDiffViewer',
395
395
  'one_line_changed',
396
396
  "1 line changed"
397
397
  ))
398
398
  : ( localizeWithPath(
399
- 'vs/editor/browser/widget/diffEditor/accessibleDiffViewer',
399
+ 'vs/editor/browser/widget/diffEditor/components/accessibleDiffViewer',
400
400
  'more_lines_changed',
401
401
  "{0} lines changed",
402
402
  lines
403
403
  ));
404
404
  const originalChangedLinesCntAria = getAriaLines(r.original.length);
405
405
  const modifiedChangedLinesCntAria = getAriaLines(r.modified.length);
406
- header.setAttribute('aria-label', ( localizeWithPath('vs/editor/browser/widget/diffEditor/accessibleDiffViewer', {
406
+ header.setAttribute('aria-label', ( localizeWithPath('vs/editor/browser/widget/diffEditor/components/accessibleDiffViewer', {
407
407
  key: 'header',
408
408
  comment: [
409
409
  'This is the ARIA label for a git diff header.',
@@ -522,7 +522,7 @@ let View = class View extends Disposable {
522
522
  }
523
523
  if (lineContent.length === 0) {
524
524
  lineContent = ( localizeWithPath(
525
- 'vs/editor/browser/widget/diffEditor/accessibleDiffViewer',
525
+ 'vs/editor/browser/widget/diffEditor/components/accessibleDiffViewer',
526
526
  'blankLine',
527
527
  "blank"
528
528
  ));
@@ -532,7 +532,7 @@ let View = class View extends Disposable {
532
532
  case LineType.Unchanged:
533
533
  if (item.originalLineNumber === item.modifiedLineNumber) {
534
534
  ariaLabel = ( localizeWithPath(
535
- 'vs/editor/browser/widget/diffEditor/accessibleDiffViewer',
535
+ 'vs/editor/browser/widget/diffEditor/components/accessibleDiffViewer',
536
536
  { key: 'unchangedLine', comment: ['The placeholders are contents of the line and should not be translated.'] },
537
537
  "{0} unchanged line {1}",
538
538
  lineContent,
@@ -541,7 +541,7 @@ let View = class View extends Disposable {
541
541
  }
542
542
  else {
543
543
  ariaLabel = ( localizeWithPath(
544
- 'vs/editor/browser/widget/diffEditor/accessibleDiffViewer',
544
+ 'vs/editor/browser/widget/diffEditor/components/accessibleDiffViewer',
545
545
  'equalLine',
546
546
  "{0} original line {1} modified line {2}",
547
547
  lineContent,
@@ -552,7 +552,7 @@ let View = class View extends Disposable {
552
552
  break;
553
553
  case LineType.Added:
554
554
  ariaLabel = ( localizeWithPath(
555
- 'vs/editor/browser/widget/diffEditor/accessibleDiffViewer',
555
+ 'vs/editor/browser/widget/diffEditor/components/accessibleDiffViewer',
556
556
  'insertLine',
557
557
  "+ {0} modified line {1}",
558
558
  lineContent,
@@ -561,7 +561,7 @@ let View = class View extends Disposable {
561
561
  break;
562
562
  case LineType.Deleted:
563
563
  ariaLabel = ( localizeWithPath(
564
- 'vs/editor/browser/widget/diffEditor/accessibleDiffViewer',
564
+ 'vs/editor/browser/widget/diffEditor/components/accessibleDiffViewer',
565
565
  'deleteLine',
566
566
  "- {0} original line {1}",
567
567
  lineContent,
@@ -0,0 +1,89 @@
1
+ import { Disposable } from '../../../../../base/common/lifecycle.js';
2
+ import { MovedBlocksLinesFeature } from '../features/movedBlocksLinesFeature.js';
3
+ import { diffLineDeleteDecorationBackgroundWithIndicator, diffLineDeleteDecorationBackground, diffLineAddDecorationBackgroundWithIndicator, diffLineAddDecorationBackground, diffWholeLineDeleteDecoration, diffWholeLineAddDecoration, diffDeleteDecorationEmpty, diffDeleteDecoration, diffAddDecorationEmpty, diffAddDecoration } from '../registrations.contribution.js';
4
+ import { applyObservableDecorations } from '../utils.js';
5
+ import { derived } from '../../../../../base/common/observableInternal/derived.js';
6
+ class DiffEditorDecorations extends Disposable {
7
+ constructor(_editors, _diffModel, _options, widget) {
8
+ super();
9
+ this._editors = _editors;
10
+ this._diffModel = _diffModel;
11
+ this._options = _options;
12
+ this._decorations = derived(this, (reader) => {
13
+ const diff = this._diffModel.read(reader)?.diff.read(reader);
14
+ if (!diff) {
15
+ return null;
16
+ }
17
+ const movedTextToCompare = this._diffModel.read(reader).movedTextToCompare.read(reader);
18
+ const renderIndicators = this._options.renderIndicators.read(reader);
19
+ const showEmptyDecorations = this._options.showEmptyDecorations.read(reader);
20
+ const originalDecorations = [];
21
+ const modifiedDecorations = [];
22
+ if (!movedTextToCompare) {
23
+ for (const m of diff.mappings) {
24
+ if (!m.lineRangeMapping.original.isEmpty) {
25
+ originalDecorations.push({ range: m.lineRangeMapping.original.toInclusiveRange(), options: renderIndicators ? diffLineDeleteDecorationBackgroundWithIndicator : diffLineDeleteDecorationBackground });
26
+ }
27
+ if (!m.lineRangeMapping.modified.isEmpty) {
28
+ modifiedDecorations.push({ range: m.lineRangeMapping.modified.toInclusiveRange(), options: renderIndicators ? diffLineAddDecorationBackgroundWithIndicator : diffLineAddDecorationBackground });
29
+ }
30
+ if (m.lineRangeMapping.modified.isEmpty || m.lineRangeMapping.original.isEmpty) {
31
+ if (!m.lineRangeMapping.original.isEmpty) {
32
+ originalDecorations.push({ range: m.lineRangeMapping.original.toInclusiveRange(), options: diffWholeLineDeleteDecoration });
33
+ }
34
+ if (!m.lineRangeMapping.modified.isEmpty) {
35
+ modifiedDecorations.push({ range: m.lineRangeMapping.modified.toInclusiveRange(), options: diffWholeLineAddDecoration });
36
+ }
37
+ }
38
+ else {
39
+ for (const i of m.lineRangeMapping.innerChanges || []) {
40
+ if (m.lineRangeMapping.original.contains(i.originalRange.startLineNumber)) {
41
+ originalDecorations.push({ range: i.originalRange, options: (i.originalRange.isEmpty() && showEmptyDecorations) ? diffDeleteDecorationEmpty : diffDeleteDecoration });
42
+ }
43
+ if (m.lineRangeMapping.modified.contains(i.modifiedRange.startLineNumber)) {
44
+ modifiedDecorations.push({ range: i.modifiedRange, options: (i.modifiedRange.isEmpty() && showEmptyDecorations) ? diffAddDecorationEmpty : diffAddDecoration });
45
+ }
46
+ }
47
+ }
48
+ }
49
+ }
50
+ if (movedTextToCompare) {
51
+ for (const m of movedTextToCompare.changes) {
52
+ const fullRangeOriginal = m.original.toInclusiveRange();
53
+ if (fullRangeOriginal) {
54
+ originalDecorations.push({ range: fullRangeOriginal, options: renderIndicators ? diffLineDeleteDecorationBackgroundWithIndicator : diffLineDeleteDecorationBackground });
55
+ }
56
+ const fullRangeModified = m.modified.toInclusiveRange();
57
+ if (fullRangeModified) {
58
+ modifiedDecorations.push({ range: fullRangeModified, options: renderIndicators ? diffLineAddDecorationBackgroundWithIndicator : diffLineAddDecorationBackground });
59
+ }
60
+ for (const i of m.innerChanges || []) {
61
+ originalDecorations.push({ range: i.originalRange, options: diffDeleteDecoration });
62
+ modifiedDecorations.push({ range: i.modifiedRange, options: diffAddDecoration });
63
+ }
64
+ }
65
+ }
66
+ const activeMovedText = this._diffModel.read(reader).activeMovedText.read(reader);
67
+ for (const m of diff.movedTexts) {
68
+ originalDecorations.push({
69
+ range: m.lineRangeMapping.original.toInclusiveRange(), options: {
70
+ description: 'moved',
71
+ blockClassName: 'movedOriginal' + (m === activeMovedText ? ' currentMove' : ''),
72
+ blockPadding: [MovedBlocksLinesFeature.movedCodeBlockPadding, 0, MovedBlocksLinesFeature.movedCodeBlockPadding, MovedBlocksLinesFeature.movedCodeBlockPadding],
73
+ }
74
+ });
75
+ modifiedDecorations.push({
76
+ range: m.lineRangeMapping.modified.toInclusiveRange(), options: {
77
+ description: 'moved',
78
+ blockClassName: 'movedModified' + (m === activeMovedText ? ' currentMove' : ''),
79
+ blockPadding: [4, 0, 4, 4],
80
+ }
81
+ });
82
+ }
83
+ return { originalDecorations, modifiedDecorations };
84
+ });
85
+ this._register(applyObservableDecorations(this._editors.original, ( this._decorations.map(d => d?.originalDecorations || []))));
86
+ this._register(applyObservableDecorations(this._editors.modified, ( this._decorations.map(d => d?.modifiedDecorations || []))));
87
+ }
88
+ }
89
+ export { DiffEditorDecorations };