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

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 (705) 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 +335 -51
  5. package/dist/components/CodeView.js.map +1 -1
  6. package/dist/components/File.d.ts +12 -8
  7. package/dist/components/File.d.ts.map +1 -1
  8. package/dist/components/File.js +103 -40
  9. package/dist/components/File.js.map +1 -1
  10. package/dist/components/FileDiff.d.ts +82 -36
  11. package/dist/components/FileDiff.d.ts.map +1 -1
  12. package/dist/components/FileDiff.js +382 -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 +36 -9
  27. package/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
  28. package/dist/components/VirtualizedFileDiff.js +371 -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 +12 -2
  47. package/dist/editor/editStack.d.ts.map +1 -1
  48. package/dist/editor/editStack.js +57 -16
  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 +1951 -709
  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 +306 -190
  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 +191 -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 +101 -16
  91. package/dist/editor/selection.d.ts.map +1 -1
  92. package/dist/editor/selection.js +863 -137
  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 +518 -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 +20 -2
  208. package/dist/managers/InteractionManager.d.ts.map +1 -1
  209. package/dist/managers/InteractionManager.js +159 -83
  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 +10 -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 +3 -7
  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 +278 -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 +51 -4
  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/isGutterUtilityPath.d.ts +5 -0
  581. package/dist/utils/isGutterUtilityPath.d.ts.map +1 -0
  582. package/dist/utils/isGutterUtilityPath.js +12 -0
  583. package/dist/utils/isGutterUtilityPath.js.map +1 -0
  584. package/dist/utils/isStyleNode.d.ts.map +1 -1
  585. package/dist/utils/isStyleNode.js +1 -1
  586. package/dist/utils/isStyleNode.js.map +1 -1
  587. package/dist/utils/isWorkerContext.d.ts.map +1 -1
  588. package/dist/utils/isWorkerContext.js +1 -1
  589. package/dist/utils/isWorkerContext.js.map +1 -1
  590. package/dist/utils/iterateOverDiff.d.ts.map +1 -1
  591. package/dist/utils/iterateOverDiff.js +178 -214
  592. package/dist/utils/iterateOverDiff.js.map +1 -1
  593. package/dist/utils/normalizeDiffResolution.d.ts.map +1 -1
  594. package/dist/utils/normalizeDiffResolution.js +1 -1
  595. package/dist/utils/normalizeDiffResolution.js.map +1 -1
  596. package/dist/utils/parseDiffDecorations.d.ts.map +1 -1
  597. package/dist/utils/parseDiffDecorations.js +1 -2
  598. package/dist/utils/parseDiffDecorations.js.map +1 -1
  599. package/dist/utils/parseDiffFromFile.d.ts +1 -2
  600. package/dist/utils/parseDiffFromFile.d.ts.map +1 -1
  601. package/dist/utils/parseDiffFromFile.js +27 -7
  602. package/dist/utils/parseDiffFromFile.js.map +1 -1
  603. package/dist/utils/parseLineType.d.ts.map +1 -1
  604. package/dist/utils/parseLineType.js +1 -1
  605. package/dist/utils/parseLineType.js.map +1 -1
  606. package/dist/utils/parseMergeConflictDiffFromFile.d.ts.map +1 -1
  607. package/dist/utils/parseMergeConflictDiffFromFile.js +5 -5
  608. package/dist/utils/parseMergeConflictDiffFromFile.js.map +1 -1
  609. package/dist/utils/parsePatchFiles.d.ts.map +1 -1
  610. package/dist/utils/parsePatchFiles.js +101 -11
  611. package/dist/utils/parsePatchFiles.js.map +1 -1
  612. package/dist/utils/prefersReducedMotion.d.ts.map +1 -1
  613. package/dist/utils/prefersReducedMotion.js +1 -1
  614. package/dist/utils/prefersReducedMotion.js.map +1 -1
  615. package/dist/utils/prerenderHTMLIfNecessary.d.ts.map +1 -1
  616. package/dist/utils/prerenderHTMLIfNecessary.js +1 -1
  617. package/dist/utils/prerenderHTMLIfNecessary.js.map +1 -1
  618. package/dist/utils/processLine.d.ts +1 -1
  619. package/dist/utils/processLine.d.ts.map +1 -1
  620. package/dist/utils/processLine.js +1 -2
  621. package/dist/utils/processLine.js.map +1 -1
  622. package/dist/utils/realignChangeContent.d.ts +28 -0
  623. package/dist/utils/realignChangeContent.d.ts.map +1 -0
  624. package/dist/utils/realignChangeContent.js +142 -0
  625. package/dist/utils/realignChangeContent.js.map +1 -0
  626. package/dist/utils/renderDiffWithHighlighter.d.ts.map +1 -1
  627. package/dist/utils/renderDiffWithHighlighter.js +9 -8
  628. package/dist/utils/renderDiffWithHighlighter.js.map +1 -1
  629. package/dist/utils/renderFileWithHighlighter.d.ts.map +1 -1
  630. package/dist/utils/renderFileWithHighlighter.js +5 -4
  631. package/dist/utils/renderFileWithHighlighter.js.map +1 -1
  632. package/dist/utils/resolveConflict.d.ts.map +1 -1
  633. package/dist/utils/resolveConflict.js +1 -2
  634. package/dist/utils/resolveConflict.js.map +1 -1
  635. package/dist/utils/resolveRegion.d.ts.map +1 -1
  636. package/dist/utils/resolveRegion.js +1 -1
  637. package/dist/utils/resolveRegion.js.map +1 -1
  638. package/dist/utils/roundToDevicePixel.d.ts.map +1 -1
  639. package/dist/utils/roundToDevicePixel.js +1 -1
  640. package/dist/utils/roundToDevicePixel.js.map +1 -1
  641. package/dist/utils/scrollbarGutter.d.ts.map +1 -1
  642. package/dist/utils/scrollbarGutter.js +1 -2
  643. package/dist/utils/scrollbarGutter.js.map +1 -1
  644. package/dist/utils/setLanguageOverride.d.ts.map +1 -1
  645. package/dist/utils/setLanguageOverride.js +1 -1
  646. package/dist/utils/setLanguageOverride.js.map +1 -1
  647. package/dist/utils/setWrapperNodeProps.d.ts.map +1 -1
  648. package/dist/utils/setWrapperNodeProps.js +1 -2
  649. package/dist/utils/setWrapperNodeProps.js.map +1 -1
  650. package/dist/utils/shouldUseTokenTransformer.d.ts.map +1 -1
  651. package/dist/utils/shouldUseTokenTransformer.js +1 -1
  652. package/dist/utils/shouldUseTokenTransformer.js.map +1 -1
  653. package/dist/utils/splitFileContents.d.ts.map +1 -1
  654. package/dist/utils/splitFileContents.js +1 -2
  655. package/dist/utils/splitFileContents.js.map +1 -1
  656. package/dist/utils/trimPatchContext.d.ts.map +1 -1
  657. package/dist/utils/trimPatchContext.js +1 -2
  658. package/dist/utils/trimPatchContext.js.map +1 -1
  659. package/dist/utils/updateDiffHunks.d.ts +24 -0
  660. package/dist/utils/updateDiffHunks.d.ts.map +1 -0
  661. package/dist/utils/updateDiffHunks.js +235 -0
  662. package/dist/utils/updateDiffHunks.js.map +1 -0
  663. package/dist/utils/virtualDiffLayout.d.ts +62 -2
  664. package/dist/utils/virtualDiffLayout.d.ts.map +1 -1
  665. package/dist/utils/virtualDiffLayout.js +137 -3
  666. package/dist/utils/virtualDiffLayout.js.map +1 -1
  667. package/dist/utils/wrapTokenFragments.d.ts +1 -1
  668. package/dist/utils/wrapTokenFragments.d.ts.map +1 -1
  669. package/dist/utils/wrapTokenFragments.js +1 -2
  670. package/dist/utils/wrapTokenFragments.js.map +1 -1
  671. package/dist/worker/WorkerPoolManager.d.ts +7 -2
  672. package/dist/worker/WorkerPoolManager.d.ts.map +1 -1
  673. package/dist/worker/WorkerPoolManager.js +88 -23
  674. package/dist/worker/WorkerPoolManager.js.map +1 -1
  675. package/dist/worker/getOrCreateWorkerPoolSingleton.d.ts.map +1 -1
  676. package/dist/worker/getOrCreateWorkerPoolSingleton.js +1 -2
  677. package/dist/worker/getOrCreateWorkerPoolSingleton.js.map +1 -1
  678. package/dist/worker/index.d.ts +2 -2
  679. package/dist/worker/index.js +1 -2
  680. package/dist/worker/types.d.ts +11 -1
  681. package/dist/worker/types.d.ts.map +1 -1
  682. package/dist/worker/wasm-B9ZqxnKj.js +8 -0
  683. package/dist/worker/wasm-B9ZqxnKj.js.map +1 -0
  684. package/dist/worker/worker-portable.js +3361 -6211
  685. package/dist/worker/worker-portable.js.map +1 -1
  686. package/dist/worker/worker.js +321 -314
  687. package/dist/worker/worker.js.map +1 -1
  688. package/package.json +29 -32
  689. package/dist/editor/css.d.ts +0 -6
  690. package/dist/editor/css.d.ts.map +0 -1
  691. package/dist/editor/css.js +0 -218
  692. package/dist/editor/css.js.map +0 -1
  693. package/dist/editor/quickEdit.d.ts +0 -29
  694. package/dist/editor/quickEdit.d.ts.map +0 -1
  695. package/dist/editor/quickEdit.js +0 -81
  696. package/dist/editor/quickEdit.js.map +0 -1
  697. package/dist/editor/tokenzier.d.ts.map +0 -1
  698. package/dist/editor/tokenzier.js +0 -348
  699. package/dist/editor/tokenzier.js.map +0 -1
  700. package/dist/react/EditorContext.d.ts +0 -16
  701. package/dist/react/EditorContext.d.ts.map +0 -1
  702. package/dist/react/EditorContext.js +0 -26
  703. package/dist/react/EditorContext.js.map +0 -1
  704. package/dist/worker/wasm-D4DU5jgR.js +0 -10
  705. package/dist/worker/wasm-D4DU5jgR.js.map +0 -1
@@ -1,11 +1,11 @@
1
1
  import { createHighlighterCore } from "shiki/core";
2
2
  import { createJavaScriptRegexEngine } from "shiki/engine/javascript";
3
3
  import { createOnigurumaEngine } from "shiki/engine/oniguruma";
4
+ import { createThemeResolver } from "@pierre/theming";
4
5
  import { diffChars, diffWordsWithSpace } from "diff";
5
6
  import { transformerStyleToClass } from "@shikijs/transformers";
6
-
7
- //#region src/constants.ts
8
- const DIFFS_DEVELOPMENT_BUILD = (() => {
7
+ import { normalizeThemeColors } from "@pierre/theming/color";
8
+ (() => {
9
9
  try {
10
10
  return process.env.NODE_ENV === "development";
11
11
  } catch {
@@ -16,30 +16,17 @@ const DEFAULT_THEMES = {
16
16
  dark: "pierre-dark",
17
17
  light: "pierre-light"
18
18
  };
19
- const DEFAULT_COLLAPSED_CONTEXT_THRESHOLD = 1;
20
- const DEFAULT_VIRTUAL_FILE_METRICS = {
21
- hunkLineCount: 50,
22
- lineHeight: 20,
23
- diffHeaderHeight: 44,
24
- spacing: 8
25
- };
26
- const DEFAULT_CODE_VIEW_FILE_METRICS = {
27
- ...DEFAULT_VIRTUAL_FILE_METRICS,
28
- hunkLineCount: 1
29
- };
30
- const DEFAULT_EXPANDED_REGION = Object.freeze({
19
+ Object.freeze({
31
20
  fromStart: 0,
32
21
  fromEnd: 0
33
22
  });
34
-
35
23
  //#endregion
36
24
  //#region src/highlighter/languages/constants.ts
37
25
  const ResolvedLanguages = /* @__PURE__ */ new Map();
38
26
  const AttachedLanguages = /* @__PURE__ */ new Set();
39
-
40
27
  //#endregion
41
28
  //#region src/highlighter/languages/attachResolvedLanguages.ts
42
- function attachResolvedLanguages(resolvedLanguages, highlighter$1) {
29
+ function attachResolvedLanguages(resolvedLanguages, highlighter) {
43
30
  resolvedLanguages = Array.isArray(resolvedLanguages) ? resolvedLanguages : [resolvedLanguages];
44
31
  for (const resolvedLang of resolvedLanguages) {
45
32
  if (AttachedLanguages.has(resolvedLang.name)) continue;
@@ -49,35 +36,34 @@ function attachResolvedLanguages(resolvedLanguages, highlighter$1) {
49
36
  ResolvedLanguages.set(resolvedLang.name, lang);
50
37
  }
51
38
  AttachedLanguages.add(lang.name);
52
- highlighter$1.loadLanguageSync(lang.data);
39
+ highlighter.loadLanguageSync(lang.data);
53
40
  }
54
41
  }
55
-
56
42
  //#endregion
57
43
  //#region src/highlighter/themes/constants.ts
58
- const ResolvedThemes = /* @__PURE__ */ new Map();
59
44
  const AttachedThemes = /* @__PURE__ */ new Set();
60
-
45
+ //#endregion
46
+ //#region src/highlighter/themes/themeResolver.ts
47
+ const themeResolver = createThemeResolver();
61
48
  //#endregion
62
49
  //#region src/highlighter/themes/attachResolvedThemes.ts
63
- function attachResolvedThemes(themes, highlighter$1) {
50
+ function attachResolvedThemes(themes, highlighter) {
64
51
  themes = Array.isArray(themes) ? themes : [themes];
65
52
  for (let themeRef of themes) {
66
53
  let resolvedTheme;
67
54
  if (typeof themeRef === "string") {
68
- resolvedTheme = ResolvedThemes.get(themeRef);
55
+ resolvedTheme = themeResolver.getResolvedTheme(themeRef);
69
56
  if (resolvedTheme == null) throw new Error(`loadResolvedThemes: ${themeRef} is not resolved, you must resolve it before calling loadResolvedThemes`);
70
57
  } else {
71
58
  resolvedTheme = themeRef;
72
59
  themeRef = themeRef.name;
73
- if (!ResolvedThemes.has(themeRef)) ResolvedThemes.set(themeRef, resolvedTheme);
60
+ if (themeResolver.getResolvedTheme(themeRef) == null) themeResolver.seedResolvedTheme(themeRef, resolvedTheme);
74
61
  }
75
62
  if (AttachedThemes.has(themeRef)) continue;
76
63
  AttachedThemes.add(themeRef);
77
- highlighter$1.loadThemeSync(resolvedTheme);
64
+ highlighter.loadThemeSync(resolvedTheme);
78
65
  }
79
66
  }
80
-
81
67
  //#endregion
82
68
  //#region src/utils/getFiletypeFromFileName.ts
83
69
  const CUSTOM_EXTENSION_TO_FILE_FORMAT = /* @__PURE__ */ new Map();
@@ -391,6 +377,8 @@ const EXTENSION_TO_FILE_FORMAT = {
391
377
  tfvars: "tfvars",
392
378
  toml: "toml",
393
379
  ts: "typescript",
380
+ mts: "typescript",
381
+ cts: "typescript",
394
382
  tsp: "typespec",
395
383
  tsv: "tsv",
396
384
  tsx: "tsx",
@@ -449,7 +437,6 @@ function replaceCustomExtensions(version, map) {
449
437
  customExtensionsVersion = version;
450
438
  return true;
451
439
  }
452
-
453
440
  //#endregion
454
441
  //#region src/utils/cleanLastNewline.ts
455
442
  function cleanLastNewline(contents) {
@@ -460,7 +447,6 @@ function cleanLastNewline(contents) {
460
447
  }
461
448
  return contents.slice(0, end);
462
449
  }
463
-
464
450
  //#endregion
465
451
  //#region src/utils/hast_utils.ts
466
452
  function createTextNodeElement(value) {
@@ -485,7 +471,6 @@ function findCodeElement(nodes) {
485
471
  else firstChild = null;
486
472
  }
487
473
  }
488
-
489
474
  //#endregion
490
475
  //#region src/utils/processLine.ts
491
476
  function processLine(node, line, state) {
@@ -507,7 +492,6 @@ function processLine(node, line, state) {
507
492
  if (node.children.length === 0) node.children.push(createTextNodeElement("\n"));
508
493
  return node;
509
494
  }
510
-
511
495
  //#endregion
512
496
  //#region src/utils/wrapTokenFragments.ts
513
497
  const NO_TOKEN = Symbol("no-token");
@@ -585,7 +569,6 @@ function stripTokenChar(node) {
585
569
  function setTokenChar(node, char) {
586
570
  node.properties["data-char"] = char;
587
571
  }
588
-
589
572
  //#endregion
590
573
  //#region src/utils/createTransformerWithState.ts
591
574
  function createTransformerWithState(useTokenTransformer = false, useCSSClasses = false) {
@@ -668,37 +651,38 @@ const tokenStyleNormalizer = {
668
651
  }
669
652
  }
670
653
  };
671
-
672
654
  //#endregion
673
655
  //#region src/utils/formatCSSVariablePrefix.ts
674
656
  function formatCSSVariablePrefix(type) {
675
657
  return `--${type === "token" ? "diffs-token" : "diffs"}-`;
676
658
  }
677
-
678
659
  //#endregion
679
660
  //#region src/utils/getHighlighterThemeStyles.ts
680
- function getHighlighterThemeStyles({ theme = DEFAULT_THEMES, highlighter: highlighter$1, prefix }) {
661
+ function getHighlighterThemeStyles({ theme = DEFAULT_THEMES, highlighter, prefix }) {
681
662
  let styles = "";
682
663
  if (typeof theme === "string") {
683
- const themeData = highlighter$1.getTheme(theme);
684
- styles += `color:${themeData.fg};`;
685
- styles += `background-color:${themeData.bg};`;
686
- styles += `${formatCSSVariablePrefix("global")}fg:${themeData.fg};`;
687
- styles += `${formatCSSVariablePrefix("global")}bg:${themeData.bg};`;
688
- styles += getThemeVariables(themeData, prefix);
664
+ const themeData = highlighter.getTheme(theme);
665
+ const normalized = normalizeThemeColors(themeData);
666
+ styles += `color:${normalized.fg};`;
667
+ styles += `background-color:${normalized.bg};`;
668
+ styles += `${formatCSSVariablePrefix("global")}fg:${normalized.fg};`;
669
+ styles += `${formatCSSVariablePrefix("global")}bg:${normalized.bg};`;
670
+ styles += getGitVariables(themeData, prefix);
689
671
  } else {
690
- let themeData = highlighter$1.getTheme(theme.dark);
691
- styles += `${formatCSSVariablePrefix("global")}dark:${themeData.fg};`;
692
- styles += `${formatCSSVariablePrefix("global")}dark-bg:${themeData.bg};`;
693
- styles += getThemeVariables(themeData, "dark");
694
- themeData = highlighter$1.getTheme(theme.light);
695
- styles += `${formatCSSVariablePrefix("global")}light:${themeData.fg};`;
696
- styles += `${formatCSSVariablePrefix("global")}light-bg:${themeData.bg};`;
697
- styles += getThemeVariables(themeData, "light");
672
+ let themeData = highlighter.getTheme(theme.dark);
673
+ let normalized = normalizeThemeColors(themeData);
674
+ styles += `${formatCSSVariablePrefix("global")}dark:${normalized.fg};`;
675
+ styles += `${formatCSSVariablePrefix("global")}dark-bg:${normalized.bg};`;
676
+ styles += getGitVariables(themeData, "dark");
677
+ themeData = highlighter.getTheme(theme.light);
678
+ normalized = normalizeThemeColors(themeData);
679
+ styles += `${formatCSSVariablePrefix("global")}light:${normalized.fg};`;
680
+ styles += `${formatCSSVariablePrefix("global")}light-bg:${normalized.bg};`;
681
+ styles += getGitVariables(themeData, "light");
698
682
  }
699
683
  return styles;
700
684
  }
701
- function getThemeVariables(themeData, modePrefix) {
685
+ function getGitVariables(themeData, modePrefix) {
702
686
  modePrefix = modePrefix != null ? `${modePrefix}-` : "";
703
687
  let styles = "";
704
688
  const additionGreen = themeData.colors?.["gitDecoration.addedResourceForeground"] ?? themeData.colors?.["terminal.ansiGreen"];
@@ -709,7 +693,6 @@ function getThemeVariables(themeData, modePrefix) {
709
693
  if (modifiedBlue != null) styles += `${formatCSSVariablePrefix("global")}${modePrefix}modified-color:${modifiedBlue};`;
710
694
  return styles;
711
695
  }
712
-
713
696
  //#endregion
714
697
  //#region src/utils/getLineNodes.ts
715
698
  function getLineNodes(nodes) {
@@ -722,7 +705,6 @@ function getLineNodes(nodes) {
722
705
  console.error(nodes);
723
706
  throw new Error("getLineNodes: Unable to find children");
724
707
  }
725
-
726
708
  //#endregion
727
709
  //#region src/utils/virtualDiffLayout.ts
728
710
  function getExpandedRegion({ isPartial, rangeSize, expandedHunks, hunkIndex, collapsedContextThreshold }) {
@@ -754,10 +736,42 @@ function getExpandedRegion({ isPartial, rangeSize, expandedHunks, hunkIndex, col
754
736
  renderAll
755
737
  };
756
738
  }
757
-
739
+ function getTrailingContextRangeSize({ fileDiff, errorPrefix }) {
740
+ const lastHunk = fileDiff.hunks[fileDiff.hunks.length - 1];
741
+ if (lastHunk == null || fileDiff.isPartial || fileDiff.additionLines.length === 0 || fileDiff.deletionLines.length === 0) return 0;
742
+ const additionRemaining = fileDiff.additionLines.length - (lastHunk.additionLineIndex + lastHunk.additionCount);
743
+ const deletionRemaining = fileDiff.deletionLines.length - (lastHunk.deletionLineIndex + lastHunk.deletionCount);
744
+ if (additionRemaining <= 0 && deletionRemaining <= 0) return 0;
745
+ if (additionRemaining !== deletionRemaining) throw new Error(`${errorPrefix}: trailing context mismatch (additions=${additionRemaining}, deletions=${deletionRemaining}) for ${fileDiff.name}`);
746
+ return Math.min(additionRemaining, deletionRemaining);
747
+ }
748
+ function getTrailingExpandedRegion({ fileDiff, hunkIndex, expandedHunks, collapsedContextThreshold, errorPrefix }) {
749
+ if (hunkIndex !== fileDiff.hunks.length - 1) return;
750
+ const trailingRangeSize = getTrailingContextRangeSize({
751
+ fileDiff,
752
+ errorPrefix
753
+ });
754
+ if (trailingRangeSize <= 0) return;
755
+ if (expandedHunks === true || trailingRangeSize <= collapsedContextThreshold) return {
756
+ fromStart: trailingRangeSize,
757
+ fromEnd: 0,
758
+ rangeSize: trailingRangeSize,
759
+ collapsedLines: 0,
760
+ renderAll: true
761
+ };
762
+ const region = expandedHunks?.get(fileDiff.hunks.length);
763
+ const fromStart = Math.min(Math.max(region?.fromStart ?? 0, 0), trailingRangeSize);
764
+ return {
765
+ fromStart,
766
+ fromEnd: 0,
767
+ rangeSize: trailingRangeSize,
768
+ collapsedLines: trailingRangeSize - fromStart,
769
+ renderAll: fromStart >= trailingRangeSize
770
+ };
771
+ }
758
772
  //#endregion
759
773
  //#region src/utils/iterateOverDiff.ts
760
- function iterateOverDiff({ diff, diffStyle, startingLine = 0, totalLines = Infinity, expandedHunks, collapsedContextThreshold = DEFAULT_COLLAPSED_CONTEXT_THRESHOLD, callback }) {
774
+ function iterateOverDiff({ diff, diffStyle, startingLine = 0, totalLines = Infinity, expandedHunks, collapsedContextThreshold = 1, callback }) {
761
775
  const iterationStart = getIterationStartState({
762
776
  diff,
763
777
  diffStyle,
@@ -766,12 +780,12 @@ function iterateOverDiff({ diff, diffStyle, startingLine = 0, totalLines = Infin
766
780
  collapsedContextThreshold
767
781
  });
768
782
  const state = {
769
- finalHunk: diff.hunks.at(-1),
770
783
  viewportStart: startingLine,
771
784
  viewportEnd: startingLine + totalLines,
772
785
  isWindowedHighlight: startingLine > 0 || totalLines < Infinity,
773
786
  splitCount: iterationStart.splitCount,
774
787
  unifiedCount: iterationStart.unifiedCount,
788
+ finalHunkIndex: diff.hunks.length - 1,
775
789
  shouldBreak() {
776
790
  if (!state.isWindowedHighlight) return false;
777
791
  const breakUnified = state.unifiedCount >= startingLine + totalLines;
@@ -780,10 +794,10 @@ function iterateOverDiff({ diff, diffStyle, startingLine = 0, totalLines = Infin
780
794
  else if (diffStyle === "split") return breakSplit;
781
795
  else return breakUnified && breakSplit;
782
796
  },
783
- shouldSkip(unifiedHeight, splitHeight) {
797
+ shouldSkip(unifiedCount, splitCount) {
784
798
  if (!state.isWindowedHighlight) return false;
785
- const skipUnified = state.unifiedCount + unifiedHeight < startingLine;
786
- const skipSplit = state.splitCount + splitHeight < startingLine;
799
+ const skipUnified = unifiedCount > 0 && state.unifiedCount + unifiedCount <= startingLine;
800
+ const skipSplit = splitCount > 0 && state.splitCount + splitCount <= startingLine;
787
801
  if (diffStyle === "unified") return skipUnified;
788
802
  else if (diffStyle === "split") return skipSplit;
789
803
  else return skipUnified && skipSplit;
@@ -824,114 +838,89 @@ function iterateOverDiff({ diff, diffStyle, startingLine = 0, totalLines = Infin
824
838
  hunkIndex,
825
839
  collapsedContextThreshold
826
840
  });
827
- const trailingRegion = (() => {
828
- if (hunk !== state.finalHunk || !hasFinalCollapsedHunk(diff)) return;
829
- const additionRemaining = diff.additionLines.length - (hunk.additionLineIndex + hunk.additionCount);
830
- const deletionRemaining = diff.deletionLines.length - (hunk.deletionLineIndex + hunk.deletionCount);
831
- if (additionRemaining !== deletionRemaining) throw new Error(`iterateOverDiff: trailing context mismatch (additions=${additionRemaining}, deletions=${deletionRemaining}) for ${diff.name}`);
832
- const trailingRangeSize = Math.min(additionRemaining, deletionRemaining);
833
- return getExpandedRegion({
834
- isPartial: diff.isPartial,
835
- rangeSize: trailingRangeSize,
836
- expandedHunks,
837
- hunkIndex: diff.hunks.length,
838
- collapsedContextThreshold
839
- });
840
- })();
841
+ const trailingRegion = hunkIndex === state.finalHunkIndex ? getTrailingExpandedRegion({
842
+ fileDiff: diff,
843
+ hunkIndex,
844
+ expandedHunks,
845
+ collapsedContextThreshold,
846
+ errorPrefix: "iterateOverDiff"
847
+ }) : void 0;
841
848
  const expandedLineCount = leadingRegion.fromStart + leadingRegion.fromEnd;
842
- function getTrailingCollapsedAfter(unifiedLineIndex$1, splitLineIndex$1) {
849
+ function getTrailingCollapsedAfter(unifiedLineIndex, splitLineIndex) {
843
850
  if (trailingRegion == null || trailingRegion.collapsedLines <= 0 || trailingRegion.fromStart + trailingRegion.fromEnd > 0) return 0;
844
- if (diffStyle === "unified") return unifiedLineIndex$1 === hunk.unifiedLineStart + hunk.unifiedLineCount - 1 ? trailingRegion.collapsedLines : 0;
845
- return splitLineIndex$1 === hunk.splitLineStart + hunk.splitLineCount - 1 ? trailingRegion.collapsedLines : 0;
851
+ if (diffStyle === "unified") return unifiedLineIndex === hunk.unifiedLineStart + hunk.unifiedLineCount - 1 ? trailingRegion.collapsedLines : 0;
852
+ return splitLineIndex === hunk.splitLineStart + hunk.splitLineCount - 1 ? trailingRegion.collapsedLines : 0;
846
853
  }
847
- function getPendingCollapsed() {
848
- if (leadingRegion.collapsedLines === 0) return 0;
849
- const value = leadingRegion.collapsedLines;
850
- leadingRegion.collapsedLines = 0;
851
- return value;
854
+ let consumedCollapsed = leadingRegion.collapsedLines === 0;
855
+ function consumePendingCollapsed() {
856
+ if (consumedCollapsed) return 0;
857
+ consumedCollapsed = true;
858
+ return leadingRegion.collapsedLines;
852
859
  }
853
860
  if (!state.shouldSkip(expandedLineCount, expandedLineCount)) {
854
- let unifiedLineIndex$1 = hunk.unifiedLineStart - leadingRegion.rangeSize;
855
- let splitLineIndex$1 = hunk.splitLineStart - leadingRegion.rangeSize;
856
- let deletionLineIndex$1 = hunk.deletionLineIndex - leadingRegion.rangeSize;
857
- let additionLineIndex$1 = hunk.additionLineIndex - leadingRegion.rangeSize;
858
- let deletionLineNumber$1 = hunk.deletionStart - leadingRegion.rangeSize;
859
- let additionLineNumber$1 = hunk.additionStart - leadingRegion.rangeSize;
860
- const [startIndex, endIndex] = getEqualLineIterationRange(state, leadingRegion.fromStart, diffStyle);
861
- if (startIndex > 0) state.incrementCounts(startIndex, startIndex);
862
- let index = startIndex;
863
- while (index < leadingRegion.fromStart) {
864
- if (index >= endIndex) {
865
- state.incrementCounts(leadingRegion.fromStart - index, leadingRegion.fromStart - index);
866
- break;
867
- }
868
- if (state.isInWindow(0, 0)) {
869
- if (state.emit({
870
- hunkIndex,
871
- hunk,
872
- collapsedBefore: 0,
873
- collapsedAfter: 0,
874
- type: "context-expanded",
875
- deletionLine: {
876
- lineNumber: deletionLineNumber$1 + index,
877
- lineIndex: deletionLineIndex$1 + index,
878
- noEOFCR: false,
879
- unifiedLineIndex: unifiedLineIndex$1 + index,
880
- splitLineIndex: splitLineIndex$1 + index
881
- },
882
- additionLine: {
883
- unifiedLineIndex: unifiedLineIndex$1 + index,
884
- splitLineIndex: splitLineIndex$1 + index,
885
- lineIndex: additionLineIndex$1 + index,
886
- lineNumber: additionLineNumber$1 + index,
887
- noEOFCR: false
888
- }
889
- })) break hunkIterator;
890
- } else state.incrementCounts(1, 1);
891
- index++;
892
- }
893
- unifiedLineIndex$1 = hunk.unifiedLineStart - leadingRegion.fromEnd;
894
- splitLineIndex$1 = hunk.splitLineStart - leadingRegion.fromEnd;
895
- deletionLineIndex$1 = hunk.deletionLineIndex - leadingRegion.fromEnd;
896
- additionLineIndex$1 = hunk.additionLineIndex - leadingRegion.fromEnd;
897
- deletionLineNumber$1 = hunk.deletionStart - leadingRegion.fromEnd;
898
- additionLineNumber$1 = hunk.additionStart - leadingRegion.fromEnd;
899
- const [fromEndStartIndex, fromEndEndIndex] = getEqualLineIterationRange(state, leadingRegion.fromEnd, diffStyle);
900
- if (fromEndStartIndex > 0) state.incrementCounts(fromEndStartIndex, fromEndStartIndex);
901
- index = fromEndStartIndex;
902
- while (index < leadingRegion.fromEnd) {
903
- if (index >= fromEndEndIndex) {
904
- state.incrementCounts(leadingRegion.fromEnd - index, leadingRegion.fromEnd - index);
905
- break;
906
- }
907
- if (state.isInWindow(0, 0)) {
908
- if (state.emit({
909
- hunkIndex,
910
- hunk,
911
- collapsedBefore: getPendingCollapsed(),
912
- collapsedAfter: 0,
913
- type: "context-expanded",
914
- deletionLine: {
915
- lineNumber: deletionLineNumber$1 + index,
916
- lineIndex: deletionLineIndex$1 + index,
917
- noEOFCR: false,
918
- unifiedLineIndex: unifiedLineIndex$1 + index,
919
- splitLineIndex: splitLineIndex$1 + index
920
- },
921
- additionLine: {
922
- unifiedLineIndex: unifiedLineIndex$1 + index,
923
- splitLineIndex: splitLineIndex$1 + index,
924
- lineIndex: additionLineIndex$1 + index,
925
- lineNumber: additionLineNumber$1 + index,
926
- noEOFCR: false
927
- }
928
- })) break hunkIterator;
929
- } else state.incrementCounts(1, 1);
930
- index++;
931
- }
861
+ let unifiedLineIndex = hunk.unifiedLineStart - leadingRegion.rangeSize;
862
+ let splitLineIndex = hunk.splitLineStart - leadingRegion.rangeSize;
863
+ let deletionLineIndex = hunk.deletionLineIndex - leadingRegion.rangeSize;
864
+ let additionLineIndex = hunk.additionLineIndex - leadingRegion.rangeSize;
865
+ let deletionLineNumber = hunk.deletionStart - leadingRegion.rangeSize;
866
+ let additionLineNumber = hunk.additionStart - leadingRegion.rangeSize;
867
+ if (walkContextLines(state, leadingRegion.fromStart, diffStyle, (index) => {
868
+ return state.emit({
869
+ hunkIndex,
870
+ hunk,
871
+ collapsedBefore: 0,
872
+ collapsedAfter: 0,
873
+ type: "context-expanded",
874
+ deletionLine: {
875
+ lineNumber: deletionLineNumber + index,
876
+ lineIndex: deletionLineIndex + index,
877
+ noEOFCR: false,
878
+ unifiedLineIndex: unifiedLineIndex + index,
879
+ splitLineIndex: splitLineIndex + index
880
+ },
881
+ additionLine: {
882
+ unifiedLineIndex: unifiedLineIndex + index,
883
+ splitLineIndex: splitLineIndex + index,
884
+ lineIndex: additionLineIndex + index,
885
+ lineNumber: additionLineNumber + index,
886
+ noEOFCR: false
887
+ }
888
+ });
889
+ })) break hunkIterator;
890
+ unifiedLineIndex = hunk.unifiedLineStart - leadingRegion.fromEnd;
891
+ splitLineIndex = hunk.splitLineStart - leadingRegion.fromEnd;
892
+ deletionLineIndex = hunk.deletionLineIndex - leadingRegion.fromEnd;
893
+ additionLineIndex = hunk.additionLineIndex - leadingRegion.fromEnd;
894
+ deletionLineNumber = hunk.deletionStart - leadingRegion.fromEnd;
895
+ additionLineNumber = hunk.additionStart - leadingRegion.fromEnd;
896
+ if (walkContextLines(state, leadingRegion.fromEnd, diffStyle, (index) => {
897
+ return state.emit({
898
+ hunkIndex,
899
+ hunk,
900
+ collapsedBefore: consumePendingCollapsed(),
901
+ collapsedAfter: 0,
902
+ type: "context-expanded",
903
+ deletionLine: {
904
+ lineNumber: deletionLineNumber + index,
905
+ lineIndex: deletionLineIndex + index,
906
+ noEOFCR: false,
907
+ unifiedLineIndex: unifiedLineIndex + index,
908
+ splitLineIndex: splitLineIndex + index
909
+ },
910
+ additionLine: {
911
+ unifiedLineIndex: unifiedLineIndex + index,
912
+ splitLineIndex: splitLineIndex + index,
913
+ lineIndex: additionLineIndex + index,
914
+ lineNumber: additionLineNumber + index,
915
+ noEOFCR: false
916
+ }
917
+ });
918
+ }, () => {
919
+ consumePendingCollapsed();
920
+ })) break hunkIterator;
932
921
  } else {
933
922
  state.incrementCounts(expandedLineCount, expandedLineCount);
934
- getPendingCollapsed();
923
+ consumePendingCollapsed();
935
924
  }
936
925
  let unifiedLineIndex = hunk.unifiedLineStart;
937
926
  let splitLineIndex = hunk.splitLineStart;
@@ -945,45 +934,37 @@ function iterateOverDiff({ diff, diffStyle, startingLine = 0, totalLines = Infin
945
934
  const isLastContent = content === lastContent;
946
935
  if (content.type === "context") {
947
936
  if (!state.shouldSkip(content.lines, content.lines)) {
948
- const [startIndex, endIndex] = getEqualLineIterationRange(state, content.lines, diffStyle);
949
- if (startIndex > 0) state.incrementCounts(startIndex, startIndex);
950
- let index = startIndex;
951
- while (index < content.lines) {
952
- if (index >= endIndex) {
953
- state.incrementCounts(content.lines - index, content.lines - index);
954
- break;
955
- }
956
- if (state.isInWindow(0, 0)) {
957
- const isLastLine = isLastContent && index === content.lines - 1;
958
- const unifiedRowIndex = unifiedLineIndex + index;
959
- const splitRowIndex = splitLineIndex + index;
960
- if (state.emit({
961
- hunkIndex,
962
- hunk,
963
- collapsedBefore: getPendingCollapsed(),
964
- collapsedAfter: getTrailingCollapsedAfter(unifiedRowIndex, splitRowIndex),
965
- type: "context",
966
- deletionLine: {
967
- lineNumber: deletionLineNumber + index,
968
- lineIndex: deletionLineIndex + index,
969
- noEOFCR: isLastLine && hunk.noEOFCRDeletions,
970
- unifiedLineIndex: unifiedRowIndex,
971
- splitLineIndex: splitRowIndex
972
- },
973
- additionLine: {
974
- unifiedLineIndex: unifiedRowIndex,
975
- splitLineIndex: splitRowIndex,
976
- lineIndex: additionLineIndex + index,
977
- lineNumber: additionLineNumber + index,
978
- noEOFCR: isLastLine && hunk.noEOFCRAdditions
979
- }
980
- })) break hunkIterator;
981
- } else state.incrementCounts(1, 1);
982
- index++;
983
- }
937
+ if (walkContextLines(state, content.lines, diffStyle, (index) => {
938
+ const isLastLine = isLastContent && index === content.lines - 1;
939
+ const unifiedRowIndex = unifiedLineIndex + index;
940
+ const splitRowIndex = splitLineIndex + index;
941
+ return state.emit({
942
+ hunkIndex,
943
+ hunk,
944
+ collapsedBefore: consumePendingCollapsed(),
945
+ collapsedAfter: getTrailingCollapsedAfter(unifiedRowIndex, splitRowIndex),
946
+ type: "context",
947
+ deletionLine: {
948
+ lineNumber: deletionLineNumber + index,
949
+ lineIndex: deletionLineIndex + index,
950
+ noEOFCR: isLastLine && hunk.noEOFCRDeletions,
951
+ unifiedLineIndex: unifiedRowIndex,
952
+ splitLineIndex: splitRowIndex
953
+ },
954
+ additionLine: {
955
+ unifiedLineIndex: unifiedRowIndex,
956
+ splitLineIndex: splitRowIndex,
957
+ lineIndex: additionLineIndex + index,
958
+ lineNumber: additionLineNumber + index,
959
+ noEOFCR: isLastLine && hunk.noEOFCRAdditions
960
+ }
961
+ });
962
+ }, () => {
963
+ consumePendingCollapsed();
964
+ })) break hunkIterator;
984
965
  } else {
985
966
  state.incrementCounts(content.lines, content.lines);
986
- getPendingCollapsed();
967
+ consumePendingCollapsed();
987
968
  }
988
969
  unifiedLineIndex += content.lines;
989
970
  splitLineIndex += content.lines;
@@ -996,12 +977,13 @@ function iterateOverDiff({ diff, diffStyle, startingLine = 0, totalLines = Infin
996
977
  const unifiedCount = content.deletions + content.additions;
997
978
  if (!state.shouldSkip(unifiedCount, splitCount)) {
998
979
  const iterationRanges = getChangeIterationRanges(state, content, diffStyle);
980
+ if ((iterationRanges[0]?.[0] ?? 0) > 0) consumePendingCollapsed();
999
981
  for (const [rangeStart, rangeEnd] of iterationRanges) for (let index = rangeStart; index < rangeEnd; index++) {
1000
982
  const collapsedAfter = getTrailingCollapsedAfter(unifiedLineIndex + index, diffStyle === "unified" ? splitLineIndex + (index < content.deletions ? index : index - content.deletions) : splitLineIndex + index);
1001
983
  if (state.emit(getChangeLineData({
1002
984
  hunkIndex,
1003
985
  hunk,
1004
- collapsedBefore: getPendingCollapsed(),
986
+ collapsedBefore: consumePendingCollapsed(),
1005
987
  collapsedAfter,
1006
988
  diffStyle,
1007
989
  index,
@@ -1018,7 +1000,7 @@ function iterateOverDiff({ diff, diffStyle, startingLine = 0, totalLines = Infin
1018
1000
  }), true)) break hunkIterator;
1019
1001
  }
1020
1002
  }
1021
- getPendingCollapsed();
1003
+ consumePendingCollapsed();
1022
1004
  state.incrementCounts(unifiedCount, splitCount);
1023
1005
  unifiedLineIndex += unifiedCount;
1024
1006
  splitLineIndex += splitCount;
@@ -1031,41 +1013,30 @@ function iterateOverDiff({ diff, diffStyle, startingLine = 0, totalLines = Infin
1031
1013
  if (trailingRegion != null) {
1032
1014
  const { collapsedLines, fromStart, fromEnd } = trailingRegion;
1033
1015
  const len = fromStart + fromEnd;
1034
- const [startIndex, endIndex] = getEqualLineIterationRange(state, len, diffStyle);
1035
- if (startIndex > 0) state.incrementCounts(startIndex, startIndex);
1036
- let index = startIndex;
1037
- while (index < len) {
1038
- if (state.shouldBreak()) break hunkIterator;
1039
- if (index >= endIndex) {
1040
- state.incrementCounts(len - index, len - index);
1041
- break;
1042
- }
1043
- if (state.isInWindow(0, 0)) {
1044
- const isLastLine = index === len - 1;
1045
- if (state.emit({
1046
- hunkIndex: diff.hunks.length,
1047
- hunk: void 0,
1048
- collapsedBefore: 0,
1049
- collapsedAfter: isLastLine ? collapsedLines : 0,
1050
- type: "context-expanded",
1051
- deletionLine: {
1052
- lineNumber: deletionLineNumber + index,
1053
- lineIndex: deletionLineIndex + index,
1054
- noEOFCR: false,
1055
- unifiedLineIndex: unifiedLineIndex + index,
1056
- splitLineIndex: splitLineIndex + index
1057
- },
1058
- additionLine: {
1059
- unifiedLineIndex: unifiedLineIndex + index,
1060
- splitLineIndex: splitLineIndex + index,
1061
- lineIndex: additionLineIndex + index,
1062
- lineNumber: additionLineNumber + index,
1063
- noEOFCR: false
1064
- }
1065
- })) break hunkIterator;
1066
- } else state.incrementCounts(1, 1);
1067
- index++;
1068
- }
1016
+ if (walkContextLines(state, len, diffStyle, (index) => {
1017
+ const isLastLine = index === len - 1;
1018
+ return state.emit({
1019
+ hunkIndex: diff.hunks.length,
1020
+ hunk: void 0,
1021
+ collapsedBefore: 0,
1022
+ collapsedAfter: isLastLine ? collapsedLines : 0,
1023
+ type: "context-expanded",
1024
+ deletionLine: {
1025
+ lineNumber: deletionLineNumber + index,
1026
+ lineIndex: deletionLineIndex + index,
1027
+ noEOFCR: false,
1028
+ unifiedLineIndex: unifiedLineIndex + index,
1029
+ splitLineIndex: splitLineIndex + index
1030
+ },
1031
+ additionLine: {
1032
+ unifiedLineIndex: unifiedLineIndex + index,
1033
+ splitLineIndex: splitLineIndex + index,
1034
+ lineIndex: additionLineIndex + index,
1035
+ lineNumber: additionLineNumber + index,
1036
+ noEOFCR: false
1037
+ }
1038
+ });
1039
+ }, void 0, () => state.shouldBreak())) break hunkIterator;
1069
1040
  }
1070
1041
  }
1071
1042
  }
@@ -1085,20 +1056,20 @@ function getIterationStartState({ diff, diffStyle, startingLine, expandedHunks,
1085
1056
  let result = diff.hunks.length;
1086
1057
  while (low <= high) {
1087
1058
  const mid = low + high >> 1;
1088
- const counts$1 = prefixCounts[mid + 1];
1089
- if (counts$1 == null) throw new Error("iterateOverDiff: invalid hunk prefix index");
1090
- if ((diffStyle === "unified" ? counts$1.unifiedCount : counts$1.splitCount) > startingLine) {
1059
+ const counts = prefixCounts[mid + 1];
1060
+ if (counts == null) throw new Error("iterateOverDiff: invalid hunk prefix index");
1061
+ if ((diffStyle === "unified" ? counts.unifiedCount : counts.splitCount) > startingLine) {
1091
1062
  result = mid;
1092
1063
  high = mid - 1;
1093
1064
  } else low = mid + 1;
1094
1065
  }
1095
1066
  if (result >= diff.hunks.length) {
1096
- const counts$1 = prefixCounts[diff.hunks.length];
1097
- if (counts$1 == null) throw new Error("iterateOverDiff: invalid terminal hunk prefix index");
1067
+ const counts = prefixCounts[diff.hunks.length];
1068
+ if (counts == null) throw new Error("iterateOverDiff: invalid terminal hunk prefix index");
1098
1069
  return {
1099
1070
  hunkIndex: diff.hunks.length,
1100
- splitCount: counts$1.splitCount,
1101
- unifiedCount: counts$1.unifiedCount
1071
+ splitCount: counts.splitCount,
1072
+ unifiedCount: counts.unifiedCount
1102
1073
  };
1103
1074
  }
1104
1075
  const counts = prefixCounts[result];
@@ -1130,15 +1101,14 @@ function getHunkPrefixCounts({ diff, expandedHunks, collapsedContextThreshold })
1130
1101
  const leadingCount = leadingRegion.fromStart + leadingRegion.fromEnd;
1131
1102
  splitCount += leadingCount + hunk.splitLineCount;
1132
1103
  unifiedCount += leadingCount + hunk.unifiedLineCount;
1133
- if (index === finalHunkIndex && hasFinalCollapsedHunk(diff)) {
1134
- const trailingRangeSize = getTrailingRangeSize(diff, hunk);
1135
- const trailingRegion = getExpandedRegion({
1136
- isPartial: diff.isPartial,
1137
- rangeSize: trailingRangeSize,
1138
- expandedHunks,
1139
- hunkIndex: diff.hunks.length,
1140
- collapsedContextThreshold
1141
- });
1104
+ const trailingRegion = index === finalHunkIndex ? getTrailingExpandedRegion({
1105
+ fileDiff: diff,
1106
+ hunkIndex: index,
1107
+ expandedHunks,
1108
+ collapsedContextThreshold,
1109
+ errorPrefix: "iterateOverDiff"
1110
+ }) : void 0;
1111
+ if (trailingRegion != null) {
1142
1112
  const trailingCount = trailingRegion.fromStart + trailingRegion.fromEnd;
1143
1113
  splitCount += trailingCount;
1144
1114
  unifiedCount += trailingCount;
@@ -1150,13 +1120,13 @@ function getHunkPrefixCounts({ diff, expandedHunks, collapsedContextThreshold })
1150
1120
  }
1151
1121
  return prefixCounts;
1152
1122
  }
1153
- function getEqualLineIterationRange(state, count, diffStyle) {
1123
+ function getContextLineIterationBounds(state, count, diffStyle) {
1154
1124
  if (!state.isWindowedHighlight || count <= 0) return [0, count];
1155
1125
  const ranges = [];
1156
1126
  function pushRange(currentCount) {
1157
- const start$1 = Math.max(0, state.viewportStart - currentCount);
1158
- const end$1 = Math.min(count, state.viewportEnd - currentCount);
1159
- if (end$1 > start$1) ranges.push([start$1, end$1]);
1127
+ const start = Math.max(0, state.viewportStart - currentCount);
1128
+ const end = Math.min(count, state.viewportEnd - currentCount);
1129
+ if (end > start) ranges.push([start, end]);
1160
1130
  }
1161
1131
  if (diffStyle !== "split") pushRange(state.unifiedCount);
1162
1132
  if (diffStyle !== "unified") pushRange(state.splitCount);
@@ -1170,16 +1140,25 @@ function getEqualLineIterationRange(state, count, diffStyle) {
1170
1140
  }
1171
1141
  return [start, end];
1172
1142
  }
1173
- function getTrailingRangeSize(diff, hunk) {
1174
- const additionRemaining = diff.additionLines.length - (hunk.additionLineIndex + hunk.additionCount);
1175
- const deletionRemaining = diff.deletionLines.length - (hunk.deletionLineIndex + hunk.deletionCount);
1176
- if (additionRemaining !== deletionRemaining) throw new Error(`iterateOverDiff: trailing context mismatch (additions=${additionRemaining}, deletions=${deletionRemaining}) for ${diff.name}`);
1177
- return Math.min(additionRemaining, deletionRemaining);
1178
- }
1179
- function hasFinalCollapsedHunk(diff) {
1180
- const lastHunk = diff.hunks.at(-1);
1181
- if (lastHunk == null || diff.isPartial || diff.additionLines.length === 0 || diff.deletionLines.length === 0) return false;
1182
- return lastHunk.additionLineIndex + lastHunk.additionCount < diff.additionLines.length || lastHunk.deletionLineIndex + lastHunk.deletionCount < diff.deletionLines.length;
1143
+ function walkContextLines(state, count, diffStyle, callback, onSkippedStart, shouldBreak) {
1144
+ const [startIndex, endIndex] = getContextLineIterationBounds(state, count, diffStyle);
1145
+ if (startIndex > 0) {
1146
+ state.incrementCounts(startIndex, startIndex);
1147
+ onSkippedStart?.();
1148
+ }
1149
+ let index = startIndex;
1150
+ while (index < count) {
1151
+ if (shouldBreak?.() === true) return true;
1152
+ if (index >= endIndex) {
1153
+ state.incrementCounts(count - index, count - index);
1154
+ break;
1155
+ }
1156
+ if (state.isInWindow(0, 0)) {
1157
+ if (callback(index) === true) return true;
1158
+ } else state.incrementCounts(1, 1);
1159
+ index++;
1160
+ }
1161
+ return false;
1183
1162
  }
1184
1163
  function getChangeIterationRanges(state, content, diffStyle) {
1185
1164
  if (!state.isWindowedHighlight) return [[0, diffStyle === "unified" ? content.deletions + content.additions : Math.max(content.deletions, content.additions)]];
@@ -1273,7 +1252,6 @@ function getChangeLineData({ hunkIndex, hunk, collapsedAfter, collapsedBefore, d
1273
1252
  additionLine
1274
1253
  };
1275
1254
  }
1276
-
1277
1255
  //#endregion
1278
1256
  //#region src/utils/parseDiffDecorations.ts
1279
1257
  function createDiffSpanDecoration({ line, spanStart, spanLength }) {
@@ -1303,11 +1281,10 @@ function pushOrJoinSpan({ item, arr, enableJoin, isNeutral = false, isLastItem =
1303
1281
  }
1304
1282
  arr.push([isNeutral ? 0 : 1, item.value]);
1305
1283
  }
1306
-
1307
1284
  //#endregion
1308
1285
  //#region src/utils/renderDiffWithHighlighter.ts
1309
1286
  const DEFAULT_PLAIN_TEXT_OPTIONS$1 = { forcePlainText: false };
1310
- function renderDiffWithHighlighter(diff, highlighter$1, options, { forcePlainText, startingLine, totalLines, expandedHunks, collapsedContextThreshold = DEFAULT_COLLAPSED_CONTEXT_THRESHOLD } = DEFAULT_PLAIN_TEXT_OPTIONS$1) {
1287
+ function renderDiffWithHighlighter(diff, highlighter, options, { forcePlainText, startingLine, totalLines, expandedHunks, collapsedContextThreshold = 1 } = DEFAULT_PLAIN_TEXT_OPTIONS$1) {
1311
1288
  if (forcePlainText) {
1312
1289
  startingLine ??= 0;
1313
1290
  totalLines ??= Infinity;
@@ -1316,10 +1293,10 @@ function renderDiffWithHighlighter(diff, highlighter$1, options, { forcePlainTex
1316
1293
  totalLines = Infinity;
1317
1294
  }
1318
1295
  const isWindowedHighlight = startingLine > 0 || totalLines < Infinity;
1319
- const baseThemeType = typeof options.theme === "string" ? highlighter$1.getTheme(options.theme).type : void 0;
1296
+ const baseThemeType = typeof options.theme === "string" ? highlighter.getTheme(options.theme).type : void 0;
1320
1297
  const themeStyles = getHighlighterThemeStyles({
1321
1298
  theme: options.theme,
1322
- highlighter: highlighter$1
1299
+ highlighter
1323
1300
  });
1324
1301
  const lineDiffType = forcePlainText && !isWindowedHighlight && (diff.unifiedLineCount > 1e3 || diff.splitLineCount > 1e3) ? "none" : options.lineDiffType;
1325
1302
  const code = {
@@ -1408,7 +1385,7 @@ function renderDiffWithHighlighter(diff, highlighter$1, options, { forcePlainTex
1408
1385
  additionFile,
1409
1386
  additionInfo: bucket.additionInfo,
1410
1387
  additionDecorations: bucket.additionDecorations,
1411
- highlighter: highlighter$1,
1388
+ highlighter,
1412
1389
  options,
1413
1390
  languageOverride: forcePlainText ? "text" : diff.lang
1414
1391
  });
@@ -1513,7 +1490,7 @@ function createBucket() {
1513
1490
  additionSegments: []
1514
1491
  };
1515
1492
  }
1516
- function renderTwoFiles({ deletionFile, additionFile, deletionInfo, additionInfo, highlighter: highlighter$1, deletionDecorations, additionDecorations, languageOverride, options: { theme: themeOrThemes = DEFAULT_THEMES,...options } }) {
1493
+ function renderTwoFiles({ deletionFile, additionFile, deletionInfo, additionInfo, highlighter, deletionDecorations, additionDecorations, languageOverride, options: { theme: themeOrThemes = DEFAULT_THEMES, ...options } }) {
1517
1494
  const deletionLang = languageOverride ?? getFiletypeFromFileName(deletionFile.name);
1518
1495
  const additionLang = languageOverride ?? getFiletypeFromFileName(additionFile.name);
1519
1496
  const { state, transformers } = createTransformerWithState(options.useTokenTransformer);
@@ -1525,7 +1502,8 @@ function renderTwoFiles({ deletionFile, additionFile, deletionInfo, additionInfo
1525
1502
  transformers,
1526
1503
  decorations: void 0,
1527
1504
  defaultColor: false,
1528
- cssVariablePrefix: formatCSSVariablePrefix("token")
1505
+ cssVariablePrefix: formatCSSVariablePrefix("token"),
1506
+ tokenizeTimeLimit: 0
1529
1507
  } : {
1530
1508
  ...options,
1531
1509
  lang: "text",
@@ -1533,7 +1511,8 @@ function renderTwoFiles({ deletionFile, additionFile, deletionInfo, additionInfo
1533
1511
  transformers,
1534
1512
  decorations: void 0,
1535
1513
  defaultColor: false,
1536
- cssVariablePrefix: formatCSSVariablePrefix("token")
1514
+ cssVariablePrefix: formatCSSVariablePrefix("token"),
1515
+ tokenizeTimeLimit: 0
1537
1516
  };
1538
1517
  })();
1539
1518
  return {
@@ -1542,32 +1521,60 @@ function renderTwoFiles({ deletionFile, additionFile, deletionInfo, additionInfo
1542
1521
  hastConfig.lang = deletionLang;
1543
1522
  state.lineInfo = deletionInfo;
1544
1523
  hastConfig.decorations = deletionDecorations;
1545
- return getLineNodes(highlighter$1.codeToHast(cleanLastNewline(deletionFile.contents), hastConfig));
1524
+ return getLineNodes(highlighter.codeToHast(cleanLastNewline(deletionFile.contents), hastConfig));
1546
1525
  })(),
1547
1526
  additionLines: (() => {
1548
1527
  if (additionFile.contents === "") return [];
1549
1528
  hastConfig.lang = additionLang;
1550
1529
  hastConfig.decorations = additionDecorations;
1551
1530
  state.lineInfo = additionInfo;
1552
- return getLineNodes(highlighter$1.codeToHast(cleanLastNewline(additionFile.contents), hastConfig));
1531
+ return getLineNodes(highlighter.codeToHast(cleanLastNewline(additionFile.contents), hastConfig));
1553
1532
  })()
1554
1533
  };
1555
1534
  }
1556
-
1557
1535
  //#endregion
1558
1536
  //#region src/utils/computeFileOffsets.ts
1559
1537
  const LINE_FEED = 10;
1560
1538
  const CARRIAGE_RETURN = 13;
1539
+ const DENSE_LINE_BREAK_BLOCK_SIZE = 4;
1540
+ const DENSE_LINE_BREAK_BLOCK_SPAN = 40;
1561
1541
  /**
1562
1542
  * Computes line start offsets for a string.
1563
1543
  */
1564
1544
  function computeLineOffsets(contents) {
1565
1545
  const offsets = [0];
1566
- for (let i = 0; i < contents.length; i++) {
1567
- const char = contents.charCodeAt(i);
1568
- if (char === LINE_FEED || char === CARRIAGE_RETURN) {
1569
- if (char === CARRIAGE_RETURN && i + 1 < contents.length && contents.charCodeAt(i + 1) === LINE_FEED) i++;
1570
- offsets.push(i + 1);
1546
+ let carriageReturn = contents.indexOf("\r");
1547
+ let lineFeed = contents.indexOf("\n");
1548
+ let blockStart = 0;
1549
+ let blockBreaks = 0;
1550
+ while (carriageReturn !== -1 || lineFeed !== -1) {
1551
+ let nextOffset;
1552
+ if (carriageReturn !== -1 && (lineFeed === -1 || carriageReturn < lineFeed)) if (lineFeed === carriageReturn + 1) {
1553
+ nextOffset = lineFeed + 1;
1554
+ carriageReturn = contents.indexOf("\r", nextOffset);
1555
+ lineFeed = contents.indexOf("\n", nextOffset);
1556
+ } else {
1557
+ nextOffset = carriageReturn + 1;
1558
+ carriageReturn = contents.indexOf("\r", nextOffset);
1559
+ }
1560
+ else {
1561
+ nextOffset = lineFeed + 1;
1562
+ lineFeed = contents.indexOf("\n", nextOffset);
1563
+ }
1564
+ offsets.push(nextOffset);
1565
+ if (++blockBreaks === DENSE_LINE_BREAK_BLOCK_SIZE) {
1566
+ if (nextOffset - blockStart <= DENSE_LINE_BREAK_BLOCK_SPAN) {
1567
+ for (let i = nextOffset; i < contents.length; i++) {
1568
+ const char = contents.charCodeAt(i);
1569
+ if (char === LINE_FEED || char === CARRIAGE_RETURN) {
1570
+ if (char === CARRIAGE_RETURN && i + 1 < contents.length && contents.charCodeAt(i + 1) === LINE_FEED) i++;
1571
+ offsets.push(i + 1);
1572
+ }
1573
+ }
1574
+ return offsets;
1575
+ }
1576
+ blockStart = nextOffset;
1577
+ blockBreaks = 0;
1571
1578
  }
1572
1579
  }
1573
1580
  return offsets;
@@ -1584,11 +1591,10 @@ function linesFromFileContents(contents) {
1584
1591
  return contents.slice(start, end);
1585
1592
  });
1586
1593
  }
1587
-
1588
1594
  //#endregion
1589
1595
  //#region src/utils/renderFileWithHighlighter.ts
1590
1596
  const DEFAULT_PLAIN_TEXT_OPTIONS = { forcePlainText: false };
1591
- function renderFileWithHighlighter(file, highlighter$1, { theme = DEFAULT_THEMES, tokenizeMaxLineLength, useTokenTransformer }, { forcePlainText, startingLine, totalLines, lines } = DEFAULT_PLAIN_TEXT_OPTIONS) {
1597
+ function renderFileWithHighlighter(file, highlighter, { theme = DEFAULT_THEMES, tokenizeMaxLineLength, useTokenTransformer }, { forcePlainText, startingLine, totalLines, lines } = DEFAULT_PLAIN_TEXT_OPTIONS) {
1592
1598
  if (forcePlainText) {
1593
1599
  startingLine ??= 0;
1594
1600
  totalLines ??= Infinity;
@@ -1599,10 +1605,10 @@ function renderFileWithHighlighter(file, highlighter$1, { theme = DEFAULT_THEMES
1599
1605
  const isWindowedHighlight = startingLine > 0 || totalLines < Infinity;
1600
1606
  const { state, transformers } = createTransformerWithState(useTokenTransformer);
1601
1607
  const lang = forcePlainText ? "text" : file.lang ?? getFiletypeFromFileName(file.name);
1602
- const baseThemeType = typeof theme === "string" ? highlighter$1.getTheme(theme).type : void 0;
1608
+ const baseThemeType = typeof theme === "string" ? highlighter.getTheme(theme).type : void 0;
1603
1609
  const themeStyles = getHighlighterThemeStyles({
1604
1610
  theme,
1605
- highlighter: highlighter$1
1611
+ highlighter
1606
1612
  });
1607
1613
  state.lineInfo = (shikiLineNumber) => ({
1608
1614
  type: "context",
@@ -1616,7 +1622,8 @@ function renderFileWithHighlighter(file, highlighter$1, { theme = DEFAULT_THEMES
1616
1622
  transformers,
1617
1623
  defaultColor: false,
1618
1624
  cssVariablePrefix: formatCSSVariablePrefix("token"),
1619
- tokenizeMaxLineLength
1625
+ tokenizeMaxLineLength,
1626
+ tokenizeTimeLimit: 0
1620
1627
  };
1621
1628
  return {
1622
1629
  lang,
@@ -1624,10 +1631,11 @@ function renderFileWithHighlighter(file, highlighter$1, { theme = DEFAULT_THEMES
1624
1631
  transformers,
1625
1632
  defaultColor: false,
1626
1633
  cssVariablePrefix: formatCSSVariablePrefix("token"),
1627
- tokenizeMaxLineLength
1634
+ tokenizeMaxLineLength,
1635
+ tokenizeTimeLimit: 0
1628
1636
  };
1629
1637
  })();
1630
- const highlightedLines = getLineNodes(highlighter$1.codeToHast(isWindowedHighlight ? extractWindowedFileContent(lines ?? linesFromFileContents(file.contents), startingLine, totalLines) : file.contents, hastConfig));
1638
+ const highlightedLines = getLineNodes(highlighter.codeToHast(isWindowedHighlight ? extractWindowedFileContent(lines ?? linesFromFileContents(file.contents), startingLine, totalLines) : file.contents, hastConfig));
1631
1639
  const code = isWindowedHighlight ? new Array(startingLine) : highlightedLines;
1632
1640
  if (isWindowedHighlight) code.push(...highlightedLines);
1633
1641
  return {
@@ -1641,7 +1649,6 @@ function extractWindowedFileContent(lines, startingLine, totalLines) {
1641
1649
  const endLine = Math.min(startingLine + totalLines, lines.length);
1642
1650
  return lines.slice(startingLine, endLine).join("");
1643
1651
  }
1644
-
1645
1652
  //#endregion
1646
1653
  //#region src/worker/worker.ts
1647
1654
  let highlighter;
@@ -1683,15 +1690,15 @@ async function handleMessage(request) {
1683
1690
  EMPTY_REGEXP.exec("");
1684
1691
  }
1685
1692
  }
1686
- async function handleInitialize({ id, renderOptions: options, preferredHighlighter, resolvedThemes, resolvedLanguages, customExtensionsVersion: customExtensionsVersion$1, customExtensionMap }) {
1687
- let highlighter$1 = getHighlighter(preferredHighlighter);
1688
- if ("then" in highlighter$1) highlighter$1 = await highlighter$1;
1693
+ async function handleInitialize({ id, renderOptions: options, preferredHighlighter, resolvedThemes, resolvedLanguages, customExtensionsVersion, customExtensionMap }) {
1694
+ let highlighter = getHighlighter(preferredHighlighter);
1695
+ if ("then" in highlighter) highlighter = await highlighter;
1689
1696
  syncCustomExtensionsFromRequest({
1690
- customExtensionsVersion: customExtensionsVersion$1,
1697
+ customExtensionsVersion,
1691
1698
  customExtensionMap
1692
1699
  });
1693
- attachResolvedThemes(resolvedThemes, highlighter$1);
1694
- if (resolvedLanguages != null) attachResolvedLanguages(resolvedLanguages, highlighter$1);
1700
+ attachResolvedThemes(resolvedThemes, highlighter);
1701
+ if (resolvedLanguages != null) attachResolvedLanguages(resolvedLanguages, highlighter);
1695
1702
  renderOptions = options;
1696
1703
  postMessage({
1697
1704
  type: "success",
@@ -1701,9 +1708,9 @@ async function handleInitialize({ id, renderOptions: options, preferredHighlight
1701
1708
  });
1702
1709
  }
1703
1710
  async function handleSetRenderOptions({ id, renderOptions: options, resolvedThemes }) {
1704
- let highlighter$1 = getHighlighter();
1705
- if ("then" in highlighter$1) highlighter$1 = await highlighter$1;
1706
- attachResolvedThemes(resolvedThemes, highlighter$1);
1711
+ let highlighter = getHighlighter();
1712
+ if ("then" in highlighter) highlighter = await highlighter;
1713
+ attachResolvedThemes(resolvedThemes, highlighter);
1707
1714
  renderOptions = options;
1708
1715
  postMessage({
1709
1716
  type: "success",
@@ -1712,30 +1719,30 @@ async function handleSetRenderOptions({ id, renderOptions: options, resolvedThem
1712
1719
  sentAt: Date.now()
1713
1720
  });
1714
1721
  }
1715
- async function handleRenderFile({ id, file, resolvedLanguages, customExtensionsVersion: customExtensionsVersion$1, customExtensionMap }) {
1716
- let highlighter$1 = getHighlighter();
1717
- if ("then" in highlighter$1) highlighter$1 = await highlighter$1;
1722
+ async function handleRenderFile({ id, file, resolvedLanguages, customExtensionsVersion, customExtensionMap }) {
1723
+ let highlighter = getHighlighter();
1724
+ if ("then" in highlighter) highlighter = await highlighter;
1718
1725
  syncCustomExtensionsFromRequest({
1719
- customExtensionsVersion: customExtensionsVersion$1,
1726
+ customExtensionsVersion,
1720
1727
  customExtensionMap
1721
1728
  });
1722
- if (resolvedLanguages != null) attachResolvedLanguages(resolvedLanguages, highlighter$1);
1729
+ if (resolvedLanguages != null) attachResolvedLanguages(resolvedLanguages, highlighter);
1723
1730
  const fileOptions = {
1724
1731
  theme: renderOptions.theme,
1725
1732
  useTokenTransformer: renderOptions.useTokenTransformer,
1726
1733
  tokenizeMaxLineLength: renderOptions.tokenizeMaxLineLength
1727
1734
  };
1728
- sendFileSuccess(id, renderFileWithHighlighter(file, highlighter$1, fileOptions), fileOptions);
1735
+ sendFileSuccess(id, renderFileWithHighlighter(file, highlighter, fileOptions), fileOptions);
1729
1736
  }
1730
- async function handleRenderDiff({ id, diff, resolvedLanguages, customExtensionsVersion: customExtensionsVersion$1, customExtensionMap }) {
1731
- let highlighter$1 = getHighlighter();
1732
- if ("then" in highlighter$1) highlighter$1 = await highlighter$1;
1737
+ async function handleRenderDiff({ id, diff, resolvedLanguages, customExtensionsVersion, customExtensionMap }) {
1738
+ let highlighter = getHighlighter();
1739
+ if ("then" in highlighter) highlighter = await highlighter;
1733
1740
  syncCustomExtensionsFromRequest({
1734
- customExtensionsVersion: customExtensionsVersion$1,
1741
+ customExtensionsVersion,
1735
1742
  customExtensionMap
1736
1743
  });
1737
- if (resolvedLanguages != null) attachResolvedLanguages(resolvedLanguages, highlighter$1);
1738
- sendDiffSuccess(id, renderDiffWithHighlighter(diff, highlighter$1, renderOptions), renderOptions);
1744
+ if (resolvedLanguages != null) attachResolvedLanguages(resolvedLanguages, highlighter);
1745
+ sendDiffSuccess(id, renderDiffWithHighlighter(diff, highlighter, renderOptions), renderOptions);
1739
1746
  }
1740
1747
  function getHighlighter(preferredHighlighter = "shiki-js") {
1741
1748
  highlighter ??= createHighlighterCore({
@@ -1745,10 +1752,10 @@ function getHighlighter(preferredHighlighter = "shiki-js") {
1745
1752
  });
1746
1753
  return highlighter;
1747
1754
  }
1748
- function syncCustomExtensionsFromRequest({ customExtensionsVersion: customExtensionsVersion$1, customExtensionMap }) {
1749
- if (customExtensionsVersion$1 == null && customExtensionMap == null) return;
1750
- if (customExtensionsVersion$1 == null || customExtensionMap == null) throw new Error("Worker request must include both customExtensionsVersion and customExtensionMap");
1751
- replaceCustomExtensions(customExtensionsVersion$1, customExtensionMap);
1755
+ function syncCustomExtensionsFromRequest({ customExtensionsVersion, customExtensionMap }) {
1756
+ if (customExtensionsVersion == null && customExtensionMap == null) return;
1757
+ if (customExtensionsVersion == null || customExtensionMap == null) throw new Error("Worker request must include both customExtensionsVersion and customExtensionMap");
1758
+ replaceCustomExtensions(customExtensionsVersion, customExtensionMap);
1752
1759
  }
1753
1760
  function sendFileSuccess(id, result, options) {
1754
1761
  postMessage({
@@ -1779,6 +1786,6 @@ function sendError(id, error) {
1779
1786
  };
1780
1787
  postMessage(response);
1781
1788
  }
1782
-
1783
1789
  //#endregion
1790
+
1784
1791
  //# sourceMappingURL=worker.js.map