@pierre/diffs 1.5.1 → 1.6.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (304) hide show
  1. package/README.md +4 -3
  2. package/dist/components/CodeView.d.ts +2 -1
  3. package/dist/components/CodeView.d.ts.map +1 -1
  4. package/dist/components/CodeView.js +27 -16
  5. package/dist/components/CodeView.js.map +1 -1
  6. package/dist/components/File.d.ts.map +1 -1
  7. package/dist/components/File.js +14 -7
  8. package/dist/components/File.js.map +1 -1
  9. package/dist/components/FileDiff.d.ts +7 -4
  10. package/dist/components/FileDiff.d.ts.map +1 -1
  11. package/dist/components/FileDiff.js +16 -9
  12. package/dist/components/FileDiff.js.map +1 -1
  13. package/dist/components/FileStream.d.ts +6 -4
  14. package/dist/components/FileStream.d.ts.map +1 -1
  15. package/dist/components/FileStream.js +49 -36
  16. package/dist/components/FileStream.js.map +1 -1
  17. package/dist/components/VirtualizedFile.d.ts.map +1 -1
  18. package/dist/components/VirtualizedFile.js +10 -5
  19. package/dist/components/VirtualizedFile.js.map +1 -1
  20. package/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
  21. package/dist/components/VirtualizedFileDiff.js +3 -4
  22. package/dist/components/VirtualizedFileDiff.js.map +1 -1
  23. package/dist/constants.d.ts +3 -2
  24. package/dist/constants.d.ts.map +1 -1
  25. package/dist/constants.js +2 -1
  26. package/dist/constants.js.map +1 -1
  27. package/dist/editor/editor.d.ts +2 -1
  28. package/dist/editor/editor.d.ts.map +1 -1
  29. package/dist/editor/editor.js +10 -3
  30. package/dist/editor/editor.js.map +1 -1
  31. package/dist/editor/getChangedDocumentLines.d.ts +6 -0
  32. package/dist/editor/getChangedDocumentLines.d.ts.map +1 -0
  33. package/dist/editor/getChangedDocumentLines.js +35 -0
  34. package/dist/editor/getChangedDocumentLines.js.map +1 -0
  35. package/dist/editor/tokenizer.d.ts +6 -4
  36. package/dist/editor/tokenizer.d.ts.map +1 -1
  37. package/dist/editor/tokenizer.js +25 -470
  38. package/dist/editor/tokenizer.js.map +1 -1
  39. package/dist/highlighter/DiffsEditorTokenizer.d.ts +16 -0
  40. package/dist/highlighter/DiffsEditorTokenizer.d.ts.map +1 -0
  41. package/dist/highlighter/DiffsEditorTokenizer.js +0 -0
  42. package/dist/highlighter/DiffsHighlighter.d.ts +41 -0
  43. package/dist/highlighter/DiffsHighlighter.d.ts.map +1 -0
  44. package/dist/highlighter/DiffsHighlighter.js +39 -0
  45. package/dist/highlighter/DiffsHighlighter.js.map +1 -0
  46. package/dist/highlighter/backends/highlights.d.ts +26 -0
  47. package/dist/highlighter/backends/highlights.d.ts.map +1 -0
  48. package/dist/highlighter/backends/highlights.js +71 -0
  49. package/dist/highlighter/backends/highlights.js.map +1 -0
  50. package/dist/highlighter/backends/shiki.d.ts +27 -0
  51. package/dist/highlighter/backends/shiki.d.ts.map +1 -0
  52. package/dist/highlighter/backends/shiki.js +107 -0
  53. package/dist/highlighter/backends/shiki.js.map +1 -0
  54. package/dist/highlighter/highlighterType.d.ts +13 -0
  55. package/dist/highlighter/highlighterType.d.ts.map +1 -0
  56. package/dist/highlighter/highlighterType.js +32 -0
  57. package/dist/highlighter/highlighterType.js.map +1 -0
  58. package/dist/highlighter/highlights-editor.d.ts +24 -0
  59. package/dist/highlighter/highlights-editor.d.ts.map +1 -0
  60. package/dist/highlighter/highlights-editor.js +166 -0
  61. package/dist/highlighter/highlights-editor.js.map +1 -0
  62. package/dist/highlighter/highlights-stream.d.ts +20 -0
  63. package/dist/highlighter/highlights-stream.d.ts.map +1 -0
  64. package/dist/highlighter/highlights-stream.js +93 -0
  65. package/dist/highlighter/highlights-stream.js.map +1 -0
  66. package/dist/highlighter/languages/areLanguagesAttached.d.ts +2 -1
  67. package/dist/highlighter/languages/areLanguagesAttached.d.ts.map +1 -1
  68. package/dist/highlighter/languages/areLanguagesAttached.js +4 -6
  69. package/dist/highlighter/languages/areLanguagesAttached.js.map +1 -1
  70. package/dist/highlighter/languages/attachResolvedLanguages.d.ts +6 -1
  71. package/dist/highlighter/languages/attachResolvedLanguages.d.ts.map +1 -1
  72. package/dist/highlighter/languages/attachResolvedLanguages.js +6 -11
  73. package/dist/highlighter/languages/attachResolvedLanguages.js.map +1 -1
  74. package/dist/highlighter/languages/constants.d.ts +1 -1
  75. package/dist/highlighter/languages/getResolvedLanguages.d.ts +1 -1
  76. package/dist/highlighter/languages/getResolvedOrResolveLanguage.d.ts +1 -1
  77. package/dist/highlighter/languages/resolveLanguage.d.ts +1 -1
  78. package/dist/highlighter/languages/resolveLanguage.d.ts.map +1 -1
  79. package/dist/highlighter/languages/resolveLanguage.js +19 -16
  80. package/dist/highlighter/languages/resolveLanguage.js.map +1 -1
  81. package/dist/highlighter/languages/resolveLanguages.d.ts +1 -1
  82. package/dist/highlighter/shared_highlighter.d.ts +23 -9
  83. package/dist/highlighter/shared_highlighter.d.ts.map +1 -1
  84. package/dist/highlighter/shared_highlighter.js +59 -47
  85. package/dist/highlighter/shared_highlighter.js.map +1 -1
  86. package/dist/highlighter/shiki-editor.d.ts +25 -0
  87. package/dist/highlighter/shiki-editor.d.ts.map +1 -0
  88. package/dist/highlighter/shiki-editor.js +483 -0
  89. package/dist/highlighter/shiki-editor.js.map +1 -0
  90. package/dist/highlighter/shiki-stream.d.ts +20 -0
  91. package/dist/highlighter/shiki-stream.d.ts.map +1 -0
  92. package/dist/highlighter/shiki-stream.js +60 -0
  93. package/dist/highlighter/shiki-stream.js.map +1 -0
  94. package/dist/highlighter/stream-tokenizer.d.ts +40 -0
  95. package/dist/highlighter/stream-tokenizer.d.ts.map +1 -0
  96. package/dist/highlighter/stream-tokenizer.js +70 -0
  97. package/dist/highlighter/stream-tokenizer.js.map +1 -0
  98. package/dist/highlighter/themes/areThemesAttached.d.ts +3 -2
  99. package/dist/highlighter/themes/areThemesAttached.d.ts.map +1 -1
  100. package/dist/highlighter/themes/areThemesAttached.js +5 -4
  101. package/dist/highlighter/themes/areThemesAttached.js.map +1 -1
  102. package/dist/highlighter/themes/attachResolvedThemes.d.ts +5 -2
  103. package/dist/highlighter/themes/attachResolvedThemes.d.ts.map +1 -1
  104. package/dist/highlighter/themes/attachResolvedThemes.js +4 -16
  105. package/dist/highlighter/themes/attachResolvedThemes.js.map +1 -1
  106. package/dist/highlighter/themes/cleanUpResolvedThemes.d.ts +3 -1
  107. package/dist/highlighter/themes/cleanUpResolvedThemes.d.ts.map +1 -1
  108. package/dist/highlighter/themes/cleanUpResolvedThemes.js +8 -5
  109. package/dist/highlighter/themes/cleanUpResolvedThemes.js.map +1 -1
  110. package/dist/highlighter/themes/createCSSVariablesTheme.d.ts +7 -0
  111. package/dist/highlighter/themes/createCSSVariablesTheme.d.ts.map +1 -0
  112. package/dist/highlighter/themes/createCSSVariablesTheme.js +89 -0
  113. package/dist/highlighter/themes/createCSSVariablesTheme.js.map +1 -0
  114. package/dist/highlighter/themes/createCachedLoader.d.ts +5 -0
  115. package/dist/highlighter/themes/createCachedLoader.d.ts.map +1 -0
  116. package/dist/highlighter/themes/createCachedLoader.js +15 -0
  117. package/dist/highlighter/themes/createCachedLoader.js.map +1 -0
  118. package/dist/highlighter/themes/getResolvedOrResolveTheme.d.ts +3 -2
  119. package/dist/highlighter/themes/getResolvedOrResolveTheme.d.ts.map +1 -1
  120. package/dist/highlighter/themes/getResolvedOrResolveTheme.js +4 -4
  121. package/dist/highlighter/themes/getResolvedOrResolveTheme.js.map +1 -1
  122. package/dist/highlighter/themes/getResolvedThemes.d.ts +3 -2
  123. package/dist/highlighter/themes/getResolvedThemes.d.ts.map +1 -1
  124. package/dist/highlighter/themes/getResolvedThemes.js +4 -3
  125. package/dist/highlighter/themes/getResolvedThemes.js.map +1 -1
  126. package/dist/highlighter/themes/hasResolvedThemes.d.ts +2 -2
  127. package/dist/highlighter/themes/hasResolvedThemes.d.ts.map +1 -1
  128. package/dist/highlighter/themes/hasResolvedThemes.js +4 -3
  129. package/dist/highlighter/themes/hasResolvedThemes.js.map +1 -1
  130. package/dist/highlighter/themes/registerCustomCSSVariableTheme.d.ts.map +1 -1
  131. package/dist/highlighter/themes/registerCustomCSSVariableTheme.js +3 -3
  132. package/dist/highlighter/themes/registerCustomCSSVariableTheme.js.map +1 -1
  133. package/dist/highlighter/themes/registerCustomTheme.d.ts +9 -4
  134. package/dist/highlighter/themes/registerCustomTheme.d.ts.map +1 -1
  135. package/dist/highlighter/themes/registerCustomTheme.js +8 -16
  136. package/dist/highlighter/themes/registerCustomTheme.js.map +1 -1
  137. package/dist/highlighter/themes/resolveTheme.d.ts +3 -2
  138. package/dist/highlighter/themes/resolveTheme.d.ts.map +1 -1
  139. package/dist/highlighter/themes/resolveTheme.js +4 -7
  140. package/dist/highlighter/themes/resolveTheme.js.map +1 -1
  141. package/dist/highlighter/themes/resolveThemes.d.ts +3 -2
  142. package/dist/highlighter/themes/resolveThemes.d.ts.map +1 -1
  143. package/dist/highlighter/themes/resolveThemes.js +4 -7
  144. package/dist/highlighter/themes/resolveThemes.js.map +1 -1
  145. package/dist/highlighter/themes/themeResolver.d.ts +10 -4
  146. package/dist/highlighter/themes/themeResolver.d.ts.map +1 -1
  147. package/dist/highlighter/themes/themeResolver.js +141 -2
  148. package/dist/highlighter/themes/themeResolver.js.map +1 -1
  149. package/dist/highlighter/themes/types.d.ts +23 -0
  150. package/dist/highlighter/themes/types.d.ts.map +1 -0
  151. package/dist/highlighter/themes/types.js +0 -0
  152. package/dist/highlighter/tokenizer-types.d.ts +35 -0
  153. package/dist/highlighter/tokenizer-types.d.ts.map +1 -0
  154. package/dist/highlighter/tokenizer-types.js +0 -0
  155. package/dist/highlighter/types.d.ts +55 -0
  156. package/dist/highlighter/types.d.ts.map +1 -0
  157. package/dist/highlighter/types.js +0 -0
  158. package/dist/index.d.ts +14 -10
  159. package/dist/index.js +16 -18
  160. package/dist/managers/InteractionManager.d.ts.map +1 -1
  161. package/dist/managers/InteractionManager.js +2 -2
  162. package/dist/managers/InteractionManager.js.map +1 -1
  163. package/dist/node_modules/.pnpm/@types_hast@3.0.4/node_modules/@types/hast/index.d.ts +9 -1
  164. package/dist/node_modules/.pnpm/@types_hast@3.0.4/node_modules/@types/hast/index.d.ts.map +1 -1
  165. package/dist/react/CodeView.js +1 -1
  166. package/dist/react/index.d.ts +8 -3
  167. package/dist/renderers/DiffHunksRenderer.d.ts +3 -2
  168. package/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
  169. package/dist/renderers/DiffHunksRenderer.js +50 -24
  170. package/dist/renderers/DiffHunksRenderer.js.map +1 -1
  171. package/dist/renderers/FileRenderer.d.ts +2 -1
  172. package/dist/renderers/FileRenderer.d.ts.map +1 -1
  173. package/dist/renderers/FileRenderer.js +33 -24
  174. package/dist/renderers/FileRenderer.js.map +1 -1
  175. package/dist/shiki-stream/index.d.ts +3 -3
  176. package/dist/shiki-stream/index.js +1 -2
  177. package/dist/shiki-stream/stream.d.ts +4 -4
  178. package/dist/shiki-stream/stream.d.ts.map +1 -1
  179. package/dist/shiki-stream/stream.js +20 -9
  180. package/dist/shiki-stream/stream.js.map +1 -1
  181. package/dist/shiki-stream/types.d.ts +7 -38
  182. package/dist/shiki-stream/types.d.ts.map +1 -1
  183. package/dist/ssr/FileDiffReact.js +1 -1
  184. package/dist/ssr/index.d.ts +7 -2
  185. package/dist/ssr/renderHTML.js +2 -2
  186. package/dist/ssr/renderHTML.js.map +1 -1
  187. package/dist/style.js +1 -1
  188. package/dist/style.js.map +1 -1
  189. package/dist/types.d.ts +13 -13
  190. package/dist/types.d.ts.map +1 -1
  191. package/dist/utils/computeVirtualFileMetrics.d.ts +2 -1
  192. package/dist/utils/computeVirtualFileMetrics.d.ts.map +1 -1
  193. package/dist/utils/computeVirtualFileMetrics.js +5 -3
  194. package/dist/utils/computeVirtualFileMetrics.js.map +1 -1
  195. package/dist/utils/createSpanNodeFromToken.d.ts +3 -2
  196. package/dist/utils/createSpanNodeFromToken.d.ts.map +1 -1
  197. package/dist/utils/createSpanNodeFromToken.js +4 -5
  198. package/dist/utils/createSpanNodeFromToken.js.map +1 -1
  199. package/dist/utils/cssWrappers.d.ts.map +1 -1
  200. package/dist/utils/cssWrappers.js +12 -0
  201. package/dist/utils/cssWrappers.js.map +1 -1
  202. package/dist/utils/getDiffHunksRendererOptions.js +1 -0
  203. package/dist/utils/getDiffHunksRendererOptions.js.map +1 -1
  204. package/dist/utils/getFiletypeFromFileName.d.ts.map +1 -1
  205. package/dist/utils/getFiletypeFromFileName.js +21 -3
  206. package/dist/utils/getFiletypeFromFileName.js.map +1 -1
  207. package/dist/utils/getHighlighterOptions.d.ts.map +1 -1
  208. package/dist/utils/getHighlighterOptions.js +3 -2
  209. package/dist/utils/getHighlighterOptions.js.map +1 -1
  210. package/dist/utils/getHighlighterThemeStyles.d.ts +2 -1
  211. package/dist/utils/getHighlighterThemeStyles.d.ts.map +1 -1
  212. package/dist/utils/getHighlighterThemeStyles.js +13 -3
  213. package/dist/utils/getHighlighterThemeStyles.js.map +1 -1
  214. package/dist/utils/getTokenOptions.d.ts +7 -0
  215. package/dist/utils/getTokenOptions.d.ts.map +1 -0
  216. package/dist/utils/getTokenOptions.js +16 -0
  217. package/dist/utils/getTokenOptions.js.map +1 -0
  218. package/dist/utils/hastToHtml.d.ts +10 -0
  219. package/dist/utils/hastToHtml.d.ts.map +1 -0
  220. package/dist/utils/hastToHtml.js +125 -0
  221. package/dist/utils/hastToHtml.js.map +1 -0
  222. package/dist/utils/parseDiffDecorations.d.ts +2 -1
  223. package/dist/utils/parseDiffDecorations.d.ts.map +1 -1
  224. package/dist/utils/platform.d.ts +2 -1
  225. package/dist/utils/platform.d.ts.map +1 -1
  226. package/dist/utils/platform.js +6 -1
  227. package/dist/utils/platform.js.map +1 -1
  228. package/dist/utils/renderDiffWithHighlighter.d.ts +3 -2
  229. package/dist/utils/renderDiffWithHighlighter.d.ts.map +1 -1
  230. package/dist/utils/renderDiffWithHighlighter.js +33 -48
  231. package/dist/utils/renderDiffWithHighlighter.js.map +1 -1
  232. package/dist/utils/renderFileWithHighlighter.d.ts +3 -2
  233. package/dist/utils/renderFileWithHighlighter.d.ts.map +1 -1
  234. package/dist/utils/renderFileWithHighlighter.js +10 -26
  235. package/dist/utils/renderFileWithHighlighter.js.map +1 -1
  236. package/dist/utils/renderTokenLines.d.ts +17 -0
  237. package/dist/utils/renderTokenLines.d.ts.map +1 -0
  238. package/dist/utils/renderTokenLines.js +246 -0
  239. package/dist/utils/renderTokenLines.js.map +1 -0
  240. package/dist/utils/resolvePreferredHighlighter.d.ts +13 -0
  241. package/dist/utils/resolvePreferredHighlighter.d.ts.map +1 -0
  242. package/dist/utils/resolvePreferredHighlighter.js +11 -0
  243. package/dist/utils/resolvePreferredHighlighter.js.map +1 -0
  244. package/dist/utils/setDeferredArrayItem.d.ts +5 -0
  245. package/dist/utils/setDeferredArrayItem.d.ts.map +1 -0
  246. package/dist/utils/setDeferredArrayItem.js +39 -0
  247. package/dist/utils/setDeferredArrayItem.js.map +1 -0
  248. package/dist/utils/tokenStyle.d.ts +7 -0
  249. package/dist/utils/tokenStyle.d.ts.map +1 -0
  250. package/dist/utils/tokenStyle.js +28 -0
  251. package/dist/utils/tokenStyle.js.map +1 -0
  252. package/dist/utils/tokensToHtml.d.ts +8 -0
  253. package/dist/utils/tokensToHtml.d.ts.map +1 -0
  254. package/dist/utils/tokensToHtml.js +45 -0
  255. package/dist/utils/tokensToHtml.js.map +1 -0
  256. package/dist/utils/wrapTokenFragments.js.map +1 -1
  257. package/dist/worker/WorkerPoolManager.d.ts +10 -2
  258. package/dist/worker/WorkerPoolManager.d.ts.map +1 -1
  259. package/dist/worker/WorkerPoolManager.js +85 -60
  260. package/dist/worker/WorkerPoolManager.js.map +1 -1
  261. package/dist/worker/errors.d.ts +35 -0
  262. package/dist/worker/errors.d.ts.map +1 -0
  263. package/dist/worker/errors.js +52 -0
  264. package/dist/worker/errors.js.map +1 -0
  265. package/dist/worker/hastLinesTransport.d.ts +14 -0
  266. package/dist/worker/hastLinesTransport.d.ts.map +1 -0
  267. package/dist/worker/hastLinesTransport.js +156 -0
  268. package/dist/worker/hastLinesTransport.js.map +1 -0
  269. package/dist/worker/highlights-sAHlxqlf.js +317 -0
  270. package/dist/worker/highlights-sAHlxqlf.js.map +1 -0
  271. package/dist/worker/index.d.ts +2 -1
  272. package/dist/worker/index.js +2 -1
  273. package/dist/worker/shiki-Bx2JpdqZ.js +697 -0
  274. package/dist/worker/shiki-Bx2JpdqZ.js.map +1 -0
  275. package/dist/worker/stream-tokenizer-YZ6M1qSx.js +424 -0
  276. package/dist/worker/stream-tokenizer-YZ6M1qSx.js.map +1 -0
  277. package/dist/worker/types.d.ts +18 -3
  278. package/dist/worker/types.d.ts.map +1 -1
  279. package/dist/worker/worker-portable.js +41 -13319
  280. package/dist/worker/worker-portable.js.map +1 -1
  281. package/dist/worker/worker.js +693 -352
  282. package/dist/worker/worker.js.map +1 -1
  283. package/dist/worker/workerMessage.d.ts +24 -0
  284. package/dist/worker/workerMessage.d.ts.map +1 -0
  285. package/dist/worker/workerMessage.js +0 -0
  286. package/package.json +33 -29
  287. package/dist/highlighter/themes/constants.d.ts +0 -5
  288. package/dist/highlighter/themes/constants.d.ts.map +0 -1
  289. package/dist/highlighter/themes/constants.js +0 -6
  290. package/dist/highlighter/themes/constants.js.map +0 -1
  291. package/dist/highlighter/themes/themeResolution.d.ts +0 -7
  292. package/dist/highlighter/themes/themeResolution.d.ts.map +0 -1
  293. package/dist/highlighter/themes/themeResolution.js +0 -21
  294. package/dist/highlighter/themes/themeResolution.js.map +0 -1
  295. package/dist/shiki-stream/tokenizer.d.ts +0 -23
  296. package/dist/shiki-stream/tokenizer.d.ts.map +0 -1
  297. package/dist/shiki-stream/tokenizer.js +0 -72
  298. package/dist/shiki-stream/tokenizer.js.map +0 -1
  299. package/dist/utils/createTransformerWithState.d.ts +0 -12
  300. package/dist/utils/createTransformerWithState.d.ts.map +0 -1
  301. package/dist/utils/createTransformerWithState.js +0 -89
  302. package/dist/utils/createTransformerWithState.js.map +0 -1
  303. package/dist/worker/wasm-B9ZqxnKj.js +0 -8
  304. package/dist/worker/wasm-B9ZqxnKj.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","names":[],"sources":["../src/constants.ts"],"sourcesContent":["import type {\n CodeViewLayout,\n HunkExpansionRegion,\n RenderRange,\n SmoothScrollSettings,\n ThemesType,\n VirtualFileMetrics,\n} from './types';\n\nexport const DIFFS_TAG_NAME = 'diffs-container' as const;\n\n// Keep this as a NODE_ENV read so app builds can hard-disable development-only\n// checks unless they are explicitly built for development.\nexport const DIFFS_DEVELOPMENT_BUILD: boolean = (() => {\n try {\n return process.env.NODE_ENV === 'development';\n } catch {\n return false;\n }\n})();\n\n// Misc patch/content parsing regexes\nexport const COMMIT_METADATA_SPLIT: RegExp = /(?=^From [a-f0-9]+ .+$)/m;\nexport const GIT_DIFF_FILE_BREAK_REGEX: RegExp = /(?=^diff --git)/gm;\nexport const UNIFIED_DIFF_FILE_BREAK_REGEX: RegExp = /(?=^---\\s+\\S)/gm;\nexport const FILE_CONTEXT_BLOB: RegExp = /(?=^@@ )/gm;\nexport const HUNK_HEADER: RegExp =\n /^@@ -(\\d+)(?:,(\\d+))? \\+(\\d+)(?:,(\\d+))? @@(?: (.*))?/m;\nexport const SPLIT_WITH_NEWLINES: RegExp = /(?<=\\n)/;\nexport const FILENAME_HEADER_REGEX: RegExp = /^(---|\\+\\+\\+)\\s+([^\\t\\r\\n]+)/;\nexport const INDEX_LINE_METADATA: RegExp =\n /^index ([0-9a-f]+)\\.\\.([0-9a-f]+)(?: (\\d+))?$/i;\n\nexport const MERGE_CONFLICT_START_MARKER_REGEX: RegExp = /^<{7,}(?:\\s.*)?$/;\nexport const MERGE_CONFLICT_BASE_MARKER_REGEX: RegExp = /^\\|{7,}(?:\\s.*)?$/;\nexport const MERGE_CONFLICT_SEPARATOR_MARKER_REGEX: RegExp = /^={7,}$/;\nexport const MERGE_CONFLICT_END_MARKER_REGEX: RegExp = /^>{7,}(?:\\s.*)?$/;\n\nexport const HEADER_PREFIX_SLOT_ID = 'header-prefix';\nexport const HEADER_FILENAME_SUFFIX_SLOT_ID = 'header-filename-suffix';\nexport const HEADER_METADATA_SLOT_ID = 'header-metadata';\nexport const CUSTOM_HEADER_SLOT_ID = 'header-custom';\n\nexport const DEFAULT_THEMES: ThemesType = {\n dark: 'pierre-dark',\n light: 'pierre-light',\n};\n\nexport const THEME_CSS_ATTRIBUTE = 'data-theme-css';\nexport const UNSAFE_CSS_ATTRIBUTE = 'data-unsafe-css';\nexport const CORE_CSS_ATTRIBUTE = 'data-core-css';\nexport const DIFFS_SCROLLBAR_MEASURE_ATTRIBUTE = 'data-diffs-scrollbar-measure';\nexport const CODE_VIEW_HEADER_ATTRIBUTE = 'data-diffs-code-view-header';\nexport const CODE_VIEW_FOOTER_ATTRIBUTE = 'data-diffs-code-view-footer';\nexport const DIFFS_SCROLLBAR_GUTTER_MEASURED_PROPERTY =\n '--diffs-scrollbar-gutter-measured';\n\nexport const DEFAULT_COLLAPSED_CONTEXT_THRESHOLD = 1;\nexport const DEFAULT_TOKENIZE_MAX_LENGTH = 100_000;\nexport const DEFAULT_VIRTUAL_FILE_METRICS: VirtualFileMetrics = {\n hunkLineCount: 50,\n lineHeight: 20,\n diffHeaderHeight: 44,\n spacing: 8,\n};\n\nexport const DEFAULT_CODE_VIEW_FILE_METRICS: VirtualFileMetrics = {\n ...DEFAULT_VIRTUAL_FILE_METRICS,\n hunkLineCount: 1,\n};\n\nexport const DEFAULT_CODE_VIEW_LAYOUT: CodeViewLayout = {\n paddingTop: 8,\n paddingBottom: 8,\n gap: 8,\n};\n\nexport const DEFAULT_SMOOTH_SCROLL_SETTINGS: SmoothScrollSettings = {\n omega: 0.015,\n positionEpsilon: 0.5,\n velocityEpsilon: 0.05,\n};\n\nexport const DEFAULT_EXPANDED_REGION: HunkExpansionRegion = Object.freeze({\n fromStart: 0,\n fromEnd: 0,\n});\n\nexport const DEFAULT_RENDER_RANGE: RenderRange = {\n startingLine: 0,\n totalLines: Infinity,\n bufferBefore: 0,\n bufferAfter: 0,\n};\n\nexport const EMPTY_RENDER_RANGE: RenderRange = {\n startingLine: 0,\n totalLines: 0,\n bufferBefore: 0,\n bufferAfter: 0,\n};\n"],"mappings":";AASA,MAAa,iBAAiB;AAI9B,MAAa,iCAA0C;CACrD,IAAI;EACF,OAAO,QAAQ,IAAI,aAAa;CAClC,QAAQ;EACN,OAAO;CACT;AACF,EAAA,CAAG;AAGH,MAAa,wBAAgC;AAC7C,MAAa,4BAAoC;AACjD,MAAa,gCAAwC;AACrD,MAAa,oBAA4B;AACzC,MAAa,cACX;AACF,MAAa,sBAA8B;AAC3C,MAAa,wBAAgC;AAC7C,MAAa,sBACX;AAEF,MAAa,oCAA4C;AACzD,MAAa,mCAA2C;AACxD,MAAa,wCAAgD;AAC7D,MAAa,kCAA0C;AAEvD,MAAa,wBAAwB;AACrC,MAAa,iCAAiC;AAC9C,MAAa,0BAA0B;AACvC,MAAa,wBAAwB;AAErC,MAAa,iBAA6B;CACxC,MAAM;CACN,OAAO;AACT;AAEA,MAAa,sBAAsB;AACnC,MAAa,uBAAuB;AACpC,MAAa,qBAAqB;AAClC,MAAa,oCAAoC;AACjD,MAAa,6BAA6B;AAC1C,MAAa,6BAA6B;AAC1C,MAAa,2CACX;AAEF,MAAa,sCAAsC;AACnD,MAAa,8BAA8B;AAC3C,MAAa,+BAAmD;CAC9D,eAAe;CACf,YAAY;CACZ,kBAAkB;CAClB,SAAS;AACX;AAEA,MAAa,iCAAqD;CAChE,GAAG;CACH,eAAe;AACjB;AAEA,MAAa,2BAA2C;CACtD,YAAY;CACZ,eAAe;CACf,KAAK;AACP;AAEA,MAAa,iCAAuD;CAClE,OAAO;CACP,iBAAiB;CACjB,iBAAiB;AACnB;AAEA,MAAa,0BAA+C,OAAO,OAAO;CACxE,WAAW;CACX,SAAS;AACX,CAAC;AAED,MAAa,uBAAoC;CAC/C,cAAc;CACd,YAAY;CACZ,cAAc;CACd,aAAa;AACf;AAEA,MAAa,qBAAkC;CAC7C,cAAc;CACd,YAAY;CACZ,cAAc;CACd,aAAa;AACf"}
1
+ {"version":3,"file":"constants.js","names":[],"sources":["../src/constants.ts"],"sourcesContent":["import type {\n CodeViewLayout,\n HighlighterTypes,\n HunkExpansionRegion,\n RenderRange,\n SmoothScrollSettings,\n ThemesType,\n VirtualFileMetrics,\n} from './types';\n\nexport const DIFFS_TAG_NAME = 'diffs-container' as const;\n\n// Keep this as a NODE_ENV read so app builds can hard-disable development-only\n// checks unless they are explicitly built for development.\nexport const DIFFS_DEVELOPMENT_BUILD: boolean = (() => {\n try {\n return process.env.NODE_ENV === 'development';\n } catch {\n return false;\n }\n})();\n\n// Misc patch/content parsing regexes\nexport const COMMIT_METADATA_SPLIT: RegExp = /(?=^From [a-f0-9]+ .+$)/m;\nexport const GIT_DIFF_FILE_BREAK_REGEX: RegExp = /(?=^diff --git)/gm;\nexport const UNIFIED_DIFF_FILE_BREAK_REGEX: RegExp = /(?=^---\\s+\\S)/gm;\nexport const FILE_CONTEXT_BLOB: RegExp = /(?=^@@ )/gm;\nexport const HUNK_HEADER: RegExp =\n /^@@ -(\\d+)(?:,(\\d+))? \\+(\\d+)(?:,(\\d+))? @@(?: (.*))?/m;\nexport const SPLIT_WITH_NEWLINES: RegExp = /(?<=\\n)/;\nexport const FILENAME_HEADER_REGEX: RegExp = /^(---|\\+\\+\\+)\\s+([^\\t\\r\\n]+)/;\nexport const INDEX_LINE_METADATA: RegExp =\n /^index ([0-9a-f]+)\\.\\.([0-9a-f]+)(?: (\\d+))?$/i;\n\nexport const MERGE_CONFLICT_START_MARKER_REGEX: RegExp = /^<{7,}(?:\\s.*)?$/;\nexport const MERGE_CONFLICT_BASE_MARKER_REGEX: RegExp = /^\\|{7,}(?:\\s.*)?$/;\nexport const MERGE_CONFLICT_SEPARATOR_MARKER_REGEX: RegExp = /^={7,}$/;\nexport const MERGE_CONFLICT_END_MARKER_REGEX: RegExp = /^>{7,}(?:\\s.*)?$/;\n\nexport const HEADER_PREFIX_SLOT_ID = 'header-prefix';\nexport const HEADER_FILENAME_SUFFIX_SLOT_ID = 'header-filename-suffix';\nexport const HEADER_METADATA_SLOT_ID = 'header-metadata';\nexport const CUSTOM_HEADER_SLOT_ID = 'header-custom';\n\nexport const DEFAULT_THEMES: ThemesType = {\n dark: 'pierre-dark',\n light: 'pierre-light',\n};\n\n// The highlighter type used when no request names one and none is active yet.\nexport const DEFAULT_HIGHLIGHTER: HighlighterTypes = 'shiki-js';\n\nexport const THEME_CSS_ATTRIBUTE = 'data-theme-css';\nexport const UNSAFE_CSS_ATTRIBUTE = 'data-unsafe-css';\nexport const CORE_CSS_ATTRIBUTE = 'data-core-css';\nexport const DIFFS_SCROLLBAR_MEASURE_ATTRIBUTE = 'data-diffs-scrollbar-measure';\nexport const CODE_VIEW_HEADER_ATTRIBUTE = 'data-diffs-code-view-header';\nexport const CODE_VIEW_FOOTER_ATTRIBUTE = 'data-diffs-code-view-footer';\nexport const DIFFS_SCROLLBAR_GUTTER_MEASURED_PROPERTY =\n '--diffs-scrollbar-gutter-measured';\n\nexport const DEFAULT_COLLAPSED_CONTEXT_THRESHOLD = 1;\nexport const DEFAULT_TOKENIZE_MAX_LENGTH = 100_000;\nexport const DEFAULT_VIRTUAL_FILE_METRICS: VirtualFileMetrics = {\n hunkLineCount: 50,\n lineHeight: 20,\n diffHeaderHeight: 44,\n spacing: 8,\n};\n\nexport const DEFAULT_CODE_VIEW_FILE_METRICS: VirtualFileMetrics = {\n ...DEFAULT_VIRTUAL_FILE_METRICS,\n hunkLineCount: 1,\n};\n\nexport const DEFAULT_CODE_VIEW_LAYOUT: CodeViewLayout = {\n paddingTop: 8,\n paddingBottom: 8,\n gap: 8,\n};\n\nexport const DEFAULT_SMOOTH_SCROLL_SETTINGS: SmoothScrollSettings = {\n omega: 0.015,\n positionEpsilon: 0.5,\n velocityEpsilon: 0.05,\n};\n\nexport const DEFAULT_EXPANDED_REGION: HunkExpansionRegion = Object.freeze({\n fromStart: 0,\n fromEnd: 0,\n});\n\nexport const DEFAULT_RENDER_RANGE: RenderRange = {\n startingLine: 0,\n totalLines: Infinity,\n bufferBefore: 0,\n bufferAfter: 0,\n};\n\nexport const EMPTY_RENDER_RANGE: RenderRange = {\n startingLine: 0,\n totalLines: 0,\n bufferBefore: 0,\n bufferAfter: 0,\n};\n"],"mappings":";AAUA,MAAa,iBAAiB;AAI9B,MAAa,iCAA0C;CACrD,IAAI;EACF,OAAO,QAAQ,IAAI,aAAa;CAClC,QAAQ;EACN,OAAO;CACT;AACF,EAAA,CAAG;AAGH,MAAa,wBAAgC;AAC7C,MAAa,4BAAoC;AACjD,MAAa,gCAAwC;AACrD,MAAa,oBAA4B;AACzC,MAAa,cACX;AACF,MAAa,sBAA8B;AAC3C,MAAa,wBAAgC;AAC7C,MAAa,sBACX;AAEF,MAAa,oCAA4C;AACzD,MAAa,mCAA2C;AACxD,MAAa,wCAAgD;AAC7D,MAAa,kCAA0C;AAEvD,MAAa,wBAAwB;AACrC,MAAa,iCAAiC;AAC9C,MAAa,0BAA0B;AACvC,MAAa,wBAAwB;AAErC,MAAa,iBAA6B;CACxC,MAAM;CACN,OAAO;AACT;AAGA,MAAa,sBAAwC;AAErD,MAAa,sBAAsB;AACnC,MAAa,uBAAuB;AACpC,MAAa,qBAAqB;AAClC,MAAa,oCAAoC;AACjD,MAAa,6BAA6B;AAC1C,MAAa,6BAA6B;AAC1C,MAAa,2CACX;AAEF,MAAa,sCAAsC;AACnD,MAAa,8BAA8B;AAC3C,MAAa,+BAAmD;CAC9D,eAAe;CACf,YAAY;CACZ,kBAAkB;CAClB,SAAS;AACX;AAEA,MAAa,iCAAqD;CAChE,GAAG;CACH,eAAe;AACjB;AAEA,MAAa,2BAA2C;CACtD,YAAY;CACZ,eAAe;CACf,KAAK;AACP;AAEA,MAAa,iCAAuD;CAClE,OAAO;CACP,iBAAiB;CACjB,iBAAiB;AACnB;AAEA,MAAa,0BAA+C,OAAO,OAAO;CACxE,WAAW;CACX,SAAS;AACX,CAAC;AAED,MAAa,uBAAoC;CAC/C,cAAc;CACd,YAAY;CACZ,cAAc;CACd,aAAa;AACf;AAEA,MAAa,qBAAkC;CAC7C,cAAc;CACd,YAAY;CACZ,cAAc;CACd,aAAa;AACf"}
@@ -1,4 +1,5 @@
1
- import { DiffLineAnnotation, DiffsHighlighter, FileContents, FileDiffMetadata, LineAnnotation, RenderRange } from "../types.js";
1
+ import { DiffsHighlighter } from "../highlighter/DiffsHighlighter.js";
2
+ import { DiffLineAnnotation, FileContents, FileDiffMetadata, LineAnnotation, RenderRange } from "../types.js";
2
3
  import { EditState, EditorCaret, EditorChangeEvent, EditorEditCompleteEvent, EditorInitialState, EditorType, EditorViewState, Range, RetainedDiffSessionSnapshot, TextEdit } from "./types.js";
3
4
  import { File } from "../components/File.js";
4
5
  import { FileDiff } from "../components/FileDiff.js";
@@ -1 +1 @@
1
- {"version":3,"file":"editor.d.ts","names":[],"sources":["../../src/editor/editor.ts"],"mappings":";;;;;;;;;;;UAwOU;EACR,aAAa;EACb,eAAe;EACf,aAAa;;EAEb;;UAGQ,wBAAwB,qBAAqB;EACrD,MAAM;EACN,iBAAiB,eAAe;;EAEhC;;UAGQ,wBAAwB,qBAAqB;EACrD,UAAU;EACV,iBAAiB,mBAAmB;;EAEpC;;KAGG,oBACH,cAAc,YACd,eACE,uBACA,wBAAwB,eACxB,wBAAwB;KAEvB,gBACH,cAAc,YACd,aACA,SACE,uBACA,KAAK,aAAa,SAClB,SAAS,aAAa;UAkBT,cAAc,cAAc,YAAY,aAAa;;EAEpE;;;;;;EAMA;;;;;;EAMA,eAAe,mBAAmB,OAAO;;EAEzC,SAAS;;EAET;;EAEA;;;;;EAKA,eAAe;;EAEf,wBAAwB;;;;;EAKxB;;;;EAIA;;;;;;;IAOE;;;;IAIA,UAAU;;;;;;IAMV,6BAA6B;;;;;;IAM7B,6BAA6B;;;;;;;EAO/B;IACE,WAAW,kBAAkB;;;EAG/B,yBACE,SAAS,uBAAuB,OAAO,iBACpC;;;;EAIL,eAAe,OAAO,YAAY,WAAW;;EAE7C,YACE,QAAQ,OAAO,OAAO,aAAa,QACnC,cAAc,gBAAgB,OAAO,aAAa;;;;;;EAOpD,YAAY,OAAO,kBAAkB,OAAO,aAAa;;;;;;EAMzD,cACE,OAAO,wBAAwB,OAAO,aAAa;;EAGrD;;EAEA;EAEA;;UAGe,2BAA2B;;EAE1C;;EAEA;;EAEA;;cAiDW,OACX,cAAc,aAAa,YAC3B,yBACA;;WAyMkB,MAAM;;;;;;;EADxB,YACkB,MAAM,OACtB,UAAS,cAAc,OAAO,aAAa,QAC3C;EAkBF,WAAW,SAAS,cAAc,OAAO,aAAa;EAmBtD,mBACE,OAAO,wBAAwB,OAAO,aAAa;;EAMrD,sBAAsB;EAItB,UAAU,QAAQ,YAAY;EA6B9B,KAAK,UAAU,gBAAgB,OAAO,aAAa,QACjD,cAAc;aAAqB;cAAoC;;;;;;;;;;;EA4IzE,WAAW,OAAO,YAAY;;MAmE1B;;MAOA;;EAOJ;;EAKA;EAIA,WAAW;EAeX;;EAKA,gBAAgB;;;;;EA6BhB,gBAAgB,UAAU,OAAO;EAcjC,eAAe,YAAY,QAAQ;EA2BnC,cACE,aAAa;IAAU;;EAoCzB,WAAW,SAAS;EA8BpB,MAAM,UAAU;EAuChB;EAiBA,QAAQ;;EA2JR;;EAWA;;EAeA,sBAAsB,eAAe,eAAe;;EAoBpD,6BAA6B;;EAQ7B,iBAAiB,OAAO,oBAAoB,OAAO"}
1
+ {"version":3,"file":"editor.d.ts","names":[],"sources":["../../src/editor/editor.ts"],"mappings":";;;;;;;;;;;;UAyOU;EACR,aAAa;EACb,eAAe;EACf,aAAa;;EAEb;;UAGQ,wBAAwB,qBAAqB;EACrD,MAAM;EACN,iBAAiB,eAAe;;EAEhC;;UAGQ,wBAAwB,qBAAqB;EACrD,UAAU;EACV,iBAAiB,mBAAmB;;EAEpC;;KAGG,oBACH,cAAc,YACd,eACE,uBACA,wBAAwB,eACxB,wBAAwB;KAEvB,gBACH,cAAc,YACd,aACA,SACE,uBACA,KAAK,aAAa,SAClB,SAAS,aAAa;UAkBT,cAAc,cAAc,YAAY,aAAa;;EAEpE;;;;;;EAMA;;;;;;EAMA,eAAe,mBAAmB,OAAO;;EAEzC,SAAS;;EAET;;EAEA;;;;;EAKA,eAAe;;EAEf,wBAAwB;;;;;EAKxB;;;;EAIA;;;;;;;IAOE;;;;IAIA,UAAU;;;;;;IAMV,6BAA6B;;;;;;IAM7B,6BAA6B;;;;;;;EAO/B;IACE,WAAW,kBAAkB;;;EAG/B,yBACE,SAAS,uBAAuB,OAAO,iBACpC;;;;EAIL,eAAe,OAAO,YAAY,WAAW;;EAE7C,YACE,QAAQ,OAAO,OAAO,aAAa,QACnC,cAAc,gBAAgB,OAAO,aAAa;;;;;;EAOpD,YAAY,OAAO,kBAAkB,OAAO,aAAa;;;;;;EAMzD,cACE,OAAO,wBAAwB,OAAO,aAAa;;EAGrD;;EAEA;EAEA;;UAGe,2BAA2B;;EAE1C;;EAEA;;EAEA;;cAiDW,OACX,cAAc,aAAa,YAC3B,yBACA;;WAyMkB,MAAM;;;;;;;EADxB,YACkB,MAAM,OACtB,UAAS,cAAc,OAAO,aAAa,QAC3C;EAkBF,WAAW,SAAS,cAAc,OAAO,aAAa;EAmBtD,mBACE,OAAO,wBAAwB,OAAO,aAAa;;EAMrD,sBAAsB;EAItB,UAAU,QAAQ,YAAY;EA6B9B,KAAK,UAAU,gBAAgB,OAAO,aAAa,QACjD,cAAc;aAAqB;cAAoC;;;;;;;;;;;EA4IzE,WAAW,OAAO,YAAY;;MAmE1B;;MAOA;;EAOJ;;EAKA;EAIA,WAAW;EAeX;;EAKA,gBAAgB;;;;;EA6BhB,gBAAgB,UAAU,OAAO;EAcjC,eAAe,YAAY,QAAQ;EA2BnC,cACE,aAAa;IAAU;;EAoCzB,WAAW,SAAS;EA8BpB,MAAM,UAAU;EAuChB;EAiBA,QAAQ;;EA2JR;;EAaA;;EAeA,sBAAsB,eAAe,eAAe;;EAoBpD,6BAA6B;;EAQ7B,iBAAiB,OAAO,oBAAoB,OAAO"}
@@ -1,8 +1,8 @@
1
1
  import { dequeueRender, queueRender } from "../managers/UniversalRenderingManager.js";
2
+ import { isSafari } from "../utils/platform.js";
2
3
  import { isGutterUtilityPath } from "../utils/isGutterUtilityPath.js";
3
4
  import { computeLineOffsets } from "../utils/computeFileOffsets.js";
4
5
  import { getFiletypeFromFileName } from "../utils/getFiletypeFromFileName.js";
5
- import { isSafari } from "../utils/platform.js";
6
6
  import { EditStack } from "./editStack.js";
7
7
  import { getTextDocumentChangeTransaction } from "./textDocumentChangeTransaction.js";
8
8
  import { TextDocument } from "./textDocument.js";
@@ -12,6 +12,7 @@ import { resolveEditorCommandFromKeyboardEvent, resolveFindAgainShortcut } from
12
12
  import { cloneRetainedDiffSessionSnapshot } from "./cloneRetainedDiffSessionSnapshot.js";
13
13
  import editor_default from "./editor2.js";
14
14
  import { buildEditPredictionRequest, matchesEditPredictionPattern, recordEditPrediction } from "./editPrediction.js";
15
+ import { getChangedDocumentLines } from "./getChangedDocumentLines.js";
15
16
  import { resolveBlockCommentEdits, resolveCommentConfig, resolveLineCommentEdits } from "./languages.js";
16
17
  import { addEventListener, clampDomOffset, extend, getLineNumberAttr, h, lookupScrollContainer, round } from "./utils.js";
17
18
  import { applyDocumentChangeToLineAnnotations, renderLineAnnotations } from "./lineAnnotations.js";
@@ -593,7 +594,7 @@ var Editor = class {
593
594
  if (tokenizer !== void 0) {
594
595
  tokenizer.pauseBackgroundTokenize();
595
596
  requestAnimationFrame(() => {
596
- tokenizer.resumeBackgroundTokenize();
597
+ if (this.#tokenizer === tokenizer) tokenizer.resumeBackgroundTokenize();
597
598
  });
598
599
  }
599
600
  }
@@ -719,6 +720,10 @@ var Editor = class {
719
720
  };
720
721
  }
721
722
  const textDocument = editSession.document;
723
+ if (this.#tokenizer != null && this.#tokenizer.highlighter !== highlighter) {
724
+ this.#tokenizer.cleanUp();
725
+ this.#tokenizer = void 0;
726
+ }
722
727
  if (this.#tokenizer == null && textDocument != null) this.#tokenizer = new EditorTokenizer({
723
728
  highlighter,
724
729
  textDocument,
@@ -1894,7 +1899,9 @@ var Editor = class {
1894
1899
  }
1895
1900
  fileInstance.updateRenderCache(dirtyLines, tokenizer.themeType, {
1896
1901
  shouldRefreshDiffsView: this.#isDiff && !didLineCountChange,
1897
- lineCountChangeInFlight: didLineCountChange
1902
+ lineCountChangeInFlight: didLineCountChange,
1903
+ changedDocumentLines: this.#isDiff && !didLineCountChange ? getChangedDocumentLines(textDocument, change) : void 0,
1904
+ documentLineCount: textDocument.lineCount
1898
1905
  });
1899
1906
  if (didLineCountChange) applyDocumentChange(textDocument, newLineAnnotations, shouldUpdateBuffer);
1900
1907
  if (didLineCountChange || this.#isDiff && this.#diffSyle === "unified") this.#resetCache();