@pierre/diffs 1.3.0-beta.1 → 1.3.0-beta.10

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 (701) hide show
  1. package/README.md +15 -15
  2. package/dist/components/CodeView.d.ts +103 -15
  3. package/dist/components/CodeView.d.ts.map +1 -1
  4. package/dist/components/CodeView.js +349 -50
  5. package/dist/components/CodeView.js.map +1 -1
  6. package/dist/components/File.d.ts +10 -7
  7. package/dist/components/File.d.ts.map +1 -1
  8. package/dist/components/File.js +99 -40
  9. package/dist/components/File.js.map +1 -1
  10. package/dist/components/FileDiff.d.ts +76 -36
  11. package/dist/components/FileDiff.d.ts.map +1 -1
  12. package/dist/components/FileDiff.js +364 -96
  13. package/dist/components/FileDiff.js.map +1 -1
  14. package/dist/components/FileStream.d.ts +0 -1
  15. package/dist/components/FileStream.d.ts.map +1 -1
  16. package/dist/components/FileStream.js +10 -7
  17. package/dist/components/FileStream.js.map +1 -1
  18. package/dist/components/UnresolvedFile.d.ts +3 -3
  19. package/dist/components/UnresolvedFile.d.ts.map +1 -1
  20. package/dist/components/UnresolvedFile.js +8 -6
  21. package/dist/components/UnresolvedFile.js.map +1 -1
  22. package/dist/components/VirtualizedFile.d.ts +8 -4
  23. package/dist/components/VirtualizedFile.d.ts.map +1 -1
  24. package/dist/components/VirtualizedFile.js +118 -44
  25. package/dist/components/VirtualizedFile.js.map +1 -1
  26. package/dist/components/VirtualizedFileDiff.d.ts +35 -9
  27. package/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
  28. package/dist/components/VirtualizedFileDiff.js +367 -120
  29. package/dist/components/VirtualizedFileDiff.js.map +1 -1
  30. package/dist/components/Virtualizer.d.ts +4 -1
  31. package/dist/components/Virtualizer.d.ts.map +1 -1
  32. package/dist/components/Virtualizer.js +47 -29
  33. package/dist/components/Virtualizer.js.map +1 -1
  34. package/dist/components/VirtulizerDevelopment.d.ts.map +1 -1
  35. package/dist/components/web-components.d.ts.map +1 -1
  36. package/dist/components/web-components.js +2 -3
  37. package/dist/components/web-components.js.map +1 -1
  38. package/dist/constants.d.ts +5 -2
  39. package/dist/constants.d.ts.map +1 -1
  40. package/dist/constants.js +5 -2
  41. package/dist/constants.js.map +1 -1
  42. package/dist/editor/command.d.ts +3 -2
  43. package/dist/editor/command.d.ts.map +1 -1
  44. package/dist/editor/command.js +29 -6
  45. package/dist/editor/command.js.map +1 -1
  46. package/dist/editor/editStack.d.ts +7 -2
  47. package/dist/editor/editStack.d.ts.map +1 -1
  48. package/dist/editor/editStack.js +4 -4
  49. package/dist/editor/editStack.js.map +1 -1
  50. package/dist/editor/editor.d.ts +91 -8
  51. package/dist/editor/editor.d.ts.map +1 -1
  52. package/dist/editor/editor.js +1926 -704
  53. package/dist/editor/editor.js.map +1 -1
  54. package/dist/editor/editor2.js +6 -0
  55. package/dist/editor/editor2.js.map +1 -0
  56. package/dist/editor/index.d.ts +4 -2
  57. package/dist/editor/index.js +1 -2
  58. package/dist/editor/languages.d.ts +26 -0
  59. package/dist/editor/languages.d.ts.map +1 -0
  60. package/dist/editor/languages.js +363 -0
  61. package/dist/editor/languages.js.map +1 -0
  62. package/dist/editor/lineAnnotations.d.ts +2 -1
  63. package/dist/editor/lineAnnotations.d.ts.map +1 -1
  64. package/dist/editor/lineAnnotations.js +193 -13
  65. package/dist/editor/lineAnnotations.js.map +1 -1
  66. package/dist/editor/marker.d.ts +38 -0
  67. package/dist/editor/marker.d.ts.map +1 -0
  68. package/dist/editor/marker.js +245 -0
  69. package/dist/editor/marker.js.map +1 -0
  70. package/dist/editor/matchBrackets.d.ts +9 -0
  71. package/dist/editor/matchBrackets.d.ts.map +1 -0
  72. package/dist/editor/matchBrackets.js +138 -0
  73. package/dist/editor/matchBrackets.js.map +1 -0
  74. package/dist/editor/pieceTable.d.ts +15 -7
  75. package/dist/editor/pieceTable.d.ts.map +1 -1
  76. package/dist/editor/pieceTable.js +252 -171
  77. package/dist/editor/pieceTable.js.map +1 -1
  78. package/dist/editor/platform.d.ts +8 -1
  79. package/dist/editor/platform.d.ts.map +1 -1
  80. package/dist/editor/platform.js +18 -5
  81. package/dist/editor/platform.js.map +1 -1
  82. package/dist/editor/popover.d.ts +65 -0
  83. package/dist/editor/popover.d.ts.map +1 -0
  84. package/dist/editor/popover.js +187 -0
  85. package/dist/editor/popover.js.map +1 -0
  86. package/dist/editor/searchPanel.d.ts +17 -7
  87. package/dist/editor/searchPanel.d.ts.map +1 -1
  88. package/dist/editor/searchPanel.js +268 -169
  89. package/dist/editor/searchPanel.js.map +1 -1
  90. package/dist/editor/selection.d.ts +100 -15
  91. package/dist/editor/selection.d.ts.map +1 -1
  92. package/dist/editor/selection.js +862 -136
  93. package/dist/editor/selection.js.map +1 -1
  94. package/dist/editor/selectionAction.d.ts +46 -0
  95. package/dist/editor/selectionAction.d.ts.map +1 -0
  96. package/dist/editor/selectionAction.js +64 -0
  97. package/dist/editor/selectionAction.js.map +1 -0
  98. package/dist/editor/sprite.d.ts +8 -0
  99. package/dist/editor/sprite.d.ts.map +1 -0
  100. package/dist/editor/sprite.js +45 -0
  101. package/dist/editor/sprite.js.map +1 -0
  102. package/dist/editor/stateStorage.d.ts +15 -0
  103. package/dist/editor/stateStorage.d.ts.map +1 -0
  104. package/dist/editor/stateStorage.js +65 -0
  105. package/dist/editor/stateStorage.js.map +1 -0
  106. package/dist/editor/textDocument.d.ts +21 -83
  107. package/dist/editor/textDocument.d.ts.map +1 -1
  108. package/dist/editor/textDocument.js +117 -48
  109. package/dist/editor/textDocument.js.map +1 -1
  110. package/dist/editor/textMeasure.d.ts +31 -2
  111. package/dist/editor/textMeasure.d.ts.map +1 -1
  112. package/dist/editor/textMeasure.js +122 -21
  113. package/dist/editor/textMeasure.js.map +1 -1
  114. package/dist/editor/{tokenzier.d.ts → tokenizer.d.ts} +16 -12
  115. package/dist/editor/tokenizer.d.ts.map +1 -0
  116. package/dist/editor/tokenizer.js +513 -0
  117. package/dist/editor/tokenizer.js.map +1 -0
  118. package/dist/editor/utils.d.ts +6 -1
  119. package/dist/editor/utils.d.ts.map +1 -1
  120. package/dist/editor/utils.js +34 -3
  121. package/dist/editor/utils.js.map +1 -1
  122. package/dist/highlighter/languages/areLanguagesAttached.d.ts.map +1 -1
  123. package/dist/highlighter/languages/areLanguagesAttached.js +1 -2
  124. package/dist/highlighter/languages/areLanguagesAttached.js.map +1 -1
  125. package/dist/highlighter/languages/attachResolvedLanguages.d.ts +0 -2
  126. package/dist/highlighter/languages/attachResolvedLanguages.d.ts.map +1 -1
  127. package/dist/highlighter/languages/attachResolvedLanguages.js +1 -2
  128. package/dist/highlighter/languages/attachResolvedLanguages.js.map +1 -1
  129. package/dist/highlighter/languages/cleanUpResolvedLanguages.d.ts.map +1 -1
  130. package/dist/highlighter/languages/cleanUpResolvedLanguages.js +1 -2
  131. package/dist/highlighter/languages/cleanUpResolvedLanguages.js.map +1 -1
  132. package/dist/highlighter/languages/constants.d.ts +0 -1
  133. package/dist/highlighter/languages/constants.d.ts.map +1 -1
  134. package/dist/highlighter/languages/constants.js +1 -1
  135. package/dist/highlighter/languages/constants.js.map +1 -1
  136. package/dist/highlighter/languages/getResolvedLanguages.d.ts +0 -2
  137. package/dist/highlighter/languages/getResolvedLanguages.d.ts.map +1 -1
  138. package/dist/highlighter/languages/getResolvedLanguages.js +1 -2
  139. package/dist/highlighter/languages/getResolvedLanguages.js.map +1 -1
  140. package/dist/highlighter/languages/getResolvedOrResolveLanguage.d.ts +0 -2
  141. package/dist/highlighter/languages/getResolvedOrResolveLanguage.d.ts.map +1 -1
  142. package/dist/highlighter/languages/getResolvedOrResolveLanguage.js +1 -2
  143. package/dist/highlighter/languages/getResolvedOrResolveLanguage.js.map +1 -1
  144. package/dist/highlighter/languages/hasResolvedLanguages.d.ts.map +1 -1
  145. package/dist/highlighter/languages/hasResolvedLanguages.js +1 -2
  146. package/dist/highlighter/languages/hasResolvedLanguages.js.map +1 -1
  147. package/dist/highlighter/languages/registerCustomLanguage.d.ts +0 -1
  148. package/dist/highlighter/languages/registerCustomLanguage.d.ts.map +1 -1
  149. package/dist/highlighter/languages/registerCustomLanguage.js +1 -2
  150. package/dist/highlighter/languages/registerCustomLanguage.js.map +1 -1
  151. package/dist/highlighter/languages/resolveLanguage.d.ts +0 -2
  152. package/dist/highlighter/languages/resolveLanguage.d.ts.map +1 -1
  153. package/dist/highlighter/languages/resolveLanguage.js +4 -5
  154. package/dist/highlighter/languages/resolveLanguage.js.map +1 -1
  155. package/dist/highlighter/languages/resolveLanguages.d.ts +0 -2
  156. package/dist/highlighter/languages/resolveLanguages.d.ts.map +1 -1
  157. package/dist/highlighter/languages/resolveLanguages.js +1 -2
  158. package/dist/highlighter/languages/resolveLanguages.js.map +1 -1
  159. package/dist/highlighter/shared_highlighter.d.ts.map +1 -1
  160. package/dist/highlighter/shared_highlighter.js +6 -33
  161. package/dist/highlighter/shared_highlighter.js.map +1 -1
  162. package/dist/highlighter/themes/areThemesAttached.d.ts.map +1 -1
  163. package/dist/highlighter/themes/areThemesAttached.js +1 -2
  164. package/dist/highlighter/themes/areThemesAttached.js.map +1 -1
  165. package/dist/highlighter/themes/attachResolvedThemes.d.ts.map +1 -1
  166. package/dist/highlighter/themes/attachResolvedThemes.js +5 -5
  167. package/dist/highlighter/themes/attachResolvedThemes.js.map +1 -1
  168. package/dist/highlighter/themes/cleanUpResolvedThemes.d.ts.map +1 -1
  169. package/dist/highlighter/themes/cleanUpResolvedThemes.js +4 -4
  170. package/dist/highlighter/themes/cleanUpResolvedThemes.js.map +1 -1
  171. package/dist/highlighter/themes/constants.d.ts +1 -7
  172. package/dist/highlighter/themes/constants.d.ts.map +1 -1
  173. package/dist/highlighter/themes/constants.js +2 -5
  174. package/dist/highlighter/themes/constants.js.map +1 -1
  175. package/dist/highlighter/themes/getResolvedOrResolveTheme.d.ts.map +1 -1
  176. package/dist/highlighter/themes/getResolvedOrResolveTheme.js +3 -4
  177. package/dist/highlighter/themes/getResolvedOrResolveTheme.js.map +1 -1
  178. package/dist/highlighter/themes/getResolvedThemes.d.ts.map +1 -1
  179. package/dist/highlighter/themes/getResolvedThemes.js +3 -10
  180. package/dist/highlighter/themes/getResolvedThemes.js.map +1 -1
  181. package/dist/highlighter/themes/hasResolvedThemes.d.ts.map +1 -1
  182. package/dist/highlighter/themes/hasResolvedThemes.js +3 -5
  183. package/dist/highlighter/themes/hasResolvedThemes.js.map +1 -1
  184. package/dist/highlighter/themes/registerCustomCSSVariableTheme.d.ts.map +1 -1
  185. package/dist/highlighter/themes/registerCustomCSSVariableTheme.js +2 -3
  186. package/dist/highlighter/themes/registerCustomCSSVariableTheme.js.map +1 -1
  187. package/dist/highlighter/themes/registerCustomTheme.d.ts +5 -3
  188. package/dist/highlighter/themes/registerCustomTheme.d.ts.map +1 -1
  189. package/dist/highlighter/themes/registerCustomTheme.js +16 -7
  190. package/dist/highlighter/themes/registerCustomTheme.js.map +1 -1
  191. package/dist/highlighter/themes/resolveTheme.d.ts.map +1 -1
  192. package/dist/highlighter/themes/resolveTheme.js +7 -29
  193. package/dist/highlighter/themes/resolveTheme.js.map +1 -1
  194. package/dist/highlighter/themes/resolveThemes.d.ts.map +1 -1
  195. package/dist/highlighter/themes/resolveThemes.js +6 -14
  196. package/dist/highlighter/themes/resolveThemes.js.map +1 -1
  197. package/dist/highlighter/themes/themeResolution.d.ts +8 -0
  198. package/dist/highlighter/themes/themeResolution.d.ts.map +1 -0
  199. package/dist/highlighter/themes/themeResolution.js +21 -0
  200. package/dist/highlighter/themes/themeResolution.js.map +1 -0
  201. package/dist/highlighter/themes/themeResolver.d.ts +8 -0
  202. package/dist/highlighter/themes/themeResolver.d.ts.map +1 -0
  203. package/dist/highlighter/themes/themeResolver.js +7 -0
  204. package/dist/highlighter/themes/themeResolver.js.map +1 -0
  205. package/dist/index.d.ts +16 -14
  206. package/dist/index.js +13 -12
  207. package/dist/managers/InteractionManager.d.ts +7 -0
  208. package/dist/managers/InteractionManager.d.ts.map +1 -1
  209. package/dist/managers/InteractionManager.js +26 -5
  210. package/dist/managers/InteractionManager.js.map +1 -1
  211. package/dist/managers/ResizeManager.d.ts +10 -2
  212. package/dist/managers/ResizeManager.d.ts.map +1 -1
  213. package/dist/managers/ResizeManager.js +35 -15
  214. package/dist/managers/ResizeManager.js.map +1 -1
  215. package/dist/managers/ScrollSyncManager.d.ts.map +1 -1
  216. package/dist/managers/ScrollSyncManager.js +1 -1
  217. package/dist/managers/ScrollSyncManager.js.map +1 -1
  218. package/dist/managers/UniversalRenderingManager.d.ts +2 -1
  219. package/dist/managers/UniversalRenderingManager.d.ts.map +1 -1
  220. package/dist/managers/UniversalRenderingManager.js +8 -3
  221. package/dist/managers/UniversalRenderingManager.js.map +1 -1
  222. package/dist/node_modules/.pnpm/@types_hast@3.0.4/node_modules/@types/hast/index.d.ts +228 -0
  223. package/dist/node_modules/.pnpm/@types_hast@3.0.4/node_modules/@types/hast/index.d.ts.map +1 -0
  224. package/dist/node_modules/.pnpm/@types_unist@3.0.3/node_modules/@types/unist/index.d.ts +84 -0
  225. package/dist/node_modules/.pnpm/@types_unist@3.0.3/node_modules/@types/unist/index.d.ts.map +1 -0
  226. package/dist/react/CodeView.d.ts +26 -2
  227. package/dist/react/CodeView.d.ts.map +1 -1
  228. package/dist/react/CodeView.js +90 -30
  229. package/dist/react/CodeView.js.map +1 -1
  230. package/dist/react/EditContext.d.ts +15 -0
  231. package/dist/react/EditContext.d.ts.map +1 -0
  232. package/dist/react/EditContext.js +23 -0
  233. package/dist/react/EditContext.js.map +1 -0
  234. package/dist/react/File.d.ts +1 -0
  235. package/dist/react/File.d.ts.map +1 -1
  236. package/dist/react/File.js +4 -6
  237. package/dist/react/File.js.map +1 -1
  238. package/dist/react/FileDiff.d.ts +1 -0
  239. package/dist/react/FileDiff.d.ts.map +1 -1
  240. package/dist/react/FileDiff.js +4 -6
  241. package/dist/react/FileDiff.js.map +1 -1
  242. package/dist/react/MultiFileDiff.d.ts +4 -4
  243. package/dist/react/MultiFileDiff.d.ts.map +1 -1
  244. package/dist/react/MultiFileDiff.js +4 -6
  245. package/dist/react/MultiFileDiff.js.map +1 -1
  246. package/dist/react/PatchDiff.d.ts +1 -0
  247. package/dist/react/PatchDiff.d.ts.map +1 -1
  248. package/dist/react/PatchDiff.js +4 -6
  249. package/dist/react/PatchDiff.js.map +1 -1
  250. package/dist/react/UnresolvedFile.d.ts +2 -1
  251. package/dist/react/UnresolvedFile.d.ts.map +1 -1
  252. package/dist/react/UnresolvedFile.js +4 -6
  253. package/dist/react/UnresolvedFile.js.map +1 -1
  254. package/dist/react/Virtualizer.d.ts.map +1 -1
  255. package/dist/react/Virtualizer.js +2 -5
  256. package/dist/react/Virtualizer.js.map +1 -1
  257. package/dist/react/WorkerPoolContext.d.ts +0 -1
  258. package/dist/react/WorkerPoolContext.d.ts.map +1 -1
  259. package/dist/react/WorkerPoolContext.js +2 -5
  260. package/dist/react/WorkerPoolContext.js.map +1 -1
  261. package/dist/react/constants.d.ts.map +1 -1
  262. package/dist/react/constants.js +1 -1
  263. package/dist/react/constants.js.map +1 -1
  264. package/dist/react/index.d.ts +3 -3
  265. package/dist/react/index.js +2 -3
  266. package/dist/react/jsx.d.ts +0 -1
  267. package/dist/react/jsx.d.ts.map +1 -1
  268. package/dist/react/types.d.ts +2 -0
  269. package/dist/react/types.d.ts.map +1 -1
  270. package/dist/react/types.js +1 -0
  271. package/dist/react/utils/renderDiffChildren.d.ts +2 -0
  272. package/dist/react/utils/renderDiffChildren.d.ts.map +1 -1
  273. package/dist/react/utils/renderDiffChildren.js +18 -11
  274. package/dist/react/utils/renderDiffChildren.js.map +1 -1
  275. package/dist/react/utils/renderFileChildren.d.ts +2 -0
  276. package/dist/react/utils/renderFileChildren.d.ts.map +1 -1
  277. package/dist/react/utils/renderFileChildren.js +18 -11
  278. package/dist/react/utils/renderFileChildren.js.map +1 -1
  279. package/dist/react/utils/templateRender.d.ts.map +1 -1
  280. package/dist/react/utils/templateRender.js +1 -2
  281. package/dist/react/utils/templateRender.js.map +1 -1
  282. package/dist/react/utils/useFileDiffInstance.d.ts.map +1 -1
  283. package/dist/react/utils/useFileDiffInstance.js +15 -18
  284. package/dist/react/utils/useFileDiffInstance.js.map +1 -1
  285. package/dist/react/utils/useFileInstance.d.ts.map +1 -1
  286. package/dist/react/utils/useFileInstance.js +2 -3
  287. package/dist/react/utils/useFileInstance.js.map +1 -1
  288. package/dist/react/utils/useStableCallback.d.ts.map +1 -1
  289. package/dist/react/utils/useStableCallback.js +1 -2
  290. package/dist/react/utils/useStableCallback.js.map +1 -1
  291. package/dist/react/utils/useUnresolvedFileInstance.d.ts.map +1 -1
  292. package/dist/react/utils/useUnresolvedFileInstance.js +10 -11
  293. package/dist/react/utils/useUnresolvedFileInstance.js.map +1 -1
  294. package/dist/renderers/DiffHunksRenderer.d.ts +30 -4
  295. package/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
  296. package/dist/renderers/DiffHunksRenderer.js +313 -45
  297. package/dist/renderers/DiffHunksRenderer.js.map +1 -1
  298. package/dist/renderers/FileRenderer.d.ts +7 -6
  299. package/dist/renderers/FileRenderer.d.ts.map +1 -1
  300. package/dist/renderers/FileRenderer.js +113 -56
  301. package/dist/renderers/FileRenderer.js.map +1 -1
  302. package/dist/renderers/UnresolvedFileHunksRenderer.d.ts +1 -2
  303. package/dist/renderers/UnresolvedFileHunksRenderer.d.ts.map +1 -1
  304. package/dist/renderers/UnresolvedFileHunksRenderer.js +1 -2
  305. package/dist/renderers/UnresolvedFileHunksRenderer.js.map +1 -1
  306. package/dist/shiki-stream/index.js +1 -2
  307. package/dist/shiki-stream/stream.d.ts +0 -1
  308. package/dist/shiki-stream/stream.d.ts.map +1 -1
  309. package/dist/shiki-stream/stream.js +1 -2
  310. package/dist/shiki-stream/stream.js.map +1 -1
  311. package/dist/shiki-stream/tokenizer.d.ts.map +1 -1
  312. package/dist/shiki-stream/tokenizer.js +1 -1
  313. package/dist/shiki-stream/tokenizer.js.map +1 -1
  314. package/dist/shiki-stream/types.d.ts +0 -1
  315. package/dist/shiki-stream/types.d.ts.map +1 -1
  316. package/dist/sprite.d.ts.map +1 -1
  317. package/dist/sprite.js +1 -1
  318. package/dist/ssr/FileDiffReact.d.ts.map +1 -1
  319. package/dist/ssr/FileDiffReact.js +4 -7
  320. package/dist/ssr/FileDiffReact.js.map +1 -1
  321. package/dist/ssr/index.d.ts +2 -2
  322. package/dist/ssr/index.js +1 -2
  323. package/dist/ssr/preloadDiffs.d.ts +12 -11
  324. package/dist/ssr/preloadDiffs.d.ts.map +1 -1
  325. package/dist/ssr/preloadDiffs.js +16 -9
  326. package/dist/ssr/preloadDiffs.js.map +1 -1
  327. package/dist/ssr/preloadFile.d.ts.map +1 -1
  328. package/dist/ssr/preloadFile.js +1 -2
  329. package/dist/ssr/preloadFile.js.map +1 -1
  330. package/dist/ssr/preloadPatchFile.d.ts.map +1 -1
  331. package/dist/ssr/preloadPatchFile.js +2 -3
  332. package/dist/ssr/preloadPatchFile.js.map +1 -1
  333. package/dist/ssr/renderHTML.d.ts +1 -1
  334. package/dist/ssr/renderHTML.d.ts.map +1 -1
  335. package/dist/ssr/renderHTML.js +1 -2
  336. package/dist/ssr/renderHTML.js.map +1 -1
  337. package/dist/string-import.d.ts +4 -0
  338. package/dist/string-import.d.ts.map +1 -1
  339. package/dist/style.js +3 -3
  340. package/dist/style.js.map +1 -1
  341. package/dist/types.d.ts +272 -31
  342. package/dist/types.d.ts.map +1 -1
  343. package/dist/utils/applyLineTextWithNewline.d.ts +5 -0
  344. package/dist/utils/applyLineTextWithNewline.d.ts.map +1 -0
  345. package/dist/utils/applyLineTextWithNewline.js +11 -0
  346. package/dist/utils/applyLineTextWithNewline.js.map +1 -0
  347. package/dist/utils/areDiffLineAnnotationsEqual.d.ts.map +1 -1
  348. package/dist/utils/areDiffLineAnnotationsEqual.js +1 -1
  349. package/dist/utils/areDiffLineAnnotationsEqual.js.map +1 -1
  350. package/dist/utils/areDiffRenderOptionsEqual.d.ts.map +1 -1
  351. package/dist/utils/areDiffRenderOptionsEqual.js +1 -2
  352. package/dist/utils/areDiffRenderOptionsEqual.js.map +1 -1
  353. package/dist/utils/areDiffTargetsEqual.d.ts.map +1 -1
  354. package/dist/utils/areDiffTargetsEqual.js +1 -1
  355. package/dist/utils/areDiffTargetsEqual.js.map +1 -1
  356. package/dist/utils/areFileRenderOptionsEqual.d.ts.map +1 -1
  357. package/dist/utils/areFileRenderOptionsEqual.js +1 -2
  358. package/dist/utils/areFileRenderOptionsEqual.js.map +1 -1
  359. package/dist/utils/areFilesEqual.d.ts.map +1 -1
  360. package/dist/utils/areFilesEqual.js +1 -1
  361. package/dist/utils/areFilesEqual.js.map +1 -1
  362. package/dist/utils/areHunkDataEqual.d.ts.map +1 -1
  363. package/dist/utils/areHunkDataEqual.js +2 -2
  364. package/dist/utils/areHunkDataEqual.js.map +1 -1
  365. package/dist/utils/areLineAnnotationsEqual.d.ts.map +1 -1
  366. package/dist/utils/areLineAnnotationsEqual.js +1 -1
  367. package/dist/utils/areLineAnnotationsEqual.js.map +1 -1
  368. package/dist/utils/areManagedSnapshotsEqual.d.ts +2 -2
  369. package/dist/utils/areManagedSnapshotsEqual.d.ts.map +1 -1
  370. package/dist/utils/areManagedSnapshotsEqual.js +6 -1
  371. package/dist/utils/areManagedSnapshotsEqual.js.map +1 -1
  372. package/dist/utils/areMergeConflictActionsEqual.d.ts.map +1 -1
  373. package/dist/utils/areMergeConflictActionsEqual.js +1 -1
  374. package/dist/utils/areMergeConflictActionsEqual.js.map +1 -1
  375. package/dist/utils/areObjectsEqual.d.ts.map +1 -1
  376. package/dist/utils/areObjectsEqual.js +1 -1
  377. package/dist/utils/areObjectsEqual.js.map +1 -1
  378. package/dist/utils/areOptionsEqual.d.ts +0 -2
  379. package/dist/utils/areOptionsEqual.d.ts.map +1 -1
  380. package/dist/utils/areOptionsEqual.js +1 -2
  381. package/dist/utils/areOptionsEqual.js.map +1 -1
  382. package/dist/utils/arePrePropertiesEqual.d.ts.map +1 -1
  383. package/dist/utils/arePrePropertiesEqual.js +1 -1
  384. package/dist/utils/arePrePropertiesEqual.js.map +1 -1
  385. package/dist/utils/areRenderRangesEqual.d.ts.map +1 -1
  386. package/dist/utils/areRenderRangesEqual.js +1 -1
  387. package/dist/utils/areRenderRangesEqual.js.map +1 -1
  388. package/dist/utils/areSelectionPointsEqual.d.ts.map +1 -1
  389. package/dist/utils/areSelectionPointsEqual.js +1 -1
  390. package/dist/utils/areSelectionPointsEqual.js.map +1 -1
  391. package/dist/utils/areSelectionsEqual.d.ts.map +1 -1
  392. package/dist/utils/areSelectionsEqual.js +1 -1
  393. package/dist/utils/areSelectionsEqual.js.map +1 -1
  394. package/dist/utils/areThemesEqual.d.ts.map +1 -1
  395. package/dist/utils/areThemesEqual.js +1 -1
  396. package/dist/utils/areThemesEqual.js.map +1 -1
  397. package/dist/utils/areVirtualWindowSpecsEqual.d.ts.map +1 -1
  398. package/dist/utils/areVirtualWindowSpecsEqual.js +1 -1
  399. package/dist/utils/areVirtualWindowSpecsEqual.js.map +1 -1
  400. package/dist/utils/areWorkerStatsEqual.d.ts +0 -2
  401. package/dist/utils/areWorkerStatsEqual.d.ts.map +1 -1
  402. package/dist/utils/areWorkerStatsEqual.js +1 -1
  403. package/dist/utils/areWorkerStatsEqual.js.map +1 -1
  404. package/dist/utils/awaitWithTimeout.d.ts +5 -0
  405. package/dist/utils/awaitWithTimeout.d.ts.map +1 -0
  406. package/dist/utils/awaitWithTimeout.js +15 -0
  407. package/dist/utils/awaitWithTimeout.js.map +1 -0
  408. package/dist/utils/cleanLastNewline.d.ts.map +1 -1
  409. package/dist/utils/cleanLastNewline.js +1 -1
  410. package/dist/utils/cleanLastNewline.js.map +1 -1
  411. package/dist/utils/cloneFileDiffMetadata.d.ts +7 -0
  412. package/dist/utils/cloneFileDiffMetadata.d.ts.map +1 -0
  413. package/dist/utils/cloneFileDiffMetadata.js +16 -0
  414. package/dist/utils/cloneFileDiffMetadata.js.map +1 -0
  415. package/dist/utils/computeEstimatedDiffHeights.d.ts +3 -1
  416. package/dist/utils/computeEstimatedDiffHeights.d.ts.map +1 -1
  417. package/dist/utils/computeEstimatedDiffHeights.js +18 -23
  418. package/dist/utils/computeEstimatedDiffHeights.js.map +1 -1
  419. package/dist/utils/computeFileOffsets.d.ts +9 -1
  420. package/dist/utils/computeFileOffsets.d.ts.map +1 -1
  421. package/dist/utils/computeFileOffsets.js +20 -2
  422. package/dist/utils/computeFileOffsets.js.map +1 -1
  423. package/dist/utils/computeVirtualFileMetrics.d.ts.map +1 -1
  424. package/dist/utils/computeVirtualFileMetrics.js +1 -2
  425. package/dist/utils/computeVirtualFileMetrics.js.map +1 -1
  426. package/dist/utils/createAnnotationElement.d.ts +1 -1
  427. package/dist/utils/createAnnotationElement.d.ts.map +1 -1
  428. package/dist/utils/createAnnotationElement.js +1 -2
  429. package/dist/utils/createAnnotationElement.js.map +1 -1
  430. package/dist/utils/createAnnotationWrapperNode.d.ts.map +1 -1
  431. package/dist/utils/createAnnotationWrapperNode.js +1 -1
  432. package/dist/utils/createAnnotationWrapperNode.js.map +1 -1
  433. package/dist/utils/createCodeViewHeaderFooterHostElement.d.ts +5 -0
  434. package/dist/utils/createCodeViewHeaderFooterHostElement.d.ts.map +1 -0
  435. package/dist/utils/createCodeViewHeaderFooterHostElement.js +19 -0
  436. package/dist/utils/createCodeViewHeaderFooterHostElement.js.map +1 -0
  437. package/dist/utils/createContentColumn.d.ts +1 -1
  438. package/dist/utils/createContentColumn.d.ts.map +1 -1
  439. package/dist/utils/createContentColumn.js +1 -2
  440. package/dist/utils/createContentColumn.js.map +1 -1
  441. package/dist/utils/createEmptyRowBuffer.d.ts +1 -1
  442. package/dist/utils/createEmptyRowBuffer.d.ts.map +1 -1
  443. package/dist/utils/createEmptyRowBuffer.js +1 -2
  444. package/dist/utils/createEmptyRowBuffer.js.map +1 -1
  445. package/dist/utils/createFileHeaderElement.d.ts +1 -1
  446. package/dist/utils/createFileHeaderElement.d.ts.map +1 -1
  447. package/dist/utils/createFileHeaderElement.js +6 -3
  448. package/dist/utils/createFileHeaderElement.js.map +1 -1
  449. package/dist/utils/createGutterUtilityContentNode.d.ts.map +1 -1
  450. package/dist/utils/createGutterUtilityContentNode.js +1 -1
  451. package/dist/utils/createGutterUtilityContentNode.js.map +1 -1
  452. package/dist/utils/createGutterUtilityElement.d.ts +1 -1
  453. package/dist/utils/createGutterUtilityElement.d.ts.map +1 -1
  454. package/dist/utils/createGutterUtilityElement.js +1 -2
  455. package/dist/utils/createGutterUtilityElement.js.map +1 -1
  456. package/dist/utils/createNoNewlineElement.d.ts +1 -1
  457. package/dist/utils/createNoNewlineElement.d.ts.map +1 -1
  458. package/dist/utils/createNoNewlineElement.js +1 -2
  459. package/dist/utils/createNoNewlineElement.js.map +1 -1
  460. package/dist/utils/createPreElement.d.ts +1 -1
  461. package/dist/utils/createPreElement.d.ts.map +1 -1
  462. package/dist/utils/createPreElement.js +1 -3
  463. package/dist/utils/createPreElement.js.map +1 -1
  464. package/dist/utils/createRowNodes.d.ts.map +1 -1
  465. package/dist/utils/createRowNodes.js +1 -1
  466. package/dist/utils/createRowNodes.js.map +1 -1
  467. package/dist/utils/createSeparator.d.ts +1 -1
  468. package/dist/utils/createSeparator.d.ts.map +1 -1
  469. package/dist/utils/createSeparator.js +1 -2
  470. package/dist/utils/createSeparator.js.map +1 -1
  471. package/dist/utils/createSpanNodeFromToken.d.ts.map +1 -1
  472. package/dist/utils/createSpanNodeFromToken.js +1 -2
  473. package/dist/utils/createSpanNodeFromToken.js.map +1 -1
  474. package/dist/utils/createStyleElement.d.ts +1 -1
  475. package/dist/utils/createStyleElement.d.ts.map +1 -1
  476. package/dist/utils/createStyleElement.js +1 -2
  477. package/dist/utils/createStyleElement.js.map +1 -1
  478. package/dist/utils/createTransformerWithState.d.ts.map +1 -1
  479. package/dist/utils/createTransformerWithState.js +1 -2
  480. package/dist/utils/createTransformerWithState.js.map +1 -1
  481. package/dist/utils/createUnsafeCSSStyleNode.d.ts.map +1 -1
  482. package/dist/utils/createUnsafeCSSStyleNode.js +1 -2
  483. package/dist/utils/createUnsafeCSSStyleNode.js.map +1 -1
  484. package/dist/utils/createWindowFromScrollPosition.d.ts.map +1 -1
  485. package/dist/utils/createWindowFromScrollPosition.js +5 -5
  486. package/dist/utils/createWindowFromScrollPosition.js.map +1 -1
  487. package/dist/utils/cssWrappers.d.ts.map +1 -1
  488. package/dist/utils/cssWrappers.js +2 -3
  489. package/dist/utils/cssWrappers.js.map +1 -1
  490. package/dist/utils/detachString.d.ts.map +1 -1
  491. package/dist/utils/detachString.js +1 -1
  492. package/dist/utils/detachString.js.map +1 -1
  493. package/dist/utils/diffAcceptRejectHunk.d.ts.map +1 -1
  494. package/dist/utils/diffAcceptRejectHunk.js +1 -2
  495. package/dist/utils/diffAcceptRejectHunk.js.map +1 -1
  496. package/dist/utils/editSessionHunks.d.ts +84 -0
  497. package/dist/utils/editSessionHunks.d.ts.map +1 -0
  498. package/dist/utils/editSessionHunks.js +366 -0
  499. package/dist/utils/editSessionHunks.js.map +1 -0
  500. package/dist/utils/formatCSSVariablePrefix.d.ts.map +1 -1
  501. package/dist/utils/formatCSSVariablePrefix.js +1 -1
  502. package/dist/utils/formatCSSVariablePrefix.js.map +1 -1
  503. package/dist/utils/getDiffFileInput.d.ts +14 -0
  504. package/dist/utils/getDiffFileInput.d.ts.map +1 -0
  505. package/dist/utils/getDiffFileInput.js +24 -0
  506. package/dist/utils/getDiffFileInput.js.map +1 -0
  507. package/dist/utils/getDiffHunksRendererOptions.d.ts.map +1 -1
  508. package/dist/utils/getDiffHunksRendererOptions.js +2 -1
  509. package/dist/utils/getDiffHunksRendererOptions.js.map +1 -1
  510. package/dist/utils/getFileRendererOptions.d.ts.map +1 -1
  511. package/dist/utils/getFileRendererOptions.js +1 -1
  512. package/dist/utils/getFileRendererOptions.js.map +1 -1
  513. package/dist/utils/getFiletypeFromFileName.d.ts.map +1 -1
  514. package/dist/utils/getFiletypeFromFileName.js +3 -1
  515. package/dist/utils/getFiletypeFromFileName.js.map +1 -1
  516. package/dist/utils/getHighlighterOptions.d.ts.map +1 -1
  517. package/dist/utils/getHighlighterOptions.js +1 -2
  518. package/dist/utils/getHighlighterOptions.js.map +1 -1
  519. package/dist/utils/getHighlighterThemeStyles.d.ts.map +1 -1
  520. package/dist/utils/getHighlighterThemeStyles.js +17 -14
  521. package/dist/utils/getHighlighterThemeStyles.js.map +1 -1
  522. package/dist/utils/getHunkSeparatorSlotName.d.ts.map +1 -1
  523. package/dist/utils/getHunkSeparatorSlotName.js +1 -1
  524. package/dist/utils/getHunkSeparatorSlotName.js.map +1 -1
  525. package/dist/utils/getIconForType.d.ts.map +1 -1
  526. package/dist/utils/getIconForType.js +1 -1
  527. package/dist/utils/getIconForType.js.map +1 -1
  528. package/dist/utils/getLineAnnotationName.d.ts.map +1 -1
  529. package/dist/utils/getLineAnnotationName.js +1 -1
  530. package/dist/utils/getLineAnnotationName.js.map +1 -1
  531. package/dist/utils/getLineEndingType.d.ts.map +1 -1
  532. package/dist/utils/getLineEndingType.js +1 -1
  533. package/dist/utils/getLineEndingType.js.map +1 -1
  534. package/dist/utils/getLineNodes.d.ts +1 -1
  535. package/dist/utils/getLineNodes.d.ts.map +1 -1
  536. package/dist/utils/getLineNodes.js +1 -1
  537. package/dist/utils/getLineNodes.js.map +1 -1
  538. package/dist/utils/getMergeConflictActionSlotName.d.ts.map +1 -1
  539. package/dist/utils/getMergeConflictActionSlotName.js +1 -1
  540. package/dist/utils/getMergeConflictActionSlotName.js.map +1 -1
  541. package/dist/utils/getMergeConflictLineTypes.d.ts.map +1 -1
  542. package/dist/utils/getMergeConflictLineTypes.js +1 -2
  543. package/dist/utils/getMergeConflictLineTypes.js.map +1 -1
  544. package/dist/utils/getOrCreateCodeNode.d.ts.map +1 -1
  545. package/dist/utils/getOrCreateCodeNode.js +1 -1
  546. package/dist/utils/getOrCreateCodeNode.js.map +1 -1
  547. package/dist/utils/getSingularPatch.d.ts.map +1 -1
  548. package/dist/utils/getSingularPatch.js +1 -2
  549. package/dist/utils/getSingularPatch.js.map +1 -1
  550. package/dist/utils/getThemes.d.ts.map +1 -1
  551. package/dist/utils/getThemes.js +1 -2
  552. package/dist/utils/getThemes.js.map +1 -1
  553. package/dist/utils/getTotalLineCountFromHunks.d.ts.map +1 -1
  554. package/dist/utils/getTotalLineCountFromHunks.js +1 -1
  555. package/dist/utils/getTotalLineCountFromHunks.js.map +1 -1
  556. package/dist/utils/hast_utils.d.ts +1 -1
  557. package/dist/utils/hast_utils.d.ts.map +1 -1
  558. package/dist/utils/hast_utils.js +1 -1
  559. package/dist/utils/hast_utils.js.map +1 -1
  560. package/dist/utils/hostTheme.d.ts.map +1 -1
  561. package/dist/utils/hostTheme.js +1 -2
  562. package/dist/utils/hostTheme.js.map +1 -1
  563. package/dist/utils/hydratePartialDiff.d.ts +10 -0
  564. package/dist/utils/hydratePartialDiff.d.ts.map +1 -0
  565. package/dist/utils/hydratePartialDiff.js +140 -0
  566. package/dist/utils/hydratePartialDiff.js.map +1 -0
  567. package/dist/utils/includesFileAnnotations.d.ts +17 -0
  568. package/dist/utils/includesFileAnnotations.d.ts.map +1 -0
  569. package/dist/utils/includesFileAnnotations.js +19 -0
  570. package/dist/utils/includesFileAnnotations.js.map +1 -0
  571. package/dist/utils/isDefaultRenderRange.d.ts.map +1 -1
  572. package/dist/utils/isDefaultRenderRange.js +1 -1
  573. package/dist/utils/isDefaultRenderRange.js.map +1 -1
  574. package/dist/utils/isDiffPlainText.d.ts.map +1 -1
  575. package/dist/utils/isDiffPlainText.js +1 -2
  576. package/dist/utils/isDiffPlainText.js.map +1 -1
  577. package/dist/utils/isFilePlainText.d.ts.map +1 -1
  578. package/dist/utils/isFilePlainText.js +1 -2
  579. package/dist/utils/isFilePlainText.js.map +1 -1
  580. package/dist/utils/isStyleNode.d.ts.map +1 -1
  581. package/dist/utils/isStyleNode.js +1 -1
  582. package/dist/utils/isStyleNode.js.map +1 -1
  583. package/dist/utils/isWorkerContext.d.ts.map +1 -1
  584. package/dist/utils/isWorkerContext.js +1 -1
  585. package/dist/utils/isWorkerContext.js.map +1 -1
  586. package/dist/utils/iterateOverDiff.d.ts.map +1 -1
  587. package/dist/utils/iterateOverDiff.js +178 -214
  588. package/dist/utils/iterateOverDiff.js.map +1 -1
  589. package/dist/utils/normalizeDiffResolution.d.ts.map +1 -1
  590. package/dist/utils/normalizeDiffResolution.js +1 -1
  591. package/dist/utils/normalizeDiffResolution.js.map +1 -1
  592. package/dist/utils/parseDiffDecorations.d.ts.map +1 -1
  593. package/dist/utils/parseDiffDecorations.js +1 -2
  594. package/dist/utils/parseDiffDecorations.js.map +1 -1
  595. package/dist/utils/parseDiffFromFile.d.ts +1 -2
  596. package/dist/utils/parseDiffFromFile.d.ts.map +1 -1
  597. package/dist/utils/parseDiffFromFile.js +27 -7
  598. package/dist/utils/parseDiffFromFile.js.map +1 -1
  599. package/dist/utils/parseLineType.d.ts.map +1 -1
  600. package/dist/utils/parseLineType.js +1 -1
  601. package/dist/utils/parseLineType.js.map +1 -1
  602. package/dist/utils/parseMergeConflictDiffFromFile.d.ts.map +1 -1
  603. package/dist/utils/parseMergeConflictDiffFromFile.js +5 -5
  604. package/dist/utils/parseMergeConflictDiffFromFile.js.map +1 -1
  605. package/dist/utils/parsePatchFiles.d.ts.map +1 -1
  606. package/dist/utils/parsePatchFiles.js +101 -11
  607. package/dist/utils/parsePatchFiles.js.map +1 -1
  608. package/dist/utils/prefersReducedMotion.d.ts.map +1 -1
  609. package/dist/utils/prefersReducedMotion.js +1 -1
  610. package/dist/utils/prefersReducedMotion.js.map +1 -1
  611. package/dist/utils/prerenderHTMLIfNecessary.d.ts.map +1 -1
  612. package/dist/utils/prerenderHTMLIfNecessary.js +1 -1
  613. package/dist/utils/prerenderHTMLIfNecessary.js.map +1 -1
  614. package/dist/utils/processLine.d.ts +1 -1
  615. package/dist/utils/processLine.d.ts.map +1 -1
  616. package/dist/utils/processLine.js +1 -2
  617. package/dist/utils/processLine.js.map +1 -1
  618. package/dist/utils/realignChangeContent.d.ts +28 -0
  619. package/dist/utils/realignChangeContent.d.ts.map +1 -0
  620. package/dist/utils/realignChangeContent.js +142 -0
  621. package/dist/utils/realignChangeContent.js.map +1 -0
  622. package/dist/utils/renderDiffWithHighlighter.d.ts.map +1 -1
  623. package/dist/utils/renderDiffWithHighlighter.js +9 -8
  624. package/dist/utils/renderDiffWithHighlighter.js.map +1 -1
  625. package/dist/utils/renderFileWithHighlighter.d.ts.map +1 -1
  626. package/dist/utils/renderFileWithHighlighter.js +5 -4
  627. package/dist/utils/renderFileWithHighlighter.js.map +1 -1
  628. package/dist/utils/resolveConflict.d.ts.map +1 -1
  629. package/dist/utils/resolveConflict.js +1 -2
  630. package/dist/utils/resolveConflict.js.map +1 -1
  631. package/dist/utils/resolveRegion.d.ts.map +1 -1
  632. package/dist/utils/resolveRegion.js +1 -1
  633. package/dist/utils/resolveRegion.js.map +1 -1
  634. package/dist/utils/roundToDevicePixel.d.ts.map +1 -1
  635. package/dist/utils/roundToDevicePixel.js +1 -1
  636. package/dist/utils/roundToDevicePixel.js.map +1 -1
  637. package/dist/utils/scrollbarGutter.d.ts.map +1 -1
  638. package/dist/utils/scrollbarGutter.js +1 -2
  639. package/dist/utils/scrollbarGutter.js.map +1 -1
  640. package/dist/utils/setLanguageOverride.d.ts.map +1 -1
  641. package/dist/utils/setLanguageOverride.js +1 -1
  642. package/dist/utils/setLanguageOverride.js.map +1 -1
  643. package/dist/utils/setWrapperNodeProps.d.ts.map +1 -1
  644. package/dist/utils/setWrapperNodeProps.js +1 -2
  645. package/dist/utils/setWrapperNodeProps.js.map +1 -1
  646. package/dist/utils/shouldUseTokenTransformer.d.ts.map +1 -1
  647. package/dist/utils/shouldUseTokenTransformer.js +1 -1
  648. package/dist/utils/shouldUseTokenTransformer.js.map +1 -1
  649. package/dist/utils/splitFileContents.d.ts.map +1 -1
  650. package/dist/utils/splitFileContents.js +1 -2
  651. package/dist/utils/splitFileContents.js.map +1 -1
  652. package/dist/utils/trimPatchContext.d.ts.map +1 -1
  653. package/dist/utils/trimPatchContext.js +1 -2
  654. package/dist/utils/trimPatchContext.js.map +1 -1
  655. package/dist/utils/updateDiffHunks.d.ts +24 -0
  656. package/dist/utils/updateDiffHunks.d.ts.map +1 -0
  657. package/dist/utils/updateDiffHunks.js +235 -0
  658. package/dist/utils/updateDiffHunks.js.map +1 -0
  659. package/dist/utils/virtualDiffLayout.d.ts +62 -2
  660. package/dist/utils/virtualDiffLayout.d.ts.map +1 -1
  661. package/dist/utils/virtualDiffLayout.js +137 -3
  662. package/dist/utils/virtualDiffLayout.js.map +1 -1
  663. package/dist/utils/wrapTokenFragments.d.ts +1 -1
  664. package/dist/utils/wrapTokenFragments.d.ts.map +1 -1
  665. package/dist/utils/wrapTokenFragments.js +1 -2
  666. package/dist/utils/wrapTokenFragments.js.map +1 -1
  667. package/dist/worker/WorkerPoolManager.d.ts +7 -2
  668. package/dist/worker/WorkerPoolManager.d.ts.map +1 -1
  669. package/dist/worker/WorkerPoolManager.js +88 -23
  670. package/dist/worker/WorkerPoolManager.js.map +1 -1
  671. package/dist/worker/getOrCreateWorkerPoolSingleton.d.ts.map +1 -1
  672. package/dist/worker/getOrCreateWorkerPoolSingleton.js +1 -2
  673. package/dist/worker/getOrCreateWorkerPoolSingleton.js.map +1 -1
  674. package/dist/worker/index.d.ts +2 -2
  675. package/dist/worker/index.js +1 -2
  676. package/dist/worker/types.d.ts +11 -1
  677. package/dist/worker/types.d.ts.map +1 -1
  678. package/dist/worker/wasm-B9ZqxnKj.js +8 -0
  679. package/dist/worker/wasm-B9ZqxnKj.js.map +1 -0
  680. package/dist/worker/worker-portable.js +3335 -6214
  681. package/dist/worker/worker-portable.js.map +1 -1
  682. package/dist/worker/worker.js +287 -309
  683. package/dist/worker/worker.js.map +1 -1
  684. package/package.json +29 -32
  685. package/dist/editor/css.d.ts +0 -6
  686. package/dist/editor/css.d.ts.map +0 -1
  687. package/dist/editor/css.js +0 -218
  688. package/dist/editor/css.js.map +0 -1
  689. package/dist/editor/quickEdit.d.ts +0 -29
  690. package/dist/editor/quickEdit.d.ts.map +0 -1
  691. package/dist/editor/quickEdit.js +0 -81
  692. package/dist/editor/quickEdit.js.map +0 -1
  693. package/dist/editor/tokenzier.d.ts.map +0 -1
  694. package/dist/editor/tokenzier.js +0 -348
  695. package/dist/editor/tokenzier.js.map +0 -1
  696. package/dist/react/EditorContext.d.ts +0 -16
  697. package/dist/react/EditorContext.d.ts.map +0 -1
  698. package/dist/react/EditorContext.js +0 -26
  699. package/dist/react/EditorContext.js.map +0 -1
  700. package/dist/worker/wasm-D4DU5jgR.js +0 -10
  701. package/dist/worker/wasm-D4DU5jgR.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"DiffHunksRenderer.d.ts","names":["ElementContent","Element","HASTElement","Properties","AnnotationSpan","BaseDiffOptions","BaseDiffOptionsWithDefaults","CustomPreProperties","DiffLineAnnotation","DiffsHighlighter","ExpansionDirections","FileDiffMetadata","FileHeaderRenderMode","HunkData","HunkExpansionRegion","LineTypes","RenderDiffOptions","RenderRange","ThemedDiffResult","DiffLineMetadata","WorkerPoolManager","DiffHunksRendererOptions","DiffHunksRendererOptionsWithDefaults","Omit","UnifiedLineDecorationProps","SplitLineDecorationProps","LineDecoration","RenderedLineContext","InjectedRow","SplitInjectedRow","UnifiedInjectedRowPlacement","SplitInjectedRowPlacement","HunksRenderResult","DiffHunksRenderer","LAnnotation","Partial","Map","lineType","side","type","Promise"],"sources":["../../src/renderers/DiffHunksRenderer.d.ts"],"sourcesContent":["import type { ElementContent, Element as HASTElement, Properties } from 'hast';\nimport type { AnnotationSpan, BaseDiffOptions, BaseDiffOptionsWithDefaults, CustomPreProperties, DiffLineAnnotation, DiffsHighlighter, ExpansionDirections, FileDiffMetadata, FileHeaderRenderMode, HunkData, HunkExpansionRegion, LineTypes, RenderDiffOptions, RenderRange, ThemedDiffResult } from '../types';\nimport type { DiffLineMetadata } from '../utils/iterateOverDiff';\nimport type { WorkerPoolManager } from '../worker';\nexport interface DiffHunksRendererOptions extends BaseDiffOptions {\n headerRenderMode?: FileHeaderRenderMode;\n}\nexport interface DiffHunksRendererOptionsWithDefaults extends Omit<BaseDiffOptionsWithDefaults, 'themeType'> {\n headerRenderMode: FileHeaderRenderMode;\n}\nexport interface UnifiedLineDecorationProps {\n type: 'context' | 'context-expanded' | 'change';\n lineType: LineTypes;\n additionLineIndex: number | undefined;\n deletionLineIndex: number | undefined;\n}\nexport interface SplitLineDecorationProps {\n side: 'deletions' | 'additions';\n type: 'context' | 'context-expanded' | 'change';\n lineIndex: number | undefined;\n}\nexport interface LineDecoration {\n gutterLineType: LineTypes;\n gutterProperties?: Properties;\n contentProperties?: Properties;\n}\nexport interface RenderedLineContext {\n type: 'context' | 'context-expanded' | 'change';\n hunkIndex: number;\n lineIndex: number;\n unifiedLineIndex: number;\n splitLineIndex: number;\n deletionLine?: DiffLineMetadata;\n additionLine?: DiffLineMetadata;\n}\nexport interface InjectedRow {\n content: HASTElement;\n gutter: HASTElement;\n}\nexport interface SplitInjectedRow {\n deletion: InjectedRow | undefined;\n addition: InjectedRow | undefined;\n}\nexport interface UnifiedInjectedRowPlacement {\n before?: InjectedRow[];\n after?: InjectedRow[];\n}\nexport interface SplitInjectedRowPlacement {\n before?: SplitInjectedRow[];\n after?: SplitInjectedRow[];\n}\nexport interface HunksRenderResult {\n unifiedGutterAST: ElementContent[] | undefined;\n unifiedContentAST: ElementContent[] | undefined;\n deletionsGutterAST: ElementContent[] | undefined;\n deletionsContentAST: ElementContent[] | undefined;\n additionsGutterAST: ElementContent[] | undefined;\n additionsContentAST: ElementContent[] | undefined;\n hunkData: HunkData[];\n css: string;\n preNode: HASTElement;\n headerElement: HASTElement | undefined;\n totalLines: number;\n themeStyles: string;\n baseThemeType: 'light' | 'dark' | undefined;\n rowCount: number;\n bufferBefore: number;\n bufferAfter: number;\n}\nexport declare class DiffHunksRenderer<LAnnotation = undefined> {\n options: DiffHunksRendererOptions;\n private onRenderUpdate?;\n private workerManager?;\n readonly __id: string;\n private highlighter;\n private diff;\n private expandedHunks;\n private deletionAnnotations;\n private additionAnnotations;\n private computedLang;\n private renderCache;\n constructor(options?: DiffHunksRendererOptions, onRenderUpdate?: (() => unknown) | undefined, workerManager?: WorkerPoolManager | undefined);\n cleanUp(): void;\n recycle(): void;\n clearRenderCache(): void;\n setOptions(options: DiffHunksRendererOptions): void;\n mergeOptions(options: Partial<DiffHunksRendererOptions>): void;\n expandHunk(index: number, direction: ExpansionDirections, expansionLineCount?: number): void;\n getExpandedHunk(hunkIndex: number): HunkExpansionRegion;\n getExpandedHunksMap(): Map<number, HunkExpansionRegion>;\n setLineAnnotations(lineAnnotations: DiffLineAnnotation<LAnnotation>[]): void;\n protected getUnifiedLineDecoration({ lineType }: UnifiedLineDecorationProps): LineDecoration;\n protected getSplitLineDecoration({ side, type }: SplitLineDecorationProps): LineDecoration;\n protected createAnnotationElement(span: AnnotationSpan): HASTElement;\n protected getUnifiedInjectedRowsForLine?: (ctx: RenderedLineContext) => UnifiedInjectedRowPlacement | undefined;\n protected getSplitInjectedRowsForLine?: (ctx: RenderedLineContext) => SplitInjectedRowPlacement | undefined;\n protected getOptionsWithDefaults(): DiffHunksRendererOptionsWithDefaults;\n initializeHighlighter(): Promise<DiffsHighlighter>;\n hydrate(diff: FileDiffMetadata | undefined): void;\n private getRenderOptions;\n renderDiff(diff?: FileDiffMetadata | undefined, renderRange?: RenderRange): HunksRenderResult | undefined;\n asyncRender(diff: FileDiffMetadata, renderRange?: RenderRange): Promise<HunksRenderResult>;\n protected createPreElement(split: boolean, totalLines: number, customProperties?: CustomPreProperties): HASTElement;\n private asyncHighlight;\n private renderDiffWithHighlighter;\n onHighlightSuccess(diff: FileDiffMetadata, result: ThemedDiffResult, options: RenderDiffOptions, highlighted?: boolean): void;\n private getMatchingWorkerResultCache;\n private hasHighlightedRenderCache;\n onHighlightError(error: unknown): void;\n private getTokenizeMaxLength;\n private processDiffResult;\n renderCodeAST(type: 'unified' | 'deletions' | 'additions', result: HunksRenderResult): ElementContent[] | undefined;\n renderFullAST(result: HunksRenderResult, children?: ElementContent[]): HASTElement;\n renderFullHTML(result: HunksRenderResult, tempChildren?: ElementContent[]): string;\n renderPartialHTML(children: ElementContent[], columnType?: 'unified' | 'deletions' | 'additions'): string;\n private getAnnotations;\n private renderHeader;\n}\n//# sourceMappingURL=DiffHunksRenderer.d.ts.map"],"mappings":"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"}
1
+ {"version":3,"file":"DiffHunksRenderer.d.ts","names":[],"sources":["../../src/renderers/DiffHunksRenderer.ts"],"mappings":"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"}
@@ -1,8 +1,14 @@
1
- import { DEFAULT_COLLAPSED_CONTEXT_THRESHOLD, DEFAULT_EXPANDED_REGION, DEFAULT_RENDER_RANGE, DEFAULT_THEMES, DEFAULT_TOKENIZE_MAX_LENGTH } from "../constants.js";
1
+ import { DEFAULT_EXPANDED_REGION, DEFAULT_RENDER_RANGE, DEFAULT_THEMES, DEFAULT_TOKENIZE_MAX_LENGTH } from "../constants.js";
2
+ import { cleanLastNewline } from "../utils/cleanLastNewline.js";
3
+ import { getTrailingContextRangeSize } from "../utils/virtualDiffLayout.js";
4
+ import { preserveTrailingEditorBlankLine, recomputeDiffHunksForEdit, recomputeEmptyDocumentDiff, recomputeTopAlignedAdditionDiff, shouldTopAlignAdditionRecompute, updateDiffHunks } from "../utils/updateDiffHunks.js";
5
+ import { applySessionChangedLines, applySessionEditWindow, findChangedLineWindow, normalizeEditorLines, remapExpandedHunksForRegionChange } from "../utils/editSessionHunks.js";
6
+ import { getFileAnnotations, shouldRenderFileAnnotations } from "../utils/includesFileAnnotations.js";
2
7
  import { createGutterGap, createGutterItem, createGutterWrapper, createHastElement } from "../utils/hast_utils.js";
3
8
  import { areLanguagesAttached } from "../highlighter/languages/areLanguagesAttached.js";
4
9
  import { getHighlighterIfLoaded, getSharedHighlighter } from "../highlighter/shared_highlighter.js";
5
10
  import { areThemesAttached } from "../highlighter/themes/areThemesAttached.js";
11
+ import { applyLineTextWithNewline } from "../utils/applyLineTextWithNewline.js";
6
12
  import { areRenderRangesEqual } from "../utils/areRenderRangesEqual.js";
7
13
  import { createAnnotationElement } from "../utils/createAnnotationElement.js";
8
14
  import { createContentColumn } from "../utils/createContentColumn.js";
@@ -24,10 +30,12 @@ import { isDefaultRenderRange } from "../utils/isDefaultRenderRange.js";
24
30
  import { isDiffPlainText } from "../utils/isDiffPlainText.js";
25
31
  import { renderDiffWithHighlighter } from "../utils/renderDiffWithHighlighter.js";
26
32
  import { toHtml } from "hast-util-to-html";
27
-
28
33
  //#region src/renderers/DiffHunksRenderer.ts
29
34
  let instanceId = -1;
30
35
  var DiffHunksRenderer = class {
36
+ options;
37
+ onRenderUpdate;
38
+ workerManager;
31
39
  __id = `diff-hunks-renderer:${++instanceId}`;
32
40
  highlighter;
33
41
  diff;
@@ -36,6 +44,8 @@ var DiffHunksRenderer = class {
36
44
  additionAnnotations = {};
37
45
  computedLang = "text";
38
46
  renderCache;
47
+ editSessionActive = false;
48
+ editSessionLines;
39
49
  constructor(options = { theme: DEFAULT_THEMES }, onRenderUpdate, workerManager) {
40
50
  this.options = options;
41
51
  this.onRenderUpdate = onRenderUpdate;
@@ -55,9 +65,31 @@ var DiffHunksRenderer = class {
55
65
  this.additionAnnotations = {};
56
66
  this.deletionAnnotations = {};
57
67
  this.workerManager?.cleanUpTasks(this);
68
+ this.endEditSession();
69
+ }
70
+ /**
71
+ * Enter edit-session mode: hunk updates preserve the current region
72
+ * skeleton instead of recomputing hunks. Called on every editor attach,
73
+ * including a re-attach after recycle, which losslessly re-seeds the pass
74
+ * snapshot because both hunk-update paths keep `diff.additionLines`
75
+ * current.
76
+ */
77
+ beginEditSession(diff) {
78
+ this.editSessionActive = true;
79
+ this.editSessionLines = diff != null ? normalizeEditorLines(diff.additionLines).slice() : void 0;
80
+ }
81
+ /** Leave edit-session mode. The exit recompute is the host's concern. */
82
+ endEditSession() {
83
+ this.editSessionActive = false;
84
+ this.editSessionLines = void 0;
85
+ }
86
+ get diffCache() {
87
+ return this.renderCache?.diff ?? this.diff;
58
88
  }
59
89
  clearRenderCache() {
90
+ const renderCache = this.renderCache;
60
91
  this.renderCache = void 0;
92
+ if (renderCache != null && renderCache.isDirty === true && renderCache.diff.cacheKey != null) this.workerManager?.evictDiffFromCache(renderCache.diff.cacheKey);
61
93
  }
62
94
  setOptions(options) {
63
95
  this.options = options;
@@ -84,6 +116,10 @@ var DiffHunksRenderer = class {
84
116
  getExpandedHunksMap() {
85
117
  return this.expandedHunks;
86
118
  }
119
+ /** Replace the whole expansion map (session-exit expansion remapping). */
120
+ setExpandedHunksMap(expandedHunks) {
121
+ this.expandedHunks = expandedHunks;
122
+ }
87
123
  setLineAnnotations(lineAnnotations) {
88
124
  this.additionAnnotations = {};
89
125
  this.deletionAnnotations = {};
@@ -99,18 +135,146 @@ var DiffHunksRenderer = class {
99
135
  arr.push(annotation);
100
136
  }
101
137
  }
138
+ /**
139
+ * Returns true when a session-mode pass changed the region skeleton itself
140
+ * (a gap edit synthesized or merged regions), which changes the rendered
141
+ * row set without a line-count change — the host must escalate to a full
142
+ * re-render instead of its cheap refresh path.
143
+ */
144
+ updateRenderCache(dirtyLines, themeType, lineCountChangeInFlight = false) {
145
+ if (this.renderCache == null) return false;
146
+ const { result, diff } = this.renderCache;
147
+ if (result == null) return false;
148
+ if (diff.isPartial) throw new Error("Could not update render cache for partial diff");
149
+ const hastLines = result.code.additionLines;
150
+ const changedAdditionLines = [];
151
+ for (const [line, tokens] of dirtyLines) {
152
+ const prevProps = hastLines[line]?.properties ?? {};
153
+ const lineText = tokens.map((a) => a[2]).join("");
154
+ const canSyncDiffLine = line < diff.additionLines.length;
155
+ const prevLine = canSyncDiffLine ? diff.additionLines[line] ?? "" : "";
156
+ const prevText = cleanLastNewline(prevLine);
157
+ if (canSyncDiffLine) {
158
+ diff.additionLines[line] = applyLineTextWithNewline(prevLine, lineText);
159
+ if (prevText !== lineText) changedAdditionLines.push(line);
160
+ }
161
+ hastLines[line] = {
162
+ type: "element",
163
+ tagName: "div",
164
+ properties: {
165
+ "data-line": prevProps["data-line"] ?? line + 1,
166
+ "data-line-index": prevProps["data-line-index"] ?? line,
167
+ "data-line-type": prevProps["data-line-type"] ?? "context"
168
+ },
169
+ children: tokens.map(([char, fg, text]) => {
170
+ if (char === 0 && fg === "") {
171
+ if (text === "") return {
172
+ type: "element",
173
+ tagName: "br",
174
+ properties: {},
175
+ children: []
176
+ };
177
+ return {
178
+ type: "text",
179
+ value: text
180
+ };
181
+ }
182
+ return {
183
+ type: "element",
184
+ tagName: "span",
185
+ properties: {
186
+ "data-char": char,
187
+ style: `color:${fg};`
188
+ },
189
+ children: [{
190
+ type: "text",
191
+ value: text
192
+ }]
193
+ };
194
+ })
195
+ };
196
+ }
197
+ let regionsChanged = false;
198
+ if (changedAdditionLines.length > 0) if (this.editSessionActive && !diff.isPartial) {
199
+ if (!lineCountChangeInFlight) {
200
+ const changes = applySessionChangedLines(diff, changedAdditionLines, this.options.parseDiffOptions);
201
+ this.applyExpansionRemaps(changes);
202
+ regionsChanged = changes.length > 0;
203
+ this.editSessionLines = normalizeEditorLines(diff.additionLines).slice();
204
+ }
205
+ } else Object.assign(diff, updateDiffHunks(diff, changedAdditionLines, this.options.parseDiffOptions));
206
+ result.baseThemeType = themeType;
207
+ this.renderCache.isDirty = true;
208
+ return regionsChanged;
209
+ }
210
+ applyExpansionRemaps(changes) {
211
+ for (const change of changes) this.expandedHunks = remapExpandedHunksForRegionChange(this.expandedHunks, change);
212
+ }
213
+ applyDocumentChange(textDocument) {
214
+ if (this.renderCache == null) return;
215
+ const { diff, result } = this.renderCache;
216
+ if (result == null) return;
217
+ diff.additionLines = getEditorDocumentLines(textDocument, diff.additionLines);
218
+ const newLength = diff.additionLines.length;
219
+ const additionHastLines = result.code.additionLines;
220
+ const prevLen = additionHastLines.length;
221
+ if (newLength < prevLen) additionHastLines.length = newLength;
222
+ for (let i = prevLen; i < newLength; i++) additionHastLines[i] ??= createPlainAdditionLineElement(i, textDocument);
223
+ if (!diff.isPartial) if (diff.additionLines.length <= 1 && diff.additionLines.join("") === "") {
224
+ Object.assign(diff, recomputeEmptyDocumentDiff(diff, this.options.parseDiffOptions));
225
+ additionHastLines[0] = createPlainAdditionLineElement(0, textDocument);
226
+ this.markEditSessionPass(diff);
227
+ } else if (this.editSessionActive) this.applySessionDocumentChange(diff);
228
+ else Object.assign(diff, recomputeDiffHunksForEdit(diff, this.options.parseDiffOptions));
229
+ this.renderCache.isDirty = true;
230
+ }
231
+ applySessionDocumentChange(diff) {
232
+ const { parseDiffOptions } = this.options;
233
+ const rawLines = diff.additionLines;
234
+ if (shouldTopAlignAdditionRecompute(diff, rawLines)) {
235
+ Object.assign(diff, recomputeTopAlignedAdditionDiff(diff, rawLines, parseDiffOptions));
236
+ this.markEditSessionPass(diff);
237
+ return;
238
+ }
239
+ const previousLines = this.editSessionLines;
240
+ const nextLines = normalizeEditorLines(rawLines);
241
+ if (previousLines == null) {
242
+ Object.assign(diff, recomputeDiffHunksForEdit(diff, parseDiffOptions));
243
+ this.markEditSessionPass(diff);
244
+ return;
245
+ }
246
+ diff.additionLines = nextLines;
247
+ const window = findChangedLineWindow(previousLines, nextLines);
248
+ if (window != null) {
249
+ const change = applySessionEditWindow(diff, window, parseDiffOptions);
250
+ if (change != null) this.applyExpansionRemaps([change]);
251
+ }
252
+ preserveTrailingEditorBlankLine(diff, rawLines);
253
+ this.editSessionLines = nextLines.slice();
254
+ }
255
+ markEditSessionPass(diff) {
256
+ if (!this.editSessionActive) return;
257
+ diff.editSessionDirty = true;
258
+ this.editSessionLines = normalizeEditorLines(diff.additionLines).slice();
259
+ }
102
260
  getUnifiedLineDecoration({ lineType }) {
103
- return { gutterLineType: lineType };
261
+ return {
262
+ gutterLineType: lineType,
263
+ contentProperties: { "data-line-type": lineType }
264
+ };
104
265
  }
105
266
  getSplitLineDecoration({ side, type }) {
106
- if (type !== "change") return { gutterLineType: type };
107
- return { gutterLineType: side === "deletions" ? "change-deletion" : "change-addition" };
267
+ const lineType = type === "change" ? side === "deletions" ? "change-deletion" : "change-addition" : type;
268
+ return {
269
+ gutterLineType: lineType,
270
+ contentProperties: { "data-line-type": lineType }
271
+ };
108
272
  }
109
- createAnnotationElement(span) {
273
+ createAnnotationElement = (span) => {
110
274
  return createAnnotationElement(span);
111
- }
275
+ };
112
276
  getOptionsWithDefaults() {
113
- const { diffIndicators = "bars", diffStyle = "split", disableBackground = false, disableFileHeader = false, disableLineNumbers = false, disableVirtualizationBuffers = false, collapsed = false, expandUnchanged = false, collapsedContextThreshold = DEFAULT_COLLAPSED_CONTEXT_THRESHOLD, expansionLineCount = 100, hunkSeparators = "line-info", lineDiffType = "word-alt", maxLineDiffLength = 1e3, overflow = "scroll", stickyHeader = false, theme = DEFAULT_THEMES, headerRenderMode = "default", tokenizeMaxLineLength = 1e3, tokenizeMaxLength = DEFAULT_TOKENIZE_MAX_LENGTH, useTokenTransformer = false, useCSSClasses = false } = this.options;
277
+ const { diffIndicators = "bars", diffStyle = "split", disableBackground = false, disableFileHeader = false, disableLineNumbers = false, disableVirtualizationBuffers = false, collapsed = false, expandUnchanged = false, collapsedContextThreshold = 1, expansionLineCount = 100, hunkSeparators = "line-info", lineDiffType = "word-alt", maxLineDiffLength = 1e3, overflow = "scroll", stickyHeader = false, theme = DEFAULT_THEMES, headerRenderMode = "default", tokenizeMaxLineLength = 1e3, tokenizeMaxLength = DEFAULT_TOKENIZE_MAX_LENGTH, useTokenTransformer = false, useCSSClasses = false } = this.options;
114
278
  return {
115
279
  diffIndicators,
116
280
  diffStyle,
@@ -189,7 +353,7 @@ var DiffHunksRenderer = class {
189
353
  }
190
354
  renderDiff(diff = this.renderCache?.diff, renderRange = DEFAULT_RENDER_RANGE) {
191
355
  if (diff == null) return;
192
- const { expandUnchanged = false, collapsedContextThreshold } = this.getOptionsWithDefaults();
356
+ const { expandUnchanged, collapsedContextThreshold } = this.getOptionsWithDefaults();
193
357
  let { options, forceHighlight } = this.getRenderOptions(diff);
194
358
  const cache = this.getMatchingWorkerResultCache(diff, options);
195
359
  if (cache != null && !this.hasHighlightedRenderCache(diff, options)) {
@@ -227,18 +391,18 @@ var DiffHunksRenderer = class {
227
391
  const hasLangs = this.highlighter != null && areLanguagesAttached(this.computedLang);
228
392
  const canHighlight = !forcePlainText && hasLangs;
229
393
  if (this.highlighter != null && hasThemes && (forceHighlight || forcePlainText || !this.renderCache.highlighted && canHighlight || this.renderCache.result == null)) {
230
- const { result, options: options$1 } = this.renderDiffWithHighlighter(diff, this.highlighter, forcePlainText || !hasLangs);
394
+ const { result, options } = this.renderDiffWithHighlighter(diff, this.highlighter, forcePlainText || !hasLangs);
231
395
  this.renderCache = {
232
396
  diff,
233
- options: options$1,
397
+ options,
234
398
  highlighted: canHighlight,
235
399
  result,
236
400
  renderRange: void 0
237
401
  };
238
402
  }
239
- if (!hasThemes || !forcePlainText && !hasLangs) this.asyncHighlight(diff).then(({ result, options: options$1 }) => {
403
+ if (!hasThemes || !forcePlainText && !hasLangs) this.asyncHighlight(diff).then(({ result, options }) => {
240
404
  if (this.renderCache != null) this.renderCache.highlighted = false;
241
- this.onHighlightSuccess(diff, result, options$1, !forcePlainText);
405
+ this.onHighlightSuccess(diff, result, options, !forcePlainText);
242
406
  });
243
407
  }
244
408
  return this.renderCache.result != null ? this.processDiffResult(this.renderCache.diff, renderRange, this.renderCache.result) : void 0;
@@ -305,12 +469,15 @@ var DiffHunksRenderer = class {
305
469
  console.error(error);
306
470
  }
307
471
  getTokenizeMaxLength() {
308
- return this.options.tokenizeMaxLength ?? DEFAULT_TOKENIZE_MAX_LENGTH;
472
+ return this.options.tokenizeMaxLength ?? 1e5;
309
473
  }
310
474
  processDiffResult(fileDiff, renderRange, { code, themeStyles, baseThemeType }) {
311
475
  const { diffStyle, disableFileHeader, expandUnchanged, expansionLineCount, collapsedContextThreshold, hunkSeparators } = this.getOptionsWithDefaults();
476
+ const isRenderCacheDirty = this.renderCache?.isDirty ?? false;
312
477
  this.diff = fileDiff;
313
478
  const unified = diffStyle === "unified";
479
+ const canHydrateContext = canHydrateCollapsedContext(fileDiff, this.options.loadDiffFiles != null);
480
+ const isExpandableDiff = !fileDiff.isPartial || canHydrateContext;
314
481
  let additionsContentAST = [];
315
482
  let deletionsContentAST = [];
316
483
  let unifiedContentAST = [];
@@ -344,7 +511,10 @@ var DiffHunksRenderer = class {
344
511
  }
345
512
  }
346
513
  };
347
- const trailingRangeSize = calculateTrailingRangeSize(fileDiff);
514
+ const trailingRangeSize = getTrailingContextRangeSize({
515
+ fileDiff,
516
+ errorPrefix: "DiffHunksRenderer.processDiffResult"
517
+ });
348
518
  const pendingSplitContext = {
349
519
  size: 0,
350
520
  side: void 0,
@@ -380,6 +550,7 @@ var DiffHunksRenderer = class {
380
550
  pushSeparator("additions", props, context);
381
551
  }
382
552
  }
553
+ this.pushFileLevelAnnotations(fileDiff, diffStyle, renderRange, context);
383
554
  iterateOverDiff({
384
555
  diff: fileDiff,
385
556
  diffStyle,
@@ -398,7 +569,7 @@ var DiffHunksRenderer = class {
398
569
  hunkSpecs: hunk?.hunkSpecs,
399
570
  isFirstHunk: hunkIndex === 0,
400
571
  isLastHunk: false,
401
- isExpandable: !fileDiff.isPartial
572
+ isExpandable: isExpandableDiff
402
573
  });
403
574
  const lineIndex = diffStyle === "unified" ? unifiedLineIndex : splitLineIndex;
404
575
  const renderedLineContext = {
@@ -428,8 +599,14 @@ var DiffHunksRenderer = class {
428
599
  deletionLineIndex: deletionLine?.lineIndex
429
600
  });
430
601
  pushGutterLineNumber("unified", lineDecoration.gutterLineType, additionLine != null ? additionLine.lineNumber : deletionLine.lineNumber, `${unifiedLineIndex},${splitLineIndex}`, lineDecoration.gutterProperties);
431
- if (additionLineContent != null) additionLineContent = withContentProperties(additionLineContent, lineDecoration.contentProperties);
432
- else if (deletionLineContent != null) deletionLineContent = withContentProperties(deletionLineContent, lineDecoration.contentProperties);
602
+ if (additionLineContent != null) additionLineContent = withContentProperties(additionLineContent, lineDecoration.contentProperties, isRenderCacheDirty && additionLine != null ? {
603
+ "data-line": additionLine.lineNumber,
604
+ "data-line-index": `${unifiedLineIndex},${splitLineIndex}`
605
+ } : void 0);
606
+ else if (deletionLineContent != null) deletionLineContent = withContentProperties(deletionLineContent, lineDecoration.contentProperties, isRenderCacheDirty && deletionLine != null ? {
607
+ "data-line": deletionLine.lineNumber,
608
+ "data-line-index": `${unifiedLineIndex},${splitLineIndex}`
609
+ } : void 0);
433
610
  pushLineWithAnnotation({
434
611
  diffStyle: "unified",
435
612
  type,
@@ -467,19 +644,25 @@ var DiffHunksRenderer = class {
467
644
  }
468
645
  })();
469
646
  if (missingSide != null) {
470
- if (pendingSplitContext.side != null && pendingSplitContext.side !== missingSide) throw new Error("DiffHunksRenderer.processDiffResult: iterateOverDiff, invalid pending splits");
647
+ if (pendingSplitContext.side != null && pendingSplitContext.side !== missingSide) pendingSplitContext.flush();
471
648
  pendingSplitContext.side = missingSide;
472
649
  pendingSplitContext.increment();
473
- }
650
+ } else if (type === "change") pendingSplitContext.flush();
474
651
  const annotationSpans = this.getAnnotations("split", deletionLine?.lineNumber, additionLine?.lineNumber, hunkIndex, lineIndex);
475
652
  if (annotationSpans != null && pendingSplitContext.size > 0) pendingSplitContext.flush();
476
653
  if (deletionLine != null) {
477
- const deletionLineDecorated = withContentProperties(deletionLineContent, deletionLineDecoration.contentProperties);
654
+ const deletionLineDecorated = withContentProperties(deletionLineContent, deletionLineDecoration.contentProperties, isRenderCacheDirty ? {
655
+ "data-line": deletionLine.lineNumber,
656
+ "data-line-index": `${deletionLine.unifiedLineIndex},${splitLineIndex}`
657
+ } : void 0);
478
658
  pushGutterLineNumber("deletions", deletionLineDecoration.gutterLineType, deletionLine.lineNumber, `${deletionLine.unifiedLineIndex},${splitLineIndex}`, deletionLineDecoration.gutterProperties);
479
659
  if (deletionLineDecorated != null) deletionLineContent = deletionLineDecorated;
480
660
  }
481
661
  if (additionLine != null) {
482
- const additionLineDecorated = withContentProperties(additionLineContent, additionLineDecoration.contentProperties);
662
+ const additionLineDecorated = withContentProperties(additionLineContent, additionLineDecoration.contentProperties, isRenderCacheDirty ? {
663
+ "data-line": additionLine.lineNumber,
664
+ "data-line-index": `${additionLine.unifiedLineIndex},${splitLineIndex}`
665
+ } : void 0);
483
666
  pushGutterLineNumber("additions", additionLineDecoration.gutterLineType, additionLine.lineNumber, `${additionLine.unifiedLineIndex},${splitLineIndex}`, additionLineDecoration.gutterProperties);
484
667
  if (additionLineDecorated != null) additionLineContent = additionLineDecorated;
485
668
  }
@@ -495,6 +678,7 @@ var DiffHunksRenderer = class {
495
678
  if (injectedRows?.after != null) pushSplitInjectedRows(injectedRows.after, context, pendingSplitContext);
496
679
  }
497
680
  const isFinalSplitHunkRow = diffStyle === "split" && hunk != null && splitLineIndex === hunk.splitLineStart + hunk.splitLineCount - 1;
681
+ const isFinalHunkRow = hunkIndex === fileDiff.hunks.length - 1 && hunk != null && (diffStyle === "split" ? splitLineIndex === hunk.splitLineStart + hunk.splitLineCount - 1 : unifiedLineIndex === hunk.unifiedLineStart + hunk.unifiedLineCount - 1);
498
682
  const splitNoEOFCRDeletion = isFinalSplitHunkRow ? hunk.noEOFCRDeletions : false;
499
683
  const splitNoEOFCRAddition = isFinalSplitHunkRow ? hunk.noEOFCRAdditions : false;
500
684
  const noEOFCRDeletion = (deletionLine?.noEOFCR ?? false) || splitNoEOFCRDeletion;
@@ -531,14 +715,14 @@ var DiffHunksRenderer = class {
531
715
  }
532
716
  context.incrementRowCount(1);
533
717
  }
534
- if (collapsedAfter > 0 && hunkSeparators !== "simple") pushSeparators({
718
+ if (hunkSeparators !== "simple" && hunkSeparators !== "metadata" && (collapsedAfter > 0 || isFinalHunkRow && canHydrateContext)) pushSeparators({
535
719
  hunkIndex: type === "context-expanded" ? hunkIndex : hunkIndex + 1,
536
- collapsedLines: collapsedAfter,
720
+ collapsedLines: isFinalHunkRow && canHydrateContext ? "unknown" : collapsedAfter,
537
721
  rangeSize: trailingRangeSize,
538
722
  hunkSpecs: void 0,
539
723
  isFirstHunk: false,
540
724
  isLastHunk: true,
541
- isExpandable: !fileDiff.isPartial
725
+ isExpandable: isExpandableDiff
542
726
  });
543
727
  context.incrementRowCount(1);
544
728
  }
@@ -638,6 +822,48 @@ var DiffHunksRenderer = class {
638
822
  }
639
823
  }));
640
824
  }
825
+ pushFileLevelAnnotations(fileDiff, diffStyle, renderRange, context) {
826
+ if (!shouldRenderFileAnnotations(renderRange)) return;
827
+ const deletionAnnotationNames = fileDiff.type !== "new" ? getAnnotationNames(getFileAnnotations(this.deletionAnnotations)) : [];
828
+ const additionAnnotationNames = fileDiff.type !== "deleted" ? getAnnotationNames(getFileAnnotations(this.additionAnnotations)) : [];
829
+ if (deletionAnnotationNames.length === 0 && additionAnnotationNames.length === 0) return;
830
+ const hunkIndex = -1;
831
+ const lineIndex = -1;
832
+ const { createAnnotationElement } = this;
833
+ if (diffStyle === "unified") {
834
+ pushLineWithAnnotation({
835
+ diffStyle,
836
+ type: "context",
837
+ unifiedSpan: {
838
+ type: "annotation",
839
+ hunkIndex,
840
+ lineIndex,
841
+ annotations: deletionAnnotationNames.concat(additionAnnotationNames)
842
+ },
843
+ createAnnotationElement,
844
+ context
845
+ });
846
+ return;
847
+ }
848
+ pushLineWithAnnotation({
849
+ diffStyle,
850
+ type: "context",
851
+ deletionSpan: {
852
+ type: "annotation",
853
+ hunkIndex,
854
+ lineIndex,
855
+ annotations: deletionAnnotationNames
856
+ },
857
+ additionSpan: {
858
+ type: "annotation",
859
+ hunkIndex,
860
+ lineIndex,
861
+ annotations: additionAnnotationNames
862
+ },
863
+ createAnnotationElement,
864
+ context
865
+ });
866
+ }
641
867
  getAnnotations(type, deletionLineNumber, additionLineNumber, hunkIndex, lineIndex) {
642
868
  const deletionSpan = {
643
869
  type: "annotation",
@@ -672,8 +898,12 @@ var DiffHunksRenderer = class {
672
898
  });
673
899
  }
674
900
  };
901
+ function getAnnotationNames(annotations) {
902
+ return annotations?.map((annotation) => getLineAnnotationName(annotation)) ?? [];
903
+ }
904
+ const EN_PLURAL_RULES = new Intl.PluralRules("en-US");
675
905
  function getModifiedLinesString(lines) {
676
- return `${lines} unmodified line${lines > 1 ? "s" : ""}`;
906
+ return `${lines} unmodified line${EN_PLURAL_RULES.select(lines) === "one" ? "" : "s"}`;
677
907
  }
678
908
  function pushUnifiedInjectedRows(rows, context) {
679
909
  for (const row of rows) {
@@ -702,14 +932,14 @@ function pushSplitInjectedRows(rows, context, pendingSplitContext) {
702
932
  context.incrementRowCount(1);
703
933
  }
704
934
  }
705
- function pushLineWithAnnotation({ diffStyle, type, deletionLine, additionLine, unifiedSpan, deletionSpan, additionSpan, createAnnotationElement: createAnnotationElement$1, context }) {
935
+ function pushLineWithAnnotation({ diffStyle, type, deletionLine, additionLine, unifiedSpan, deletionSpan, additionSpan, createAnnotationElement, context }) {
706
936
  let hasAnnotationRow = false;
707
937
  if (diffStyle === "unified") {
708
938
  if (additionLine != null) context.unifiedContentAST.push(additionLine);
709
939
  else if (deletionLine != null) context.unifiedContentAST.push(deletionLine);
710
940
  if (unifiedSpan != null) {
711
941
  const lineType = type === "change" ? deletionLine != null ? "change-deletion" : "change-addition" : type;
712
- context.unifiedContentAST.push(createAnnotationElement$1(unifiedSpan));
942
+ context.unifiedContentAST.push(createAnnotationElement(unifiedSpan));
713
943
  context.pushToGutter("unified", createGutterGap(lineType, "annotation", 1));
714
944
  hasAnnotationRow = true;
715
945
  }
@@ -718,13 +948,13 @@ function pushLineWithAnnotation({ diffStyle, type, deletionLine, additionLine, u
718
948
  if (additionLine != null) context.additionsContentAST.push(additionLine);
719
949
  if (deletionSpan != null) {
720
950
  const lineType = type === "change" ? deletionLine != null ? "change-deletion" : "context" : type;
721
- context.deletionsContentAST.push(createAnnotationElement$1(deletionSpan));
951
+ context.deletionsContentAST.push(createAnnotationElement(deletionSpan));
722
952
  context.pushToGutter("deletions", createGutterGap(lineType, "annotation", 1));
723
953
  hasAnnotationRow = true;
724
954
  }
725
955
  if (additionSpan != null) {
726
956
  const lineType = type === "change" ? additionLine != null ? "change-addition" : "context" : type;
727
- context.additionsContentAST.push(createAnnotationElement$1(additionSpan));
957
+ context.additionsContentAST.push(createAnnotationElement(additionSpan));
728
958
  context.pushToGutter("additions", createGutterGap(lineType, "annotation", 1));
729
959
  hasAnnotationRow = true;
730
960
  }
@@ -732,7 +962,7 @@ function pushLineWithAnnotation({ diffStyle, type, deletionLine, additionLine, u
732
962
  if (hasAnnotationRow) context.incrementRowCount(1);
733
963
  }
734
964
  function pushSeparator(type, { hunkIndex, collapsedLines, rangeSize, hunkSpecs, isFirstHunk, isLastHunk, isExpandable }, context) {
735
- if (collapsedLines <= 0) return;
965
+ if (typeof collapsedLines === "number" && collapsedLines <= 0) return;
736
966
  const linesAST = type === "unified" ? context.unifiedContentAST : type === "deletions" ? context.deletionsContentAST : context.additionsContentAST;
737
967
  if (context.hunkSeparators === "metadata") {
738
968
  if (hunkSpecs != null) {
@@ -771,9 +1001,10 @@ function pushSeparator(type, { hunkIndex, collapsedLines, rangeSize, hunkSpecs,
771
1001
  const slotName = getHunkSeparatorSlotName(type, hunkIndex);
772
1002
  const chunked = rangeSize > context.expansionLineCount;
773
1003
  const expandIndex = isExpandable ? hunkIndex : void 0;
1004
+ const content = typeof collapsedLines === "number" ? getModifiedLinesString(collapsedLines) : "More unchanged context may be available";
774
1005
  context.pushToGutter(type, createSeparator({
775
1006
  type: context.hunkSeparators,
776
- content: getModifiedLinesString(collapsedLines),
1007
+ content,
777
1008
  expandIndex,
778
1009
  chunked,
779
1010
  slotName,
@@ -782,7 +1013,7 @@ function pushSeparator(type, { hunkIndex, collapsedLines, rangeSize, hunkSpecs,
782
1013
  }));
783
1014
  linesAST.push(createSeparator({
784
1015
  type: context.hunkSeparators,
785
- content: getModifiedLinesString(collapsedLines),
1016
+ content,
786
1017
  expandIndex,
787
1018
  chunked,
788
1019
  slotName,
@@ -793,7 +1024,8 @@ function pushSeparator(type, { hunkIndex, collapsedLines, rangeSize, hunkSpecs,
793
1024
  context.hunkData.push({
794
1025
  slotName,
795
1026
  hunkIndex,
796
- lines: collapsedLines,
1027
+ lines: typeof collapsedLines === "number" ? collapsedLines : 0,
1028
+ lineCountKnown: typeof collapsedLines === "number",
797
1029
  type,
798
1030
  expandable: isExpandable ? {
799
1031
  up: !isFirstHunk,
@@ -802,28 +1034,64 @@ function pushSeparator(type, { hunkIndex, collapsedLines, rangeSize, hunkSpecs,
802
1034
  } : void 0
803
1035
  });
804
1036
  }
805
- function withContentProperties(lineNode, contentProperties) {
806
- if (lineNode == null || lineNode.type !== "element" || contentProperties == null) return lineNode;
1037
+ function withContentProperties(lineNode, contentProperties, extendProperties) {
1038
+ if (lineNode == null || lineNode.type !== "element" || contentProperties == null && extendProperties == null) return lineNode;
807
1039
  return {
808
1040
  ...lineNode,
809
1041
  properties: {
810
1042
  ...lineNode.properties,
811
- ...contentProperties
1043
+ ...contentProperties,
1044
+ ...extendProperties
812
1045
  }
813
1046
  };
814
1047
  }
1048
+ function createPlainAdditionLineElement(lineIndex, textDocument) {
1049
+ return {
1050
+ type: "element",
1051
+ tagName: "div",
1052
+ properties: {
1053
+ "data-line": lineIndex + 1,
1054
+ "data-line-index": `${lineIndex},${lineIndex}`,
1055
+ "data-line-type": "context"
1056
+ },
1057
+ children: [{
1058
+ type: "element",
1059
+ tagName: "span",
1060
+ properties: { "data-char": 0 },
1061
+ children: [{
1062
+ type: "text",
1063
+ value: textDocument.getLineText(lineIndex)
1064
+ }]
1065
+ }]
1066
+ };
1067
+ }
1068
+ function getEditorDocumentLines(textDocument, previousLines) {
1069
+ const lines = [];
1070
+ const fallbackLineBreak = getFallbackLineBreak(previousLines);
1071
+ for (let line = 0; line < textDocument.lineCount; line++) {
1072
+ const lineText = textDocument.getLineText(line, true);
1073
+ lines.push(line < textDocument.lineCount - 1 && !hasLineBreakSuffix(lineText) ? lineText + fallbackLineBreak : lineText);
1074
+ }
1075
+ return lines;
1076
+ }
1077
+ function hasLineBreakSuffix(line) {
1078
+ return line.endsWith("\n") || line.endsWith("\r");
1079
+ }
1080
+ function getFallbackLineBreak(lines) {
1081
+ for (const line of lines) {
1082
+ if (line.endsWith("\r\n")) return "\r\n";
1083
+ if (line.endsWith("\n")) return "\n";
1084
+ if (line.endsWith("\r")) return "\r";
1085
+ }
1086
+ return "\n";
1087
+ }
815
1088
  function isDiffMassive(diff, tokenizeMaxLength) {
816
1089
  return Math.max(diff.additionLines.length, diff.deletionLines.length) > tokenizeMaxLength;
817
1090
  }
818
- function calculateTrailingRangeSize(fileDiff) {
819
- const lastHunk = fileDiff.hunks.at(-1);
820
- if (lastHunk == null || fileDiff.isPartial || fileDiff.additionLines.length === 0 || fileDiff.deletionLines.length === 0) return 0;
821
- const additionRemaining = fileDiff.additionLines.length - (lastHunk.additionLineIndex + lastHunk.additionCount);
822
- const deletionRemaining = fileDiff.deletionLines.length - (lastHunk.deletionLineIndex + lastHunk.deletionCount);
823
- if (additionRemaining !== deletionRemaining) throw new Error(`DiffHunksRenderer.processDiffResult: trailing context mismatch (additions=${additionRemaining}, deletions=${deletionRemaining}) for ${fileDiff.name}`);
824
- return Math.min(additionRemaining, deletionRemaining);
1091
+ function canHydrateCollapsedContext(fileDiff, hasFileLoader) {
1092
+ return fileDiff.isPartial && hasFileLoader && (fileDiff.type === "change" || fileDiff.type === "rename-changed");
825
1093
  }
826
-
827
1094
  //#endregion
828
1095
  export { DiffHunksRenderer };
1096
+
829
1097
  //# sourceMappingURL=DiffHunksRenderer.js.map