@codingame/monaco-vscode-api 1.85.0 → 1.85.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 (239) hide show
  1. package/README.md +19 -10
  2. package/contributions.js +1 -0
  3. package/missing-services.js +91 -5
  4. package/monaco-editor-treemending.patch +957 -950
  5. package/package.json +6 -6
  6. package/vscode/src/vs/base/common/jsonFormatter.js +8 -1
  7. package/vscode/src/vs/platform/actions/browser/buttonbar.js +128 -0
  8. package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.js +2 -1
  9. package/vscode/src/vs/platform/layout/browser/zIndexRegistry.js +58 -0
  10. package/vscode/src/vs/platform/terminal/common/capabilities/commandDetectionCapability.js +56 -1
  11. package/vscode/src/vs/workbench/browser/actions/layoutActions.js +186 -4
  12. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +191 -0
  13. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatActions.js +238 -2
  14. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +75 -0
  15. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +205 -1
  16. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditorInput.js +168 -0
  17. package/vscode/src/vs/workbench/contrib/chat/browser/chatFollowups.js +35 -0
  18. package/vscode/src/vs/workbench/contrib/chat/browser/chatInputPart.js +340 -0
  19. package/vscode/src/vs/workbench/contrib/chat/browser/chatListRenderer.js +1195 -0
  20. package/vscode/src/vs/workbench/contrib/chat/browser/chatMarkdownDecorationsRenderer.js +115 -0
  21. package/vscode/src/vs/workbench/contrib/chat/browser/chatOptions.js +81 -0
  22. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommandContentWidget.css.js +4 -0
  23. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommandContentWidget.js +62 -0
  24. package/vscode/src/vs/workbench/contrib/chat/browser/chatWidget.js +583 -0
  25. package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockPart.css.js +4 -0
  26. package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockPart.js +290 -0
  27. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatDynamicVariables.js +167 -0
  28. package/vscode/src/vs/workbench/contrib/chat/browser/media/chat.css.js +4 -0
  29. package/vscode/src/vs/workbench/contrib/chat/common/chatContextKeys.js +6 -1
  30. package/vscode/src/vs/workbench/contrib/chat/common/chatModel.js +562 -0
  31. package/vscode/src/vs/workbench/contrib/chat/common/chatParserTypes.js +31 -1
  32. package/vscode/src/vs/workbench/contrib/chat/common/chatProvider.js +24 -1
  33. package/vscode/src/vs/workbench/contrib/chat/common/chatRequestParser.js +193 -0
  34. package/vscode/src/vs/workbench/contrib/chat/common/chatService.js +22 -1
  35. package/vscode/src/vs/workbench/contrib/chat/common/chatSlashCommands.js +52 -1
  36. package/vscode/src/vs/workbench/contrib/chat/common/chatViewModel.js +258 -0
  37. package/vscode/src/vs/workbench/contrib/chat/common/chatWidgetHistoryService.js +37 -0
  38. package/vscode/src/vs/workbench/contrib/chat/common/chatWordCounter.js +25 -0
  39. package/vscode/src/vs/workbench/contrib/codeEditor/browser/find/simpleFindWidget.css.js +4 -0
  40. package/vscode/src/vs/workbench/contrib/codeEditor/browser/find/simpleFindWidget.js +388 -0
  41. package/vscode/src/vs/workbench/contrib/comments/browser/commentColors.js +61 -0
  42. package/vscode/src/vs/workbench/contrib/comments/browser/commentFormActions.js +49 -0
  43. package/vscode/src/vs/workbench/contrib/comments/browser/commentNode.js +647 -0
  44. package/vscode/src/vs/workbench/contrib/comments/browser/commentReply.js +300 -0
  45. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadAdditionalActions.js +60 -0
  46. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadBody.js +249 -0
  47. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadHeader.js +107 -0
  48. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadWidget.js +333 -0
  49. package/vscode/src/vs/workbench/contrib/comments/browser/media/review.css.js +4 -0
  50. package/vscode/src/vs/workbench/contrib/comments/browser/reactionsAction.js +99 -0
  51. package/vscode/src/vs/workbench/contrib/comments/browser/timestamp.js +55 -0
  52. package/vscode/src/vs/workbench/contrib/comments/common/commentsConfiguration.js +2 -0
  53. package/vscode/src/vs/workbench/contrib/contextmenu/browser/contextmenu.contribution.js +20 -0
  54. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointEditorContribution.js +855 -0
  55. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointWidget.js +410 -0
  56. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointsView.js +1591 -0
  57. package/vscode/src/vs/workbench/contrib/debug/browser/callStackEditorContribution.js +178 -0
  58. package/vscode/src/vs/workbench/contrib/debug/browser/media/breakpointWidget.css.js +4 -0
  59. package/vscode/src/vs/workbench/contrib/debug/browser/media/callStackEditorContribution.css.js +4 -0
  60. package/vscode/src/vs/workbench/contrib/debug/common/debugModel.js +1485 -0
  61. package/vscode/src/vs/workbench/contrib/debug/common/debugSource.js +125 -0
  62. package/vscode/src/vs/workbench/contrib/debug/common/disassemblyViewInput.js +29 -0
  63. package/vscode/src/vs/workbench/contrib/extensions/common/extensionsInput.js +41 -0
  64. package/vscode/src/vs/workbench/contrib/extensions/common/extensionsUtils.js +102 -0
  65. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.css.js +4 -0
  66. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +988 -0
  67. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatLivePreviewWidget.js +431 -0
  68. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSession.js +417 -0
  69. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatStrategies.js +806 -0
  70. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +915 -0
  71. package/vscode/src/vs/workbench/contrib/inlineChat/browser/utils.js +19 -0
  72. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +129 -10
  73. package/vscode/src/vs/workbench/contrib/markdown/browser/markdownDocumentRenderer.js +205 -0
  74. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInput.js +150 -0
  75. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInputModel.js +480 -0
  76. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeMarkers/mergeMarkersController.js +5 -0
  77. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/diffComputer.js +90 -0
  78. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/editing.js +54 -0
  79. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/lineRange.js +108 -0
  80. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/mapping.js +258 -0
  81. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/mergeEditorModel.js +614 -0
  82. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/modifiedBaseRange.js +307 -0
  83. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/rangeUtils.js +44 -0
  84. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/textModelDiffs.js +165 -0
  85. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/telemetry.js +78 -0
  86. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/utils.js +169 -0
  87. package/vscode/src/vs/workbench/contrib/mergeEditor/common/mergeEditor.js +64 -0
  88. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/clipboard/cellOutputClipboard.js +49 -0
  89. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/findFilters.js +70 -0
  90. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/findMatchDecorationModel.js +120 -0
  91. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/findModel.js +416 -0
  92. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindReplaceWidget.css.js +4 -0
  93. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindReplaceWidget.js +663 -0
  94. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOperations.js +593 -0
  95. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOutputActions.js +72 -0
  96. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/coreActions.js +326 -0
  97. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/editActions.js +539 -0
  98. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/foldingController.js +265 -0
  99. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/insertCellActions.js +348 -0
  100. package/vscode/src/vs/workbench/contrib/notebook/browser/media/notebook.css.js +4 -0
  101. package/vscode/src/vs/workbench/contrib/notebook/browser/media/notebookCellChat.css.js +4 -0
  102. package/vscode/src/vs/workbench/contrib/notebook/browser/media/notebookCellEditorHint.css.js +4 -0
  103. package/vscode/src/vs/workbench/contrib/notebook/browser/media/notebookCellInsertToolbar.css.js +4 -0
  104. package/vscode/src/vs/workbench/contrib/notebook/browser/media/notebookCellOutput.css.js +4 -0
  105. package/vscode/src/vs/workbench/contrib/notebook/browser/media/notebookCellStatusBar.css.js +4 -0
  106. package/vscode/src/vs/workbench/contrib/notebook/browser/media/notebookCellTitleToolbar.css.js +4 -0
  107. package/vscode/src/vs/workbench/contrib/notebook/browser/media/notebookDnd.css.js +4 -0
  108. package/vscode/src/vs/workbench/contrib/notebook/browser/media/notebookEditorStickyScroll.css.js +4 -0
  109. package/vscode/src/vs/workbench/contrib/notebook/browser/media/notebookFocusIndicator.css.js +4 -0
  110. package/vscode/src/vs/workbench/contrib/notebook/browser/media/notebookFolding.css.js +4 -0
  111. package/vscode/src/vs/workbench/contrib/notebook/browser/media/notebookKernelActionViewItem.css.js +4 -0
  112. package/vscode/src/vs/workbench/contrib/notebook/browser/media/notebookOutline.css.js +4 -0
  113. package/vscode/src/vs/workbench/contrib/notebook/browser/media/notebookToolbar.css.js +4 -0
  114. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookBrowser.js +95 -3
  115. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookEditor.js +437 -0
  116. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookEditorExtensions.js +29 -0
  117. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.js +2730 -0
  118. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookIcons.js +139 -0
  119. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookLogger.js +17 -0
  120. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookOptions.js +564 -0
  121. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookViewEvents.js +27 -0
  122. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellPart.js +119 -0
  123. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellActionView.js +27 -0
  124. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellComments.js +135 -0
  125. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellContextKeys.js +178 -0
  126. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellDecorations.js +35 -0
  127. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellDnd.js +377 -0
  128. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellDragRenderer.js +97 -0
  129. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellEditorOptions.js +194 -0
  130. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellExecution.js +71 -0
  131. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellFocus.js +20 -0
  132. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellFocusIndicator.js +85 -0
  133. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellOutput.js +652 -0
  134. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellProgressBar.js +59 -0
  135. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellStatusPart.js +303 -0
  136. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellToolbarStickyScroll.js +24 -0
  137. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellToolbars.js +228 -0
  138. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/chat/cellChatActions.js +302 -0
  139. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/chat/cellChatController.js +438 -0
  140. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/chat/cellChatPart.js +45 -0
  141. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCell.js +435 -0
  142. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCellExecutionIcon.js +95 -0
  143. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCellRunToolbar.js +107 -0
  144. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/collapsedCellInput.js +29 -0
  145. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/collapsedCellOutput.js +59 -0
  146. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/foldedCellHint.js +67 -0
  147. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/markupCell.js +430 -0
  148. package/vscode/src/vs/workbench/contrib/notebook/browser/view/notebookCellAnchor.js +54 -0
  149. package/vscode/src/vs/workbench/contrib/notebook/browser/view/notebookCellList.js +1131 -0
  150. package/vscode/src/vs/workbench/contrib/notebook/browser/view/notebookCellListView.js +21 -0
  151. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/backLayerWebView.js +1591 -0
  152. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/cellRenderer.js +341 -0
  153. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/webviewPreloads.js +2155 -0
  154. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/webviewThemeMapping.js +65 -0
  155. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/OutlineEntry.js +95 -0
  156. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/baseCellViewModel.js +507 -0
  157. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/cellEditorOptions.js +85 -0
  158. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/cellOutputViewModel.js +47 -0
  159. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/cellSelectionCollection.js +40 -0
  160. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/codeCellViewModel.js +435 -0
  161. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/eventDispatcher.js +31 -0
  162. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/foldingModel.js +257 -0
  163. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/markupCellViewModel.js +239 -0
  164. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/notebookOutlineEntryFactory.js +103 -0
  165. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/notebookOutlineProvider.js +211 -0
  166. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/notebookViewModelImpl.js +808 -0
  167. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/viewContext.js +8 -0
  168. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookEditorStickyScroll.js +381 -0
  169. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookEditorToolbar.js +527 -0
  170. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookEditorWidgetContextKeys.js +163 -0
  171. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookKernelQuickPickStrategy.js +651 -0
  172. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookKernelView.js +173 -0
  173. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookOverviewRuler.js +98 -0
  174. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookTopCellToolbar.js +62 -0
  175. package/vscode/src/vs/workbench/contrib/notebook/common/model/notebookCellOutputTextModel.js +101 -0
  176. package/vscode/src/vs/workbench/contrib/notebook/common/model/notebookCellTextModel.js +346 -0
  177. package/vscode/src/vs/workbench/contrib/notebook/common/notebookCommon.js +152 -1
  178. package/vscode/src/vs/workbench/contrib/notebook/common/notebookContextKeys.js +39 -0
  179. package/vscode/src/vs/workbench/contrib/notebook/common/notebookEditorInput.js +296 -0
  180. package/vscode/src/vs/workbench/contrib/notebook/common/notebookEditorModel.js +261 -0
  181. package/vscode/src/vs/workbench/contrib/notebook/common/notebookExecutionService.js +3 -1
  182. package/vscode/src/vs/workbench/contrib/notebook/common/notebookKernelService.js +2 -1
  183. package/vscode/src/vs/workbench/contrib/notebook/common/notebookKeymapService.js +3 -0
  184. package/vscode/src/vs/workbench/contrib/notebook/common/notebookLoggingService.js +3 -0
  185. package/vscode/src/vs/workbench/contrib/notebook/common/notebookPerformance.js +16 -0
  186. package/vscode/src/vs/workbench/contrib/notebook/common/notebookRange.js +66 -0
  187. package/vscode/src/vs/workbench/contrib/notebook/common/services/notebookWorkerService.js +4 -0
  188. package/vscode/src/vs/workbench/contrib/preferences/common/settingsEditorColorRegistry.js +130 -0
  189. package/vscode/src/vs/workbench/contrib/remote/browser/media/tunnelView.css.js +4 -0
  190. package/vscode/src/vs/workbench/contrib/remote/browser/remoteExplorer.js +847 -0
  191. package/vscode/src/vs/workbench/contrib/remote/browser/remoteIcons.js +89 -0
  192. package/vscode/src/vs/workbench/contrib/remote/browser/tunnelView.js +1942 -0
  193. package/vscode/src/vs/workbench/contrib/remote/browser/urlFinder.js +107 -0
  194. package/vscode/src/vs/workbench/contrib/search/browser/searchActionsBase.js +49 -0
  195. package/vscode/src/vs/workbench/contrib/search/browser/searchActionsFind.js +387 -0
  196. package/vscode/src/vs/workbench/contrib/search/browser/searchModel.js +2 -2
  197. package/vscode/src/vs/workbench/contrib/search/common/constants.js +66 -0
  198. package/vscode/src/vs/workbench/contrib/searchEditor/browser/constants.js +11 -0
  199. package/vscode/src/vs/workbench/contrib/snippets/browser/commands/abstractSnippetsActions.js +24 -0
  200. package/vscode/src/vs/workbench/contrib/snippets/browser/commands/fileTemplateSnippets.js +95 -0
  201. package/vscode/src/vs/workbench/contrib/terminal/browser/terminal.js +4 -1
  202. package/vscode/src/vs/workbench/contrib/terminal/common/terminal.js +2 -1
  203. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/featuredExtensionService.js +159 -0
  204. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedExtensionPoint.js +375 -0
  205. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedService.js +563 -0
  206. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/gettingStartedContent.js +932 -0
  207. package/vscode/src/vs/workbench/services/layout/browser/layoutService.js +15 -1
  208. package/vscode/src/vs/workbench/services/remote/common/remoteExplorerService.d.ts +2 -2
  209. package/vscode/src/vs/workbench/services/remote/common/remoteExplorerService.js +190 -2
  210. package/vscode/src/vs/workbench/services/workingCopy/common/resourceWorkingCopy.js +77 -0
  211. package/assets/break.mp3 +0 -0
  212. package/assets/chatRequestSent.mp3 +0 -0
  213. package/assets/chatResponsePending.mp3 +0 -0
  214. package/assets/chatResponseReceived1.mp3 +0 -0
  215. package/assets/chatResponseReceived2.mp3 +0 -0
  216. package/assets/chatResponseReceived3.mp3 +0 -0
  217. package/assets/chatResponseReceived4.mp3 +0 -0
  218. package/assets/clear.mp3 +0 -0
  219. package/assets/defaultIcon.png +0 -0
  220. package/assets/diffLineDeleted.mp3 +0 -0
  221. package/assets/diffLineInserted.mp3 +0 -0
  222. package/assets/diffLineModified.mp3 +0 -0
  223. package/assets/error.mp3 +0 -0
  224. package/assets/fake.html +0 -10
  225. package/assets/foldedAreas.mp3 +0 -0
  226. package/assets/format.mp3 +0 -0
  227. package/assets/index-no-csp.html +0 -1226
  228. package/assets/index.html +0 -1227
  229. package/assets/quickFixes.mp3 +0 -0
  230. package/assets/save.mp3 +0 -0
  231. package/assets/service-worker.js +0 -457
  232. package/assets/taskCompleted.mp3 +0 -0
  233. package/assets/taskFailed.mp3 +0 -0
  234. package/assets/terminalBell.mp3 +0 -0
  235. package/assets/warning.mp3 +0 -0
  236. package/assets/webWorkerExtensionHostIframe.html +0 -123
  237. package/override/vs/workbench/contrib/notebook/browser/contrib/find/findMatchDecorationModel.js +0 -2
  238. package/override/vs/workbench/contrib/notebook/browser/notebookEditorWidget.js +0 -2
  239. package/override/vs/workbench/contrib/notebook/common/notebookEditorInput.js +0 -5
@@ -0,0 +1,614 @@
1
+ import { __decorate, __param } from '../../../../../../../../external/tslib/tslib.es6.js';
2
+ import { equals, CompareResult } from 'monaco-editor/esm/vs/base/common/arrays.js';
3
+ import { BugIndicatingError } from 'monaco-editor/esm/vs/base/common/errors.js';
4
+ import { derived, waitForState, keepObserved, autorunHandleChanges, transaction, observableValue } from 'monaco-editor/esm/vs/base/common/observable.js';
5
+ import { Range } from 'monaco-editor/esm/vs/editor/common/core/range.js';
6
+ import { ILanguageService } from 'monaco-editor/esm/vs/editor/common/languages/language.js';
7
+ import { localizeWithPath } from 'monaco-editor/esm/vs/nls.js';
8
+ import { IUndoRedoService, UndoRedoGroup } from 'monaco-editor/esm/vs/platform/undoRedo/common/undoRedo.js';
9
+ import { EditorModel } from '../../../../common/editor/editorModel.js';
10
+ import { LineRange } from './lineRange.js';
11
+ import { DocumentLineRangeMap, LineRangeMapping, DocumentRangeMap } from './mapping.js';
12
+ import { TextModelDiffs } from './textModelDiffs.js';
13
+ import { leftJoin } from '../utils.js';
14
+ import { ModifiedBaseRange, ModifiedBaseRangeState, ModifiedBaseRangeStateKind } from './modifiedBaseRange.js';
15
+ let MergeEditorModel = class MergeEditorModel extends EditorModel {
16
+ constructor(base, input1, input2, resultTextModel, diffComputer, options, telemetry, languageService, undoRedoService) {
17
+ super();
18
+ this.base = base;
19
+ this.input1 = input1;
20
+ this.input2 = input2;
21
+ this.resultTextModel = resultTextModel;
22
+ this.diffComputer = diffComputer;
23
+ this.options = options;
24
+ this.telemetry = telemetry;
25
+ this.languageService = languageService;
26
+ this.undoRedoService = undoRedoService;
27
+ this.input1TextModelDiffs = this._register(( new TextModelDiffs(this.base, this.input1.textModel, this.diffComputer)));
28
+ this.input2TextModelDiffs = this._register(( new TextModelDiffs(this.base, this.input2.textModel, this.diffComputer)));
29
+ this.resultTextModelDiffs = this._register(( new TextModelDiffs(this.base, this.resultTextModel, this.diffComputer)));
30
+ this.modifiedBaseRanges = derived(this, (reader) => {
31
+ const input1Diffs = this.input1TextModelDiffs.diffs.read(reader);
32
+ const input2Diffs = this.input2TextModelDiffs.diffs.read(reader);
33
+ return ModifiedBaseRange.fromDiffs(input1Diffs, input2Diffs, this.base, this.input1.textModel, this.input2.textModel);
34
+ });
35
+ this.modifiedBaseRangeResultStates = derived(this, reader => {
36
+ const map = ( new Map(( this.modifiedBaseRanges.read(reader).map((s) => [
37
+ s, ( new ModifiedBaseRangeData(s))
38
+ ]))));
39
+ return map;
40
+ });
41
+ this.resultSnapshot = this.resultTextModel.createSnapshot();
42
+ this.baseInput1Diffs = this.input1TextModelDiffs.diffs;
43
+ this.baseInput2Diffs = this.input2TextModelDiffs.diffs;
44
+ this.baseResultDiffs = this.resultTextModelDiffs.diffs;
45
+ this.input1ResultMapping = derived(this, reader => {
46
+ return this.getInputResultMapping(this.baseInput1Diffs.read(reader), this.baseResultDiffs.read(reader), this.input1.textModel.getLineCount());
47
+ });
48
+ this.resultInput1Mapping = derived(this, reader => this.input1ResultMapping.read(reader).reverse());
49
+ this.input2ResultMapping = derived(this, reader => {
50
+ return this.getInputResultMapping(this.baseInput2Diffs.read(reader), this.baseResultDiffs.read(reader), this.input2.textModel.getLineCount());
51
+ });
52
+ this.resultInput2Mapping = derived(this, reader => this.input2ResultMapping.read(reader).reverse());
53
+ this.baseResultMapping = derived(this, reader => {
54
+ const map = ( new DocumentLineRangeMap(this.baseResultDiffs.read(reader), -1));
55
+ return ( new DocumentLineRangeMap(( map.lineRangeMappings.map((m) => m.inputRange.isEmpty || m.outputRange.isEmpty
56
+ ? ( new LineRangeMapping(
57
+ m.inputRange.deltaStart(-1), m.outputRange.deltaStart(-1)))
58
+ : m)), map.inputLineCount));
59
+ });
60
+ this.resultBaseMapping = derived(this, reader => this.baseResultMapping.read(reader).reverse());
61
+ this.diffComputingState = derived(this, reader => {
62
+ const states = ( [
63
+ this.input1TextModelDiffs,
64
+ this.input2TextModelDiffs,
65
+ this.resultTextModelDiffs,
66
+ ].map((s) => s.state.read(reader)));
67
+ if (( states.some((s) => s === 1 ))) {
68
+ return 1 ;
69
+ }
70
+ if (( states.some((s) => s === 3 ))) {
71
+ return 3 ;
72
+ }
73
+ return 2 ;
74
+ });
75
+ this.inputDiffComputingState = derived(this, reader => {
76
+ const states = ( [
77
+ this.input1TextModelDiffs,
78
+ this.input2TextModelDiffs,
79
+ ].map((s) => s.state.read(reader)));
80
+ if (( states.some((s) => s === 1 ))) {
81
+ return 1 ;
82
+ }
83
+ if (( states.some((s) => s === 3 ))) {
84
+ return 3 ;
85
+ }
86
+ return 2 ;
87
+ });
88
+ this.isUpToDate = derived(this, reader => this.diffComputingState.read(reader) === 2 );
89
+ this.onInitialized = waitForState(this.diffComputingState, state => state === 2 ).then(() => { });
90
+ this.firstRun = true;
91
+ this.unhandledConflictsCount = derived(this, reader => {
92
+ const map = this.modifiedBaseRangeResultStates.read(reader);
93
+ let unhandledCount = 0;
94
+ for (const [_key, value] of map) {
95
+ if (!value.handled.read(reader)) {
96
+ unhandledCount++;
97
+ }
98
+ }
99
+ return unhandledCount;
100
+ });
101
+ this.hasUnhandledConflicts = ( this.unhandledConflictsCount.map(value => value > 0));
102
+ this._register(keepObserved(this.modifiedBaseRangeResultStates));
103
+ this._register(keepObserved(this.input1ResultMapping));
104
+ this._register(keepObserved(this.input2ResultMapping));
105
+ const initializePromise = this.initialize();
106
+ this.onInitialized = this.onInitialized.then(async () => {
107
+ await initializePromise;
108
+ });
109
+ initializePromise.then(() => {
110
+ let shouldRecomputeHandledFromAccepted = true;
111
+ this._register(autorunHandleChanges({
112
+ handleChange: (ctx) => {
113
+ if (ctx.didChange(this.modifiedBaseRangeResultStates)) {
114
+ shouldRecomputeHandledFromAccepted = true;
115
+ }
116
+ return ctx.didChange(this.resultTextModelDiffs.diffs)
117
+ ? ctx.change === 1
118
+ : true;
119
+ },
120
+ }, (reader) => {
121
+ const states = this.modifiedBaseRangeResultStates.read(reader);
122
+ if (!this.isUpToDate.read(reader)) {
123
+ return;
124
+ }
125
+ const resultDiffs = this.resultTextModelDiffs.diffs.read(reader);
126
+ transaction(tx => {
127
+ this.updateBaseRangeAcceptedState(resultDiffs, states, tx);
128
+ if (shouldRecomputeHandledFromAccepted) {
129
+ shouldRecomputeHandledFromAccepted = false;
130
+ for (const [_range, observableState] of states) {
131
+ const state = observableState.accepted.get();
132
+ const handled = !(state.kind === ModifiedBaseRangeStateKind.base || state.kind === ModifiedBaseRangeStateKind.unrecognized);
133
+ observableState.handledInput1.set(handled, tx);
134
+ observableState.handledInput2.set(handled, tx);
135
+ }
136
+ }
137
+ });
138
+ }));
139
+ });
140
+ }
141
+ async initialize() {
142
+ if (this.options.resetResult) {
143
+ await this.reset();
144
+ }
145
+ }
146
+ async reset() {
147
+ await waitForState(this.inputDiffComputingState, state => state === 2 );
148
+ const states = this.modifiedBaseRangeResultStates.get();
149
+ transaction(tx => {
150
+ for (const [range, state] of states) {
151
+ let newState;
152
+ let handled = false;
153
+ if (range.input1Diffs.length === 0) {
154
+ newState = ModifiedBaseRangeState.base.withInputValue(2, true);
155
+ handled = true;
156
+ }
157
+ else if (range.input2Diffs.length === 0) {
158
+ newState = ModifiedBaseRangeState.base.withInputValue(1, true);
159
+ handled = true;
160
+ }
161
+ else if (range.isEqualChange) {
162
+ newState = ModifiedBaseRangeState.base.withInputValue(1, true);
163
+ handled = true;
164
+ }
165
+ else {
166
+ newState = ModifiedBaseRangeState.base;
167
+ handled = false;
168
+ }
169
+ state.accepted.set(newState, tx);
170
+ state.computedFromDiffing = false;
171
+ state.previousNonDiffingState = undefined;
172
+ state.handledInput1.set(handled, tx);
173
+ state.handledInput2.set(handled, tx);
174
+ }
175
+ this.resultTextModel.pushEditOperations(null, [{
176
+ range: ( new Range(1, 1, Number.MAX_SAFE_INTEGER, 1)),
177
+ text: this.computeAutoMergedResult()
178
+ }], () => null);
179
+ });
180
+ }
181
+ computeAutoMergedResult() {
182
+ const baseRanges = this.modifiedBaseRanges.get();
183
+ const baseLines = this.base.getLinesContent();
184
+ const input1Lines = this.input1.textModel.getLinesContent();
185
+ const input2Lines = this.input2.textModel.getLinesContent();
186
+ const resultLines = [];
187
+ function appendLinesToResult(source, lineRange) {
188
+ for (let i = lineRange.startLineNumber; i < lineRange.endLineNumberExclusive; i++) {
189
+ resultLines.push(source[i - 1]);
190
+ }
191
+ }
192
+ let baseStartLineNumber = 1;
193
+ for (const baseRange of baseRanges) {
194
+ appendLinesToResult(baseLines, LineRange.fromLineNumbers(baseStartLineNumber, baseRange.baseRange.startLineNumber));
195
+ baseStartLineNumber = baseRange.baseRange.endLineNumberExclusive;
196
+ if (baseRange.input1Diffs.length === 0) {
197
+ appendLinesToResult(input2Lines, baseRange.input2Range);
198
+ }
199
+ else if (baseRange.input2Diffs.length === 0) {
200
+ appendLinesToResult(input1Lines, baseRange.input1Range);
201
+ }
202
+ else if (baseRange.isEqualChange) {
203
+ appendLinesToResult(input1Lines, baseRange.input1Range);
204
+ }
205
+ else {
206
+ appendLinesToResult(baseLines, baseRange.baseRange);
207
+ }
208
+ }
209
+ appendLinesToResult(baseLines, LineRange.fromLineNumbers(baseStartLineNumber, baseLines.length + 1));
210
+ return resultLines.join(this.resultTextModel.getEOL());
211
+ }
212
+ hasBaseRange(baseRange) {
213
+ return ( this.modifiedBaseRangeResultStates.get().has(baseRange));
214
+ }
215
+ get isApplyingEditInResult() { return this.resultTextModelDiffs.isApplyingChange; }
216
+ getInputResultMapping(inputLinesDiffs, resultDiffs, inputLineCount) {
217
+ const map = DocumentLineRangeMap.betweenOutputs(inputLinesDiffs, resultDiffs, inputLineCount);
218
+ return ( new DocumentLineRangeMap(( map.lineRangeMappings.map((m) => m.inputRange.isEmpty || m.outputRange.isEmpty
219
+ ? ( new LineRangeMapping(
220
+ m.inputRange.deltaStart(-1), m.outputRange.deltaStart(-1)))
221
+ : m)), map.inputLineCount));
222
+ }
223
+ translateInputRangeToBase(input, range) {
224
+ const baseInputDiffs = input === 1 ? this.baseInput1Diffs.get() : this.baseInput2Diffs.get();
225
+ const map = ( new DocumentRangeMap(baseInputDiffs.flatMap(d => d.rangeMappings), 0)).reverse();
226
+ return map.projectRange(range).outputRange;
227
+ }
228
+ translateBaseRangeToInput(input, range) {
229
+ const baseInputDiffs = input === 1 ? this.baseInput1Diffs.get() : this.baseInput2Diffs.get();
230
+ const map = ( new DocumentRangeMap(baseInputDiffs.flatMap(d => d.rangeMappings), 0));
231
+ return map.projectRange(range).outputRange;
232
+ }
233
+ getLineRangeInResult(baseRange, reader) {
234
+ return this.resultTextModelDiffs.getResultLineRange(baseRange, reader);
235
+ }
236
+ translateResultRangeToBase(range) {
237
+ const map = ( new DocumentRangeMap(this.baseResultDiffs.get().flatMap(d => d.rangeMappings), 0)).reverse();
238
+ return map.projectRange(range).outputRange;
239
+ }
240
+ translateBaseRangeToResult(range) {
241
+ const map = ( new DocumentRangeMap(this.baseResultDiffs.get().flatMap(d => d.rangeMappings), 0));
242
+ return map.projectRange(range).outputRange;
243
+ }
244
+ findModifiedBaseRangesInRange(rangeInBase) {
245
+ return this.modifiedBaseRanges.get().filter(r => r.baseRange.intersects(rangeInBase));
246
+ }
247
+ updateBaseRangeAcceptedState(resultDiffs, states, tx) {
248
+ const baseRangeWithStoreAndTouchingDiffs = leftJoin(states, resultDiffs, (baseRange, diff) => baseRange[0].baseRange.touches(diff.inputRange)
249
+ ? CompareResult.neitherLessOrGreaterThan
250
+ : LineRange.compareByStart(baseRange[0].baseRange, diff.inputRange));
251
+ for (const row of baseRangeWithStoreAndTouchingDiffs) {
252
+ const newState = this.computeState(row.left[0], row.rights);
253
+ const data = row.left[1];
254
+ const oldState = data.accepted.get();
255
+ if (!oldState.equals(newState)) {
256
+ if (!this.firstRun && !data.computedFromDiffing) {
257
+ data.computedFromDiffing = true;
258
+ data.previousNonDiffingState = oldState;
259
+ }
260
+ data.accepted.set(newState, tx);
261
+ }
262
+ }
263
+ if (this.firstRun) {
264
+ this.firstRun = false;
265
+ }
266
+ }
267
+ computeState(baseRange, conflictingDiffs) {
268
+ if (conflictingDiffs.length === 0) {
269
+ return ModifiedBaseRangeState.base;
270
+ }
271
+ const conflictingEdits = ( conflictingDiffs.map((d) => d.getLineEdit()));
272
+ function editsAgreeWithDiffs(diffs) {
273
+ return equals(conflictingEdits, ( diffs.map((d) => d.getLineEdit())), (a, b) => a.equals(b));
274
+ }
275
+ if (editsAgreeWithDiffs(baseRange.input1Diffs)) {
276
+ return ModifiedBaseRangeState.base.withInputValue(1, true);
277
+ }
278
+ if (editsAgreeWithDiffs(baseRange.input2Diffs)) {
279
+ return ModifiedBaseRangeState.base.withInputValue(2, true);
280
+ }
281
+ const states = [
282
+ ModifiedBaseRangeState.base.withInputValue(1, true).withInputValue(2, true, true),
283
+ ModifiedBaseRangeState.base.withInputValue(2, true).withInputValue(1, true, true),
284
+ ModifiedBaseRangeState.base.withInputValue(1, true).withInputValue(2, true, false),
285
+ ModifiedBaseRangeState.base.withInputValue(2, true).withInputValue(1, true, false),
286
+ ];
287
+ for (const s of states) {
288
+ const { edit } = baseRange.getEditForBase(s);
289
+ if (edit) {
290
+ const resultRange = this.resultTextModelDiffs.getResultLineRange(baseRange.baseRange);
291
+ const existingLines = resultRange.getLines(this.resultTextModel);
292
+ if (equals(edit.newLines, existingLines, (a, b) => a === b)) {
293
+ return s;
294
+ }
295
+ }
296
+ }
297
+ return ModifiedBaseRangeState.unrecognized;
298
+ }
299
+ getState(baseRange) {
300
+ const existingState = this.modifiedBaseRangeResultStates.get().get(baseRange);
301
+ if (!existingState) {
302
+ throw new BugIndicatingError('object must be from this instance');
303
+ }
304
+ return existingState.accepted;
305
+ }
306
+ setState(baseRange, state, _markInputAsHandled, tx, _pushStackElement = false) {
307
+ if (!this.isUpToDate.get()) {
308
+ throw new BugIndicatingError('Cannot set state while updating');
309
+ }
310
+ const existingState = this.modifiedBaseRangeResultStates.get().get(baseRange);
311
+ if (!existingState) {
312
+ throw new BugIndicatingError('object must be from this instance');
313
+ }
314
+ const conflictingDiffs = this.resultTextModelDiffs.findTouchingDiffs(baseRange.baseRange);
315
+ const group = ( new UndoRedoGroup());
316
+ if (conflictingDiffs) {
317
+ this.resultTextModelDiffs.removeDiffs(conflictingDiffs, tx, group);
318
+ }
319
+ const { edit, effectiveState } = baseRange.getEditForBase(state);
320
+ existingState.accepted.set(effectiveState, tx);
321
+ existingState.previousNonDiffingState = undefined;
322
+ existingState.computedFromDiffing = false;
323
+ const input1Handled = existingState.handledInput1.get();
324
+ const input2Handled = existingState.handledInput2.get();
325
+ if (!input1Handled || !input2Handled) {
326
+ this.undoRedoService.pushElement(( new MarkAsHandledUndoRedoElement(this.resultTextModel.uri, ( new WeakRef(this)), ( new WeakRef(existingState)), input1Handled, input2Handled)), group);
327
+ }
328
+ if (edit) {
329
+ this.resultTextModel.pushStackElement();
330
+ this.resultTextModelDiffs.applyEditRelativeToOriginal(edit, tx, group);
331
+ this.resultTextModel.pushStackElement();
332
+ }
333
+ existingState.handledInput1.set(true, tx);
334
+ existingState.handledInput2.set(true, tx);
335
+ }
336
+ resetDirtyConflictsToBase() {
337
+ transaction(tx => {
338
+ this.resultTextModel.pushStackElement();
339
+ for (const range of this.modifiedBaseRanges.get()) {
340
+ if (this.getState(range).get().kind === ModifiedBaseRangeStateKind.unrecognized) {
341
+ this.setState(range, ModifiedBaseRangeState.base, false, tx, false);
342
+ }
343
+ }
344
+ this.resultTextModel.pushStackElement();
345
+ });
346
+ }
347
+ isHandled(baseRange) {
348
+ return this.modifiedBaseRangeResultStates.get().get(baseRange).handled;
349
+ }
350
+ isInputHandled(baseRange, inputNumber) {
351
+ const state = this.modifiedBaseRangeResultStates.get().get(baseRange);
352
+ return inputNumber === 1 ? state.handledInput1 : state.handledInput2;
353
+ }
354
+ setInputHandled(baseRange, inputNumber, handled, tx) {
355
+ const state = this.modifiedBaseRangeResultStates.get().get(baseRange);
356
+ if (state.handled.get() === handled) {
357
+ return;
358
+ }
359
+ const dataRef = ( new WeakRef(ModifiedBaseRangeData));
360
+ const modelRef = ( new WeakRef(this));
361
+ this.undoRedoService.pushElement({
362
+ type: 0 ,
363
+ resource: this.resultTextModel.uri,
364
+ code: 'setInputHandled',
365
+ label: ( localizeWithPath(
366
+ 'vs/workbench/contrib/mergeEditor/browser/model/mergeEditorModel',
367
+ 'setInputHandled',
368
+ "Set Input Handled"
369
+ )),
370
+ redo() {
371
+ const model = modelRef.deref();
372
+ const data = dataRef.deref();
373
+ if (model && !model.isDisposed() && data) {
374
+ transaction(tx => {
375
+ if (inputNumber === 1) {
376
+ state.handledInput1.set(handled, tx);
377
+ }
378
+ else {
379
+ state.handledInput2.set(handled, tx);
380
+ }
381
+ });
382
+ }
383
+ },
384
+ undo() {
385
+ const model = modelRef.deref();
386
+ const data = dataRef.deref();
387
+ if (model && !model.isDisposed() && data) {
388
+ transaction(tx => {
389
+ if (inputNumber === 1) {
390
+ state.handledInput1.set(!handled, tx);
391
+ }
392
+ else {
393
+ state.handledInput2.set(!handled, tx);
394
+ }
395
+ });
396
+ }
397
+ },
398
+ });
399
+ if (inputNumber === 1) {
400
+ state.handledInput1.set(handled, tx);
401
+ }
402
+ else {
403
+ state.handledInput2.set(handled, tx);
404
+ }
405
+ }
406
+ setHandled(baseRange, handled, tx) {
407
+ const state = this.modifiedBaseRangeResultStates.get().get(baseRange);
408
+ if (state.handled.get() === handled) {
409
+ return;
410
+ }
411
+ state.handledInput1.set(handled, tx);
412
+ state.handledInput2.set(handled, tx);
413
+ }
414
+ setLanguageId(languageId, source) {
415
+ const language = this.languageService.createById(languageId);
416
+ this.base.setLanguage(language, source);
417
+ this.input1.textModel.setLanguage(language, source);
418
+ this.input2.textModel.setLanguage(language, source);
419
+ this.resultTextModel.setLanguage(language, source);
420
+ }
421
+ getInitialResultValue() {
422
+ const chunks = [];
423
+ while (true) {
424
+ const chunk = this.resultSnapshot.read();
425
+ if (chunk === null) {
426
+ break;
427
+ }
428
+ chunks.push(chunk);
429
+ }
430
+ return chunks.join();
431
+ }
432
+ async getResultValueWithConflictMarkers() {
433
+ await waitForState(this.diffComputingState, state => state === 2 );
434
+ if (this.unhandledConflictsCount.get() === 0) {
435
+ return this.resultTextModel.getValue();
436
+ }
437
+ const resultLines = this.resultTextModel.getLinesContent();
438
+ const input1Lines = this.input1.textModel.getLinesContent();
439
+ const input2Lines = this.input2.textModel.getLinesContent();
440
+ const states = this.modifiedBaseRangeResultStates.get();
441
+ const outputLines = [];
442
+ function appendLinesToResult(source, lineRange) {
443
+ for (let i = lineRange.startLineNumber; i < lineRange.endLineNumberExclusive; i++) {
444
+ outputLines.push(source[i - 1]);
445
+ }
446
+ }
447
+ let resultStartLineNumber = 1;
448
+ for (const [range, state] of states) {
449
+ if (state.handled.get()) {
450
+ continue;
451
+ }
452
+ const resultRange = this.resultTextModelDiffs.getResultLineRange(range.baseRange);
453
+ appendLinesToResult(resultLines, LineRange.fromLineNumbers(resultStartLineNumber, Math.max(resultStartLineNumber, resultRange.startLineNumber)));
454
+ resultStartLineNumber = resultRange.endLineNumberExclusive;
455
+ outputLines.push('<<<<<<<');
456
+ if (state.accepted.get().kind === ModifiedBaseRangeStateKind.unrecognized) {
457
+ appendLinesToResult(resultLines, resultRange);
458
+ }
459
+ else {
460
+ appendLinesToResult(input1Lines, range.input1Range);
461
+ }
462
+ outputLines.push('=======');
463
+ appendLinesToResult(input2Lines, range.input2Range);
464
+ outputLines.push('>>>>>>>');
465
+ }
466
+ appendLinesToResult(resultLines, LineRange.fromLineNumbers(resultStartLineNumber, resultLines.length + 1));
467
+ return outputLines.join('\n');
468
+ }
469
+ get conflictCount() {
470
+ return arrayCount(this.modifiedBaseRanges.get(), r => r.isConflicting);
471
+ }
472
+ get combinableConflictCount() {
473
+ return arrayCount(this.modifiedBaseRanges.get(), r => r.isConflicting && r.canBeCombined);
474
+ }
475
+ get conflictsResolvedWithBase() {
476
+ return arrayCount(this.modifiedBaseRangeResultStates.get().entries(), ([r, s]) => r.isConflicting &&
477
+ s.accepted.get().kind === ModifiedBaseRangeStateKind.base);
478
+ }
479
+ get conflictsResolvedWithInput1() {
480
+ return arrayCount(this.modifiedBaseRangeResultStates.get().entries(), ([r, s]) => r.isConflicting &&
481
+ s.accepted.get().kind === ModifiedBaseRangeStateKind.input1);
482
+ }
483
+ get conflictsResolvedWithInput2() {
484
+ return arrayCount(this.modifiedBaseRangeResultStates.get().entries(), ([r, s]) => r.isConflicting &&
485
+ s.accepted.get().kind === ModifiedBaseRangeStateKind.input2);
486
+ }
487
+ get conflictsResolvedWithSmartCombination() {
488
+ return arrayCount(this.modifiedBaseRangeResultStates.get().entries(), ([r, s]) => {
489
+ const state = s.accepted.get();
490
+ return r.isConflicting && state.kind === ModifiedBaseRangeStateKind.both && state.smartCombination;
491
+ });
492
+ }
493
+ get manuallySolvedConflictCountThatEqualNone() {
494
+ return arrayCount(this.modifiedBaseRangeResultStates.get().entries(), ([r, s]) => r.isConflicting &&
495
+ s.accepted.get().kind === ModifiedBaseRangeStateKind.unrecognized);
496
+ }
497
+ get manuallySolvedConflictCountThatEqualSmartCombine() {
498
+ return arrayCount(this.modifiedBaseRangeResultStates.get().entries(), ([r, s]) => {
499
+ const state = s.accepted.get();
500
+ return r.isConflicting && s.computedFromDiffing && state.kind === ModifiedBaseRangeStateKind.both && state.smartCombination;
501
+ });
502
+ }
503
+ get manuallySolvedConflictCountThatEqualInput1() {
504
+ return arrayCount(this.modifiedBaseRangeResultStates.get().entries(), ([r, s]) => {
505
+ const state = s.accepted.get();
506
+ return r.isConflicting && s.computedFromDiffing && state.kind === ModifiedBaseRangeStateKind.input1;
507
+ });
508
+ }
509
+ get manuallySolvedConflictCountThatEqualInput2() {
510
+ return arrayCount(this.modifiedBaseRangeResultStates.get().entries(), ([r, s]) => {
511
+ const state = s.accepted.get();
512
+ return r.isConflicting && s.computedFromDiffing && state.kind === ModifiedBaseRangeStateKind.input2;
513
+ });
514
+ }
515
+ get manuallySolvedConflictCountThatEqualNoneAndStartedWithBase() {
516
+ return arrayCount(this.modifiedBaseRangeResultStates.get().entries(), ([r, s]) => {
517
+ const state = s.accepted.get();
518
+ return r.isConflicting && state.kind === ModifiedBaseRangeStateKind.unrecognized && s.previousNonDiffingState?.kind === ModifiedBaseRangeStateKind.base;
519
+ });
520
+ }
521
+ get manuallySolvedConflictCountThatEqualNoneAndStartedWithInput1() {
522
+ return arrayCount(this.modifiedBaseRangeResultStates.get().entries(), ([r, s]) => {
523
+ const state = s.accepted.get();
524
+ return r.isConflicting && state.kind === ModifiedBaseRangeStateKind.unrecognized && s.previousNonDiffingState?.kind === ModifiedBaseRangeStateKind.input1;
525
+ });
526
+ }
527
+ get manuallySolvedConflictCountThatEqualNoneAndStartedWithInput2() {
528
+ return arrayCount(this.modifiedBaseRangeResultStates.get().entries(), ([r, s]) => {
529
+ const state = s.accepted.get();
530
+ return r.isConflicting && state.kind === ModifiedBaseRangeStateKind.unrecognized && s.previousNonDiffingState?.kind === ModifiedBaseRangeStateKind.input2;
531
+ });
532
+ }
533
+ get manuallySolvedConflictCountThatEqualNoneAndStartedWithBothNonSmart() {
534
+ return arrayCount(this.modifiedBaseRangeResultStates.get().entries(), ([r, s]) => {
535
+ const state = s.accepted.get();
536
+ return r.isConflicting && state.kind === ModifiedBaseRangeStateKind.unrecognized && s.previousNonDiffingState?.kind === ModifiedBaseRangeStateKind.both && !s.previousNonDiffingState?.smartCombination;
537
+ });
538
+ }
539
+ get manuallySolvedConflictCountThatEqualNoneAndStartedWithBothSmart() {
540
+ return arrayCount(this.modifiedBaseRangeResultStates.get().entries(), ([r, s]) => {
541
+ const state = s.accepted.get();
542
+ return r.isConflicting && state.kind === ModifiedBaseRangeStateKind.unrecognized && s.previousNonDiffingState?.kind === ModifiedBaseRangeStateKind.both && s.previousNonDiffingState?.smartCombination;
543
+ });
544
+ }
545
+ };
546
+ MergeEditorModel = ( __decorate([
547
+ ( __param(7, ILanguageService)),
548
+ ( __param(8, IUndoRedoService))
549
+ ], MergeEditorModel));
550
+ function arrayCount(array, predicate) {
551
+ let count = 0;
552
+ for (const value of array) {
553
+ if (predicate(value)) {
554
+ count++;
555
+ }
556
+ }
557
+ return count;
558
+ }
559
+ class ModifiedBaseRangeData {
560
+ constructor(baseRange) {
561
+ this.baseRange = baseRange;
562
+ this.accepted = observableValue(`BaseRangeState${this.baseRange.baseRange}`, ModifiedBaseRangeState.base);
563
+ this.handledInput1 = observableValue(`BaseRangeHandledState${this.baseRange.baseRange}.Input1`, false);
564
+ this.handledInput2 = observableValue(`BaseRangeHandledState${this.baseRange.baseRange}.Input2`, false);
565
+ this.computedFromDiffing = false;
566
+ this.previousNonDiffingState = undefined;
567
+ this.handled = derived(this, reader => this.handledInput1.read(reader) && this.handledInput2.read(reader));
568
+ }
569
+ }
570
+ class MarkAsHandledUndoRedoElement {
571
+ constructor(resource, mergeEditorModelRef, stateRef, input1Handled, input2Handled) {
572
+ this.resource = resource;
573
+ this.mergeEditorModelRef = mergeEditorModelRef;
574
+ this.stateRef = stateRef;
575
+ this.input1Handled = input1Handled;
576
+ this.input2Handled = input2Handled;
577
+ this.code = 'undoMarkAsHandled';
578
+ this.label = ( localizeWithPath(
579
+ 'vs/workbench/contrib/mergeEditor/browser/model/mergeEditorModel',
580
+ 'undoMarkAsHandled',
581
+ 'Undo Mark As Handled'
582
+ ));
583
+ this.type = 0 ;
584
+ }
585
+ redo() {
586
+ const mergeEditorModel = this.mergeEditorModelRef.deref();
587
+ if (!mergeEditorModel || mergeEditorModel.isDisposed()) {
588
+ return;
589
+ }
590
+ const state = this.stateRef.deref();
591
+ if (!state) {
592
+ return;
593
+ }
594
+ transaction(tx => {
595
+ state.handledInput1.set(true, tx);
596
+ state.handledInput2.set(true, tx);
597
+ });
598
+ }
599
+ undo() {
600
+ const mergeEditorModel = this.mergeEditorModelRef.deref();
601
+ if (!mergeEditorModel || mergeEditorModel.isDisposed()) {
602
+ return;
603
+ }
604
+ const state = this.stateRef.deref();
605
+ if (!state) {
606
+ return;
607
+ }
608
+ transaction(tx => {
609
+ state.handledInput1.set(this.input1Handled, tx);
610
+ state.handledInput2.set(this.input2Handled, tx);
611
+ });
612
+ }
613
+ }
614
+ export { MergeEditorModel };