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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (701) hide show
  1. package/README.md +15 -15
  2. package/dist/components/CodeView.d.ts +103 -15
  3. package/dist/components/CodeView.d.ts.map +1 -1
  4. package/dist/components/CodeView.js +349 -50
  5. package/dist/components/CodeView.js.map +1 -1
  6. package/dist/components/File.d.ts +10 -7
  7. package/dist/components/File.d.ts.map +1 -1
  8. package/dist/components/File.js +99 -40
  9. package/dist/components/File.js.map +1 -1
  10. package/dist/components/FileDiff.d.ts +76 -36
  11. package/dist/components/FileDiff.d.ts.map +1 -1
  12. package/dist/components/FileDiff.js +364 -96
  13. package/dist/components/FileDiff.js.map +1 -1
  14. package/dist/components/FileStream.d.ts +0 -1
  15. package/dist/components/FileStream.d.ts.map +1 -1
  16. package/dist/components/FileStream.js +10 -7
  17. package/dist/components/FileStream.js.map +1 -1
  18. package/dist/components/UnresolvedFile.d.ts +3 -3
  19. package/dist/components/UnresolvedFile.d.ts.map +1 -1
  20. package/dist/components/UnresolvedFile.js +8 -6
  21. package/dist/components/UnresolvedFile.js.map +1 -1
  22. package/dist/components/VirtualizedFile.d.ts +8 -4
  23. package/dist/components/VirtualizedFile.d.ts.map +1 -1
  24. package/dist/components/VirtualizedFile.js +118 -44
  25. package/dist/components/VirtualizedFile.js.map +1 -1
  26. package/dist/components/VirtualizedFileDiff.d.ts +35 -9
  27. package/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
  28. package/dist/components/VirtualizedFileDiff.js +367 -120
  29. package/dist/components/VirtualizedFileDiff.js.map +1 -1
  30. package/dist/components/Virtualizer.d.ts +4 -1
  31. package/dist/components/Virtualizer.d.ts.map +1 -1
  32. package/dist/components/Virtualizer.js +47 -29
  33. package/dist/components/Virtualizer.js.map +1 -1
  34. package/dist/components/VirtulizerDevelopment.d.ts.map +1 -1
  35. package/dist/components/web-components.d.ts.map +1 -1
  36. package/dist/components/web-components.js +2 -3
  37. package/dist/components/web-components.js.map +1 -1
  38. package/dist/constants.d.ts +5 -2
  39. package/dist/constants.d.ts.map +1 -1
  40. package/dist/constants.js +5 -2
  41. package/dist/constants.js.map +1 -1
  42. package/dist/editor/command.d.ts +3 -2
  43. package/dist/editor/command.d.ts.map +1 -1
  44. package/dist/editor/command.js +29 -6
  45. package/dist/editor/command.js.map +1 -1
  46. package/dist/editor/editStack.d.ts +7 -2
  47. package/dist/editor/editStack.d.ts.map +1 -1
  48. package/dist/editor/editStack.js +4 -4
  49. package/dist/editor/editStack.js.map +1 -1
  50. package/dist/editor/editor.d.ts +91 -8
  51. package/dist/editor/editor.d.ts.map +1 -1
  52. package/dist/editor/editor.js +1926 -704
  53. package/dist/editor/editor.js.map +1 -1
  54. package/dist/editor/editor2.js +6 -0
  55. package/dist/editor/editor2.js.map +1 -0
  56. package/dist/editor/index.d.ts +4 -2
  57. package/dist/editor/index.js +1 -2
  58. package/dist/editor/languages.d.ts +26 -0
  59. package/dist/editor/languages.d.ts.map +1 -0
  60. package/dist/editor/languages.js +363 -0
  61. package/dist/editor/languages.js.map +1 -0
  62. package/dist/editor/lineAnnotations.d.ts +2 -1
  63. package/dist/editor/lineAnnotations.d.ts.map +1 -1
  64. package/dist/editor/lineAnnotations.js +193 -13
  65. package/dist/editor/lineAnnotations.js.map +1 -1
  66. package/dist/editor/marker.d.ts +38 -0
  67. package/dist/editor/marker.d.ts.map +1 -0
  68. package/dist/editor/marker.js +245 -0
  69. package/dist/editor/marker.js.map +1 -0
  70. package/dist/editor/matchBrackets.d.ts +9 -0
  71. package/dist/editor/matchBrackets.d.ts.map +1 -0
  72. package/dist/editor/matchBrackets.js +138 -0
  73. package/dist/editor/matchBrackets.js.map +1 -0
  74. package/dist/editor/pieceTable.d.ts +15 -7
  75. package/dist/editor/pieceTable.d.ts.map +1 -1
  76. package/dist/editor/pieceTable.js +252 -171
  77. package/dist/editor/pieceTable.js.map +1 -1
  78. package/dist/editor/platform.d.ts +8 -1
  79. package/dist/editor/platform.d.ts.map +1 -1
  80. package/dist/editor/platform.js +18 -5
  81. package/dist/editor/platform.js.map +1 -1
  82. package/dist/editor/popover.d.ts +65 -0
  83. package/dist/editor/popover.d.ts.map +1 -0
  84. package/dist/editor/popover.js +187 -0
  85. package/dist/editor/popover.js.map +1 -0
  86. package/dist/editor/searchPanel.d.ts +17 -7
  87. package/dist/editor/searchPanel.d.ts.map +1 -1
  88. package/dist/editor/searchPanel.js +268 -169
  89. package/dist/editor/searchPanel.js.map +1 -1
  90. package/dist/editor/selection.d.ts +100 -15
  91. package/dist/editor/selection.d.ts.map +1 -1
  92. package/dist/editor/selection.js +862 -136
  93. package/dist/editor/selection.js.map +1 -1
  94. package/dist/editor/selectionAction.d.ts +46 -0
  95. package/dist/editor/selectionAction.d.ts.map +1 -0
  96. package/dist/editor/selectionAction.js +64 -0
  97. package/dist/editor/selectionAction.js.map +1 -0
  98. package/dist/editor/sprite.d.ts +8 -0
  99. package/dist/editor/sprite.d.ts.map +1 -0
  100. package/dist/editor/sprite.js +45 -0
  101. package/dist/editor/sprite.js.map +1 -0
  102. package/dist/editor/stateStorage.d.ts +15 -0
  103. package/dist/editor/stateStorage.d.ts.map +1 -0
  104. package/dist/editor/stateStorage.js +65 -0
  105. package/dist/editor/stateStorage.js.map +1 -0
  106. package/dist/editor/textDocument.d.ts +21 -83
  107. package/dist/editor/textDocument.d.ts.map +1 -1
  108. package/dist/editor/textDocument.js +117 -48
  109. package/dist/editor/textDocument.js.map +1 -1
  110. package/dist/editor/textMeasure.d.ts +31 -2
  111. package/dist/editor/textMeasure.d.ts.map +1 -1
  112. package/dist/editor/textMeasure.js +122 -21
  113. package/dist/editor/textMeasure.js.map +1 -1
  114. package/dist/editor/{tokenzier.d.ts → tokenizer.d.ts} +16 -12
  115. package/dist/editor/tokenizer.d.ts.map +1 -0
  116. package/dist/editor/tokenizer.js +513 -0
  117. package/dist/editor/tokenizer.js.map +1 -0
  118. package/dist/editor/utils.d.ts +6 -1
  119. package/dist/editor/utils.d.ts.map +1 -1
  120. package/dist/editor/utils.js +34 -3
  121. package/dist/editor/utils.js.map +1 -1
  122. package/dist/highlighter/languages/areLanguagesAttached.d.ts.map +1 -1
  123. package/dist/highlighter/languages/areLanguagesAttached.js +1 -2
  124. package/dist/highlighter/languages/areLanguagesAttached.js.map +1 -1
  125. package/dist/highlighter/languages/attachResolvedLanguages.d.ts +0 -2
  126. package/dist/highlighter/languages/attachResolvedLanguages.d.ts.map +1 -1
  127. package/dist/highlighter/languages/attachResolvedLanguages.js +1 -2
  128. package/dist/highlighter/languages/attachResolvedLanguages.js.map +1 -1
  129. package/dist/highlighter/languages/cleanUpResolvedLanguages.d.ts.map +1 -1
  130. package/dist/highlighter/languages/cleanUpResolvedLanguages.js +1 -2
  131. package/dist/highlighter/languages/cleanUpResolvedLanguages.js.map +1 -1
  132. package/dist/highlighter/languages/constants.d.ts +0 -1
  133. package/dist/highlighter/languages/constants.d.ts.map +1 -1
  134. package/dist/highlighter/languages/constants.js +1 -1
  135. package/dist/highlighter/languages/constants.js.map +1 -1
  136. package/dist/highlighter/languages/getResolvedLanguages.d.ts +0 -2
  137. package/dist/highlighter/languages/getResolvedLanguages.d.ts.map +1 -1
  138. package/dist/highlighter/languages/getResolvedLanguages.js +1 -2
  139. package/dist/highlighter/languages/getResolvedLanguages.js.map +1 -1
  140. package/dist/highlighter/languages/getResolvedOrResolveLanguage.d.ts +0 -2
  141. package/dist/highlighter/languages/getResolvedOrResolveLanguage.d.ts.map +1 -1
  142. package/dist/highlighter/languages/getResolvedOrResolveLanguage.js +1 -2
  143. package/dist/highlighter/languages/getResolvedOrResolveLanguage.js.map +1 -1
  144. package/dist/highlighter/languages/hasResolvedLanguages.d.ts.map +1 -1
  145. package/dist/highlighter/languages/hasResolvedLanguages.js +1 -2
  146. package/dist/highlighter/languages/hasResolvedLanguages.js.map +1 -1
  147. package/dist/highlighter/languages/registerCustomLanguage.d.ts +0 -1
  148. package/dist/highlighter/languages/registerCustomLanguage.d.ts.map +1 -1
  149. package/dist/highlighter/languages/registerCustomLanguage.js +1 -2
  150. package/dist/highlighter/languages/registerCustomLanguage.js.map +1 -1
  151. package/dist/highlighter/languages/resolveLanguage.d.ts +0 -2
  152. package/dist/highlighter/languages/resolveLanguage.d.ts.map +1 -1
  153. package/dist/highlighter/languages/resolveLanguage.js +4 -5
  154. package/dist/highlighter/languages/resolveLanguage.js.map +1 -1
  155. package/dist/highlighter/languages/resolveLanguages.d.ts +0 -2
  156. package/dist/highlighter/languages/resolveLanguages.d.ts.map +1 -1
  157. package/dist/highlighter/languages/resolveLanguages.js +1 -2
  158. package/dist/highlighter/languages/resolveLanguages.js.map +1 -1
  159. package/dist/highlighter/shared_highlighter.d.ts.map +1 -1
  160. package/dist/highlighter/shared_highlighter.js +6 -33
  161. package/dist/highlighter/shared_highlighter.js.map +1 -1
  162. package/dist/highlighter/themes/areThemesAttached.d.ts.map +1 -1
  163. package/dist/highlighter/themes/areThemesAttached.js +1 -2
  164. package/dist/highlighter/themes/areThemesAttached.js.map +1 -1
  165. package/dist/highlighter/themes/attachResolvedThemes.d.ts.map +1 -1
  166. package/dist/highlighter/themes/attachResolvedThemes.js +5 -5
  167. package/dist/highlighter/themes/attachResolvedThemes.js.map +1 -1
  168. package/dist/highlighter/themes/cleanUpResolvedThemes.d.ts.map +1 -1
  169. package/dist/highlighter/themes/cleanUpResolvedThemes.js +4 -4
  170. package/dist/highlighter/themes/cleanUpResolvedThemes.js.map +1 -1
  171. package/dist/highlighter/themes/constants.d.ts +1 -7
  172. package/dist/highlighter/themes/constants.d.ts.map +1 -1
  173. package/dist/highlighter/themes/constants.js +2 -5
  174. package/dist/highlighter/themes/constants.js.map +1 -1
  175. package/dist/highlighter/themes/getResolvedOrResolveTheme.d.ts.map +1 -1
  176. package/dist/highlighter/themes/getResolvedOrResolveTheme.js +3 -4
  177. package/dist/highlighter/themes/getResolvedOrResolveTheme.js.map +1 -1
  178. package/dist/highlighter/themes/getResolvedThemes.d.ts.map +1 -1
  179. package/dist/highlighter/themes/getResolvedThemes.js +3 -10
  180. package/dist/highlighter/themes/getResolvedThemes.js.map +1 -1
  181. package/dist/highlighter/themes/hasResolvedThemes.d.ts.map +1 -1
  182. package/dist/highlighter/themes/hasResolvedThemes.js +3 -5
  183. package/dist/highlighter/themes/hasResolvedThemes.js.map +1 -1
  184. package/dist/highlighter/themes/registerCustomCSSVariableTheme.d.ts.map +1 -1
  185. package/dist/highlighter/themes/registerCustomCSSVariableTheme.js +2 -3
  186. package/dist/highlighter/themes/registerCustomCSSVariableTheme.js.map +1 -1
  187. package/dist/highlighter/themes/registerCustomTheme.d.ts +5 -3
  188. package/dist/highlighter/themes/registerCustomTheme.d.ts.map +1 -1
  189. package/dist/highlighter/themes/registerCustomTheme.js +16 -7
  190. package/dist/highlighter/themes/registerCustomTheme.js.map +1 -1
  191. package/dist/highlighter/themes/resolveTheme.d.ts.map +1 -1
  192. package/dist/highlighter/themes/resolveTheme.js +7 -29
  193. package/dist/highlighter/themes/resolveTheme.js.map +1 -1
  194. package/dist/highlighter/themes/resolveThemes.d.ts.map +1 -1
  195. package/dist/highlighter/themes/resolveThemes.js +6 -14
  196. package/dist/highlighter/themes/resolveThemes.js.map +1 -1
  197. package/dist/highlighter/themes/themeResolution.d.ts +8 -0
  198. package/dist/highlighter/themes/themeResolution.d.ts.map +1 -0
  199. package/dist/highlighter/themes/themeResolution.js +21 -0
  200. package/dist/highlighter/themes/themeResolution.js.map +1 -0
  201. package/dist/highlighter/themes/themeResolver.d.ts +8 -0
  202. package/dist/highlighter/themes/themeResolver.d.ts.map +1 -0
  203. package/dist/highlighter/themes/themeResolver.js +7 -0
  204. package/dist/highlighter/themes/themeResolver.js.map +1 -0
  205. package/dist/index.d.ts +16 -14
  206. package/dist/index.js +13 -12
  207. package/dist/managers/InteractionManager.d.ts +7 -0
  208. package/dist/managers/InteractionManager.d.ts.map +1 -1
  209. package/dist/managers/InteractionManager.js +26 -5
  210. package/dist/managers/InteractionManager.js.map +1 -1
  211. package/dist/managers/ResizeManager.d.ts +10 -2
  212. package/dist/managers/ResizeManager.d.ts.map +1 -1
  213. package/dist/managers/ResizeManager.js +35 -15
  214. package/dist/managers/ResizeManager.js.map +1 -1
  215. package/dist/managers/ScrollSyncManager.d.ts.map +1 -1
  216. package/dist/managers/ScrollSyncManager.js +1 -1
  217. package/dist/managers/ScrollSyncManager.js.map +1 -1
  218. package/dist/managers/UniversalRenderingManager.d.ts +2 -1
  219. package/dist/managers/UniversalRenderingManager.d.ts.map +1 -1
  220. package/dist/managers/UniversalRenderingManager.js +8 -3
  221. package/dist/managers/UniversalRenderingManager.js.map +1 -1
  222. package/dist/node_modules/.pnpm/@types_hast@3.0.4/node_modules/@types/hast/index.d.ts +228 -0
  223. package/dist/node_modules/.pnpm/@types_hast@3.0.4/node_modules/@types/hast/index.d.ts.map +1 -0
  224. package/dist/node_modules/.pnpm/@types_unist@3.0.3/node_modules/@types/unist/index.d.ts +84 -0
  225. package/dist/node_modules/.pnpm/@types_unist@3.0.3/node_modules/@types/unist/index.d.ts.map +1 -0
  226. package/dist/react/CodeView.d.ts +26 -2
  227. package/dist/react/CodeView.d.ts.map +1 -1
  228. package/dist/react/CodeView.js +90 -30
  229. package/dist/react/CodeView.js.map +1 -1
  230. package/dist/react/EditContext.d.ts +15 -0
  231. package/dist/react/EditContext.d.ts.map +1 -0
  232. package/dist/react/EditContext.js +23 -0
  233. package/dist/react/EditContext.js.map +1 -0
  234. package/dist/react/File.d.ts +1 -0
  235. package/dist/react/File.d.ts.map +1 -1
  236. package/dist/react/File.js +4 -6
  237. package/dist/react/File.js.map +1 -1
  238. package/dist/react/FileDiff.d.ts +1 -0
  239. package/dist/react/FileDiff.d.ts.map +1 -1
  240. package/dist/react/FileDiff.js +4 -6
  241. package/dist/react/FileDiff.js.map +1 -1
  242. package/dist/react/MultiFileDiff.d.ts +4 -4
  243. package/dist/react/MultiFileDiff.d.ts.map +1 -1
  244. package/dist/react/MultiFileDiff.js +4 -6
  245. package/dist/react/MultiFileDiff.js.map +1 -1
  246. package/dist/react/PatchDiff.d.ts +1 -0
  247. package/dist/react/PatchDiff.d.ts.map +1 -1
  248. package/dist/react/PatchDiff.js +4 -6
  249. package/dist/react/PatchDiff.js.map +1 -1
  250. package/dist/react/UnresolvedFile.d.ts +2 -1
  251. package/dist/react/UnresolvedFile.d.ts.map +1 -1
  252. package/dist/react/UnresolvedFile.js +4 -6
  253. package/dist/react/UnresolvedFile.js.map +1 -1
  254. package/dist/react/Virtualizer.d.ts.map +1 -1
  255. package/dist/react/Virtualizer.js +2 -5
  256. package/dist/react/Virtualizer.js.map +1 -1
  257. package/dist/react/WorkerPoolContext.d.ts +0 -1
  258. package/dist/react/WorkerPoolContext.d.ts.map +1 -1
  259. package/dist/react/WorkerPoolContext.js +2 -5
  260. package/dist/react/WorkerPoolContext.js.map +1 -1
  261. package/dist/react/constants.d.ts.map +1 -1
  262. package/dist/react/constants.js +1 -1
  263. package/dist/react/constants.js.map +1 -1
  264. package/dist/react/index.d.ts +3 -3
  265. package/dist/react/index.js +2 -3
  266. package/dist/react/jsx.d.ts +0 -1
  267. package/dist/react/jsx.d.ts.map +1 -1
  268. package/dist/react/types.d.ts +2 -0
  269. package/dist/react/types.d.ts.map +1 -1
  270. package/dist/react/types.js +1 -0
  271. package/dist/react/utils/renderDiffChildren.d.ts +2 -0
  272. package/dist/react/utils/renderDiffChildren.d.ts.map +1 -1
  273. package/dist/react/utils/renderDiffChildren.js +18 -11
  274. package/dist/react/utils/renderDiffChildren.js.map +1 -1
  275. package/dist/react/utils/renderFileChildren.d.ts +2 -0
  276. package/dist/react/utils/renderFileChildren.d.ts.map +1 -1
  277. package/dist/react/utils/renderFileChildren.js +18 -11
  278. package/dist/react/utils/renderFileChildren.js.map +1 -1
  279. package/dist/react/utils/templateRender.d.ts.map +1 -1
  280. package/dist/react/utils/templateRender.js +1 -2
  281. package/dist/react/utils/templateRender.js.map +1 -1
  282. package/dist/react/utils/useFileDiffInstance.d.ts.map +1 -1
  283. package/dist/react/utils/useFileDiffInstance.js +15 -18
  284. package/dist/react/utils/useFileDiffInstance.js.map +1 -1
  285. package/dist/react/utils/useFileInstance.d.ts.map +1 -1
  286. package/dist/react/utils/useFileInstance.js +2 -3
  287. package/dist/react/utils/useFileInstance.js.map +1 -1
  288. package/dist/react/utils/useStableCallback.d.ts.map +1 -1
  289. package/dist/react/utils/useStableCallback.js +1 -2
  290. package/dist/react/utils/useStableCallback.js.map +1 -1
  291. package/dist/react/utils/useUnresolvedFileInstance.d.ts.map +1 -1
  292. package/dist/react/utils/useUnresolvedFileInstance.js +10 -11
  293. package/dist/react/utils/useUnresolvedFileInstance.js.map +1 -1
  294. package/dist/renderers/DiffHunksRenderer.d.ts +30 -4
  295. package/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
  296. package/dist/renderers/DiffHunksRenderer.js +313 -45
  297. package/dist/renderers/DiffHunksRenderer.js.map +1 -1
  298. package/dist/renderers/FileRenderer.d.ts +7 -6
  299. package/dist/renderers/FileRenderer.d.ts.map +1 -1
  300. package/dist/renderers/FileRenderer.js +113 -56
  301. package/dist/renderers/FileRenderer.js.map +1 -1
  302. package/dist/renderers/UnresolvedFileHunksRenderer.d.ts +1 -2
  303. package/dist/renderers/UnresolvedFileHunksRenderer.d.ts.map +1 -1
  304. package/dist/renderers/UnresolvedFileHunksRenderer.js +1 -2
  305. package/dist/renderers/UnresolvedFileHunksRenderer.js.map +1 -1
  306. package/dist/shiki-stream/index.js +1 -2
  307. package/dist/shiki-stream/stream.d.ts +0 -1
  308. package/dist/shiki-stream/stream.d.ts.map +1 -1
  309. package/dist/shiki-stream/stream.js +1 -2
  310. package/dist/shiki-stream/stream.js.map +1 -1
  311. package/dist/shiki-stream/tokenizer.d.ts.map +1 -1
  312. package/dist/shiki-stream/tokenizer.js +1 -1
  313. package/dist/shiki-stream/tokenizer.js.map +1 -1
  314. package/dist/shiki-stream/types.d.ts +0 -1
  315. package/dist/shiki-stream/types.d.ts.map +1 -1
  316. package/dist/sprite.d.ts.map +1 -1
  317. package/dist/sprite.js +1 -1
  318. package/dist/ssr/FileDiffReact.d.ts.map +1 -1
  319. package/dist/ssr/FileDiffReact.js +4 -7
  320. package/dist/ssr/FileDiffReact.js.map +1 -1
  321. package/dist/ssr/index.d.ts +2 -2
  322. package/dist/ssr/index.js +1 -2
  323. package/dist/ssr/preloadDiffs.d.ts +12 -11
  324. package/dist/ssr/preloadDiffs.d.ts.map +1 -1
  325. package/dist/ssr/preloadDiffs.js +16 -9
  326. package/dist/ssr/preloadDiffs.js.map +1 -1
  327. package/dist/ssr/preloadFile.d.ts.map +1 -1
  328. package/dist/ssr/preloadFile.js +1 -2
  329. package/dist/ssr/preloadFile.js.map +1 -1
  330. package/dist/ssr/preloadPatchFile.d.ts.map +1 -1
  331. package/dist/ssr/preloadPatchFile.js +2 -3
  332. package/dist/ssr/preloadPatchFile.js.map +1 -1
  333. package/dist/ssr/renderHTML.d.ts +1 -1
  334. package/dist/ssr/renderHTML.d.ts.map +1 -1
  335. package/dist/ssr/renderHTML.js +1 -2
  336. package/dist/ssr/renderHTML.js.map +1 -1
  337. package/dist/string-import.d.ts +4 -0
  338. package/dist/string-import.d.ts.map +1 -1
  339. package/dist/style.js +3 -3
  340. package/dist/style.js.map +1 -1
  341. package/dist/types.d.ts +272 -31
  342. package/dist/types.d.ts.map +1 -1
  343. package/dist/utils/applyLineTextWithNewline.d.ts +5 -0
  344. package/dist/utils/applyLineTextWithNewline.d.ts.map +1 -0
  345. package/dist/utils/applyLineTextWithNewline.js +11 -0
  346. package/dist/utils/applyLineTextWithNewline.js.map +1 -0
  347. package/dist/utils/areDiffLineAnnotationsEqual.d.ts.map +1 -1
  348. package/dist/utils/areDiffLineAnnotationsEqual.js +1 -1
  349. package/dist/utils/areDiffLineAnnotationsEqual.js.map +1 -1
  350. package/dist/utils/areDiffRenderOptionsEqual.d.ts.map +1 -1
  351. package/dist/utils/areDiffRenderOptionsEqual.js +1 -2
  352. package/dist/utils/areDiffRenderOptionsEqual.js.map +1 -1
  353. package/dist/utils/areDiffTargetsEqual.d.ts.map +1 -1
  354. package/dist/utils/areDiffTargetsEqual.js +1 -1
  355. package/dist/utils/areDiffTargetsEqual.js.map +1 -1
  356. package/dist/utils/areFileRenderOptionsEqual.d.ts.map +1 -1
  357. package/dist/utils/areFileRenderOptionsEqual.js +1 -2
  358. package/dist/utils/areFileRenderOptionsEqual.js.map +1 -1
  359. package/dist/utils/areFilesEqual.d.ts.map +1 -1
  360. package/dist/utils/areFilesEqual.js +1 -1
  361. package/dist/utils/areFilesEqual.js.map +1 -1
  362. package/dist/utils/areHunkDataEqual.d.ts.map +1 -1
  363. package/dist/utils/areHunkDataEqual.js +2 -2
  364. package/dist/utils/areHunkDataEqual.js.map +1 -1
  365. package/dist/utils/areLineAnnotationsEqual.d.ts.map +1 -1
  366. package/dist/utils/areLineAnnotationsEqual.js +1 -1
  367. package/dist/utils/areLineAnnotationsEqual.js.map +1 -1
  368. package/dist/utils/areManagedSnapshotsEqual.d.ts +2 -2
  369. package/dist/utils/areManagedSnapshotsEqual.d.ts.map +1 -1
  370. package/dist/utils/areManagedSnapshotsEqual.js +6 -1
  371. package/dist/utils/areManagedSnapshotsEqual.js.map +1 -1
  372. package/dist/utils/areMergeConflictActionsEqual.d.ts.map +1 -1
  373. package/dist/utils/areMergeConflictActionsEqual.js +1 -1
  374. package/dist/utils/areMergeConflictActionsEqual.js.map +1 -1
  375. package/dist/utils/areObjectsEqual.d.ts.map +1 -1
  376. package/dist/utils/areObjectsEqual.js +1 -1
  377. package/dist/utils/areObjectsEqual.js.map +1 -1
  378. package/dist/utils/areOptionsEqual.d.ts +0 -2
  379. package/dist/utils/areOptionsEqual.d.ts.map +1 -1
  380. package/dist/utils/areOptionsEqual.js +1 -2
  381. package/dist/utils/areOptionsEqual.js.map +1 -1
  382. package/dist/utils/arePrePropertiesEqual.d.ts.map +1 -1
  383. package/dist/utils/arePrePropertiesEqual.js +1 -1
  384. package/dist/utils/arePrePropertiesEqual.js.map +1 -1
  385. package/dist/utils/areRenderRangesEqual.d.ts.map +1 -1
  386. package/dist/utils/areRenderRangesEqual.js +1 -1
  387. package/dist/utils/areRenderRangesEqual.js.map +1 -1
  388. package/dist/utils/areSelectionPointsEqual.d.ts.map +1 -1
  389. package/dist/utils/areSelectionPointsEqual.js +1 -1
  390. package/dist/utils/areSelectionPointsEqual.js.map +1 -1
  391. package/dist/utils/areSelectionsEqual.d.ts.map +1 -1
  392. package/dist/utils/areSelectionsEqual.js +1 -1
  393. package/dist/utils/areSelectionsEqual.js.map +1 -1
  394. package/dist/utils/areThemesEqual.d.ts.map +1 -1
  395. package/dist/utils/areThemesEqual.js +1 -1
  396. package/dist/utils/areThemesEqual.js.map +1 -1
  397. package/dist/utils/areVirtualWindowSpecsEqual.d.ts.map +1 -1
  398. package/dist/utils/areVirtualWindowSpecsEqual.js +1 -1
  399. package/dist/utils/areVirtualWindowSpecsEqual.js.map +1 -1
  400. package/dist/utils/areWorkerStatsEqual.d.ts +0 -2
  401. package/dist/utils/areWorkerStatsEqual.d.ts.map +1 -1
  402. package/dist/utils/areWorkerStatsEqual.js +1 -1
  403. package/dist/utils/areWorkerStatsEqual.js.map +1 -1
  404. package/dist/utils/awaitWithTimeout.d.ts +5 -0
  405. package/dist/utils/awaitWithTimeout.d.ts.map +1 -0
  406. package/dist/utils/awaitWithTimeout.js +15 -0
  407. package/dist/utils/awaitWithTimeout.js.map +1 -0
  408. package/dist/utils/cleanLastNewline.d.ts.map +1 -1
  409. package/dist/utils/cleanLastNewline.js +1 -1
  410. package/dist/utils/cleanLastNewline.js.map +1 -1
  411. package/dist/utils/cloneFileDiffMetadata.d.ts +7 -0
  412. package/dist/utils/cloneFileDiffMetadata.d.ts.map +1 -0
  413. package/dist/utils/cloneFileDiffMetadata.js +16 -0
  414. package/dist/utils/cloneFileDiffMetadata.js.map +1 -0
  415. package/dist/utils/computeEstimatedDiffHeights.d.ts +3 -1
  416. package/dist/utils/computeEstimatedDiffHeights.d.ts.map +1 -1
  417. package/dist/utils/computeEstimatedDiffHeights.js +18 -23
  418. package/dist/utils/computeEstimatedDiffHeights.js.map +1 -1
  419. package/dist/utils/computeFileOffsets.d.ts +9 -1
  420. package/dist/utils/computeFileOffsets.d.ts.map +1 -1
  421. package/dist/utils/computeFileOffsets.js +20 -2
  422. package/dist/utils/computeFileOffsets.js.map +1 -1
  423. package/dist/utils/computeVirtualFileMetrics.d.ts.map +1 -1
  424. package/dist/utils/computeVirtualFileMetrics.js +1 -2
  425. package/dist/utils/computeVirtualFileMetrics.js.map +1 -1
  426. package/dist/utils/createAnnotationElement.d.ts +1 -1
  427. package/dist/utils/createAnnotationElement.d.ts.map +1 -1
  428. package/dist/utils/createAnnotationElement.js +1 -2
  429. package/dist/utils/createAnnotationElement.js.map +1 -1
  430. package/dist/utils/createAnnotationWrapperNode.d.ts.map +1 -1
  431. package/dist/utils/createAnnotationWrapperNode.js +1 -1
  432. package/dist/utils/createAnnotationWrapperNode.js.map +1 -1
  433. package/dist/utils/createCodeViewHeaderFooterHostElement.d.ts +5 -0
  434. package/dist/utils/createCodeViewHeaderFooterHostElement.d.ts.map +1 -0
  435. package/dist/utils/createCodeViewHeaderFooterHostElement.js +19 -0
  436. package/dist/utils/createCodeViewHeaderFooterHostElement.js.map +1 -0
  437. package/dist/utils/createContentColumn.d.ts +1 -1
  438. package/dist/utils/createContentColumn.d.ts.map +1 -1
  439. package/dist/utils/createContentColumn.js +1 -2
  440. package/dist/utils/createContentColumn.js.map +1 -1
  441. package/dist/utils/createEmptyRowBuffer.d.ts +1 -1
  442. package/dist/utils/createEmptyRowBuffer.d.ts.map +1 -1
  443. package/dist/utils/createEmptyRowBuffer.js +1 -2
  444. package/dist/utils/createEmptyRowBuffer.js.map +1 -1
  445. package/dist/utils/createFileHeaderElement.d.ts +1 -1
  446. package/dist/utils/createFileHeaderElement.d.ts.map +1 -1
  447. package/dist/utils/createFileHeaderElement.js +6 -3
  448. package/dist/utils/createFileHeaderElement.js.map +1 -1
  449. package/dist/utils/createGutterUtilityContentNode.d.ts.map +1 -1
  450. package/dist/utils/createGutterUtilityContentNode.js +1 -1
  451. package/dist/utils/createGutterUtilityContentNode.js.map +1 -1
  452. package/dist/utils/createGutterUtilityElement.d.ts +1 -1
  453. package/dist/utils/createGutterUtilityElement.d.ts.map +1 -1
  454. package/dist/utils/createGutterUtilityElement.js +1 -2
  455. package/dist/utils/createGutterUtilityElement.js.map +1 -1
  456. package/dist/utils/createNoNewlineElement.d.ts +1 -1
  457. package/dist/utils/createNoNewlineElement.d.ts.map +1 -1
  458. package/dist/utils/createNoNewlineElement.js +1 -2
  459. package/dist/utils/createNoNewlineElement.js.map +1 -1
  460. package/dist/utils/createPreElement.d.ts +1 -1
  461. package/dist/utils/createPreElement.d.ts.map +1 -1
  462. package/dist/utils/createPreElement.js +1 -3
  463. package/dist/utils/createPreElement.js.map +1 -1
  464. package/dist/utils/createRowNodes.d.ts.map +1 -1
  465. package/dist/utils/createRowNodes.js +1 -1
  466. package/dist/utils/createRowNodes.js.map +1 -1
  467. package/dist/utils/createSeparator.d.ts +1 -1
  468. package/dist/utils/createSeparator.d.ts.map +1 -1
  469. package/dist/utils/createSeparator.js +1 -2
  470. package/dist/utils/createSeparator.js.map +1 -1
  471. package/dist/utils/createSpanNodeFromToken.d.ts.map +1 -1
  472. package/dist/utils/createSpanNodeFromToken.js +1 -2
  473. package/dist/utils/createSpanNodeFromToken.js.map +1 -1
  474. package/dist/utils/createStyleElement.d.ts +1 -1
  475. package/dist/utils/createStyleElement.d.ts.map +1 -1
  476. package/dist/utils/createStyleElement.js +1 -2
  477. package/dist/utils/createStyleElement.js.map +1 -1
  478. package/dist/utils/createTransformerWithState.d.ts.map +1 -1
  479. package/dist/utils/createTransformerWithState.js +1 -2
  480. package/dist/utils/createTransformerWithState.js.map +1 -1
  481. package/dist/utils/createUnsafeCSSStyleNode.d.ts.map +1 -1
  482. package/dist/utils/createUnsafeCSSStyleNode.js +1 -2
  483. package/dist/utils/createUnsafeCSSStyleNode.js.map +1 -1
  484. package/dist/utils/createWindowFromScrollPosition.d.ts.map +1 -1
  485. package/dist/utils/createWindowFromScrollPosition.js +5 -5
  486. package/dist/utils/createWindowFromScrollPosition.js.map +1 -1
  487. package/dist/utils/cssWrappers.d.ts.map +1 -1
  488. package/dist/utils/cssWrappers.js +2 -3
  489. package/dist/utils/cssWrappers.js.map +1 -1
  490. package/dist/utils/detachString.d.ts.map +1 -1
  491. package/dist/utils/detachString.js +1 -1
  492. package/dist/utils/detachString.js.map +1 -1
  493. package/dist/utils/diffAcceptRejectHunk.d.ts.map +1 -1
  494. package/dist/utils/diffAcceptRejectHunk.js +1 -2
  495. package/dist/utils/diffAcceptRejectHunk.js.map +1 -1
  496. package/dist/utils/editSessionHunks.d.ts +84 -0
  497. package/dist/utils/editSessionHunks.d.ts.map +1 -0
  498. package/dist/utils/editSessionHunks.js +366 -0
  499. package/dist/utils/editSessionHunks.js.map +1 -0
  500. package/dist/utils/formatCSSVariablePrefix.d.ts.map +1 -1
  501. package/dist/utils/formatCSSVariablePrefix.js +1 -1
  502. package/dist/utils/formatCSSVariablePrefix.js.map +1 -1
  503. package/dist/utils/getDiffFileInput.d.ts +14 -0
  504. package/dist/utils/getDiffFileInput.d.ts.map +1 -0
  505. package/dist/utils/getDiffFileInput.js +24 -0
  506. package/dist/utils/getDiffFileInput.js.map +1 -0
  507. package/dist/utils/getDiffHunksRendererOptions.d.ts.map +1 -1
  508. package/dist/utils/getDiffHunksRendererOptions.js +2 -1
  509. package/dist/utils/getDiffHunksRendererOptions.js.map +1 -1
  510. package/dist/utils/getFileRendererOptions.d.ts.map +1 -1
  511. package/dist/utils/getFileRendererOptions.js +1 -1
  512. package/dist/utils/getFileRendererOptions.js.map +1 -1
  513. package/dist/utils/getFiletypeFromFileName.d.ts.map +1 -1
  514. package/dist/utils/getFiletypeFromFileName.js +3 -1
  515. package/dist/utils/getFiletypeFromFileName.js.map +1 -1
  516. package/dist/utils/getHighlighterOptions.d.ts.map +1 -1
  517. package/dist/utils/getHighlighterOptions.js +1 -2
  518. package/dist/utils/getHighlighterOptions.js.map +1 -1
  519. package/dist/utils/getHighlighterThemeStyles.d.ts.map +1 -1
  520. package/dist/utils/getHighlighterThemeStyles.js +17 -14
  521. package/dist/utils/getHighlighterThemeStyles.js.map +1 -1
  522. package/dist/utils/getHunkSeparatorSlotName.d.ts.map +1 -1
  523. package/dist/utils/getHunkSeparatorSlotName.js +1 -1
  524. package/dist/utils/getHunkSeparatorSlotName.js.map +1 -1
  525. package/dist/utils/getIconForType.d.ts.map +1 -1
  526. package/dist/utils/getIconForType.js +1 -1
  527. package/dist/utils/getIconForType.js.map +1 -1
  528. package/dist/utils/getLineAnnotationName.d.ts.map +1 -1
  529. package/dist/utils/getLineAnnotationName.js +1 -1
  530. package/dist/utils/getLineAnnotationName.js.map +1 -1
  531. package/dist/utils/getLineEndingType.d.ts.map +1 -1
  532. package/dist/utils/getLineEndingType.js +1 -1
  533. package/dist/utils/getLineEndingType.js.map +1 -1
  534. package/dist/utils/getLineNodes.d.ts +1 -1
  535. package/dist/utils/getLineNodes.d.ts.map +1 -1
  536. package/dist/utils/getLineNodes.js +1 -1
  537. package/dist/utils/getLineNodes.js.map +1 -1
  538. package/dist/utils/getMergeConflictActionSlotName.d.ts.map +1 -1
  539. package/dist/utils/getMergeConflictActionSlotName.js +1 -1
  540. package/dist/utils/getMergeConflictActionSlotName.js.map +1 -1
  541. package/dist/utils/getMergeConflictLineTypes.d.ts.map +1 -1
  542. package/dist/utils/getMergeConflictLineTypes.js +1 -2
  543. package/dist/utils/getMergeConflictLineTypes.js.map +1 -1
  544. package/dist/utils/getOrCreateCodeNode.d.ts.map +1 -1
  545. package/dist/utils/getOrCreateCodeNode.js +1 -1
  546. package/dist/utils/getOrCreateCodeNode.js.map +1 -1
  547. package/dist/utils/getSingularPatch.d.ts.map +1 -1
  548. package/dist/utils/getSingularPatch.js +1 -2
  549. package/dist/utils/getSingularPatch.js.map +1 -1
  550. package/dist/utils/getThemes.d.ts.map +1 -1
  551. package/dist/utils/getThemes.js +1 -2
  552. package/dist/utils/getThemes.js.map +1 -1
  553. package/dist/utils/getTotalLineCountFromHunks.d.ts.map +1 -1
  554. package/dist/utils/getTotalLineCountFromHunks.js +1 -1
  555. package/dist/utils/getTotalLineCountFromHunks.js.map +1 -1
  556. package/dist/utils/hast_utils.d.ts +1 -1
  557. package/dist/utils/hast_utils.d.ts.map +1 -1
  558. package/dist/utils/hast_utils.js +1 -1
  559. package/dist/utils/hast_utils.js.map +1 -1
  560. package/dist/utils/hostTheme.d.ts.map +1 -1
  561. package/dist/utils/hostTheme.js +1 -2
  562. package/dist/utils/hostTheme.js.map +1 -1
  563. package/dist/utils/hydratePartialDiff.d.ts +10 -0
  564. package/dist/utils/hydratePartialDiff.d.ts.map +1 -0
  565. package/dist/utils/hydratePartialDiff.js +140 -0
  566. package/dist/utils/hydratePartialDiff.js.map +1 -0
  567. package/dist/utils/includesFileAnnotations.d.ts +17 -0
  568. package/dist/utils/includesFileAnnotations.d.ts.map +1 -0
  569. package/dist/utils/includesFileAnnotations.js +19 -0
  570. package/dist/utils/includesFileAnnotations.js.map +1 -0
  571. package/dist/utils/isDefaultRenderRange.d.ts.map +1 -1
  572. package/dist/utils/isDefaultRenderRange.js +1 -1
  573. package/dist/utils/isDefaultRenderRange.js.map +1 -1
  574. package/dist/utils/isDiffPlainText.d.ts.map +1 -1
  575. package/dist/utils/isDiffPlainText.js +1 -2
  576. package/dist/utils/isDiffPlainText.js.map +1 -1
  577. package/dist/utils/isFilePlainText.d.ts.map +1 -1
  578. package/dist/utils/isFilePlainText.js +1 -2
  579. package/dist/utils/isFilePlainText.js.map +1 -1
  580. package/dist/utils/isStyleNode.d.ts.map +1 -1
  581. package/dist/utils/isStyleNode.js +1 -1
  582. package/dist/utils/isStyleNode.js.map +1 -1
  583. package/dist/utils/isWorkerContext.d.ts.map +1 -1
  584. package/dist/utils/isWorkerContext.js +1 -1
  585. package/dist/utils/isWorkerContext.js.map +1 -1
  586. package/dist/utils/iterateOverDiff.d.ts.map +1 -1
  587. package/dist/utils/iterateOverDiff.js +178 -214
  588. package/dist/utils/iterateOverDiff.js.map +1 -1
  589. package/dist/utils/normalizeDiffResolution.d.ts.map +1 -1
  590. package/dist/utils/normalizeDiffResolution.js +1 -1
  591. package/dist/utils/normalizeDiffResolution.js.map +1 -1
  592. package/dist/utils/parseDiffDecorations.d.ts.map +1 -1
  593. package/dist/utils/parseDiffDecorations.js +1 -2
  594. package/dist/utils/parseDiffDecorations.js.map +1 -1
  595. package/dist/utils/parseDiffFromFile.d.ts +1 -2
  596. package/dist/utils/parseDiffFromFile.d.ts.map +1 -1
  597. package/dist/utils/parseDiffFromFile.js +27 -7
  598. package/dist/utils/parseDiffFromFile.js.map +1 -1
  599. package/dist/utils/parseLineType.d.ts.map +1 -1
  600. package/dist/utils/parseLineType.js +1 -1
  601. package/dist/utils/parseLineType.js.map +1 -1
  602. package/dist/utils/parseMergeConflictDiffFromFile.d.ts.map +1 -1
  603. package/dist/utils/parseMergeConflictDiffFromFile.js +5 -5
  604. package/dist/utils/parseMergeConflictDiffFromFile.js.map +1 -1
  605. package/dist/utils/parsePatchFiles.d.ts.map +1 -1
  606. package/dist/utils/parsePatchFiles.js +101 -11
  607. package/dist/utils/parsePatchFiles.js.map +1 -1
  608. package/dist/utils/prefersReducedMotion.d.ts.map +1 -1
  609. package/dist/utils/prefersReducedMotion.js +1 -1
  610. package/dist/utils/prefersReducedMotion.js.map +1 -1
  611. package/dist/utils/prerenderHTMLIfNecessary.d.ts.map +1 -1
  612. package/dist/utils/prerenderHTMLIfNecessary.js +1 -1
  613. package/dist/utils/prerenderHTMLIfNecessary.js.map +1 -1
  614. package/dist/utils/processLine.d.ts +1 -1
  615. package/dist/utils/processLine.d.ts.map +1 -1
  616. package/dist/utils/processLine.js +1 -2
  617. package/dist/utils/processLine.js.map +1 -1
  618. package/dist/utils/realignChangeContent.d.ts +28 -0
  619. package/dist/utils/realignChangeContent.d.ts.map +1 -0
  620. package/dist/utils/realignChangeContent.js +142 -0
  621. package/dist/utils/realignChangeContent.js.map +1 -0
  622. package/dist/utils/renderDiffWithHighlighter.d.ts.map +1 -1
  623. package/dist/utils/renderDiffWithHighlighter.js +9 -8
  624. package/dist/utils/renderDiffWithHighlighter.js.map +1 -1
  625. package/dist/utils/renderFileWithHighlighter.d.ts.map +1 -1
  626. package/dist/utils/renderFileWithHighlighter.js +5 -4
  627. package/dist/utils/renderFileWithHighlighter.js.map +1 -1
  628. package/dist/utils/resolveConflict.d.ts.map +1 -1
  629. package/dist/utils/resolveConflict.js +1 -2
  630. package/dist/utils/resolveConflict.js.map +1 -1
  631. package/dist/utils/resolveRegion.d.ts.map +1 -1
  632. package/dist/utils/resolveRegion.js +1 -1
  633. package/dist/utils/resolveRegion.js.map +1 -1
  634. package/dist/utils/roundToDevicePixel.d.ts.map +1 -1
  635. package/dist/utils/roundToDevicePixel.js +1 -1
  636. package/dist/utils/roundToDevicePixel.js.map +1 -1
  637. package/dist/utils/scrollbarGutter.d.ts.map +1 -1
  638. package/dist/utils/scrollbarGutter.js +1 -2
  639. package/dist/utils/scrollbarGutter.js.map +1 -1
  640. package/dist/utils/setLanguageOverride.d.ts.map +1 -1
  641. package/dist/utils/setLanguageOverride.js +1 -1
  642. package/dist/utils/setLanguageOverride.js.map +1 -1
  643. package/dist/utils/setWrapperNodeProps.d.ts.map +1 -1
  644. package/dist/utils/setWrapperNodeProps.js +1 -2
  645. package/dist/utils/setWrapperNodeProps.js.map +1 -1
  646. package/dist/utils/shouldUseTokenTransformer.d.ts.map +1 -1
  647. package/dist/utils/shouldUseTokenTransformer.js +1 -1
  648. package/dist/utils/shouldUseTokenTransformer.js.map +1 -1
  649. package/dist/utils/splitFileContents.d.ts.map +1 -1
  650. package/dist/utils/splitFileContents.js +1 -2
  651. package/dist/utils/splitFileContents.js.map +1 -1
  652. package/dist/utils/trimPatchContext.d.ts.map +1 -1
  653. package/dist/utils/trimPatchContext.js +1 -2
  654. package/dist/utils/trimPatchContext.js.map +1 -1
  655. package/dist/utils/updateDiffHunks.d.ts +24 -0
  656. package/dist/utils/updateDiffHunks.d.ts.map +1 -0
  657. package/dist/utils/updateDiffHunks.js +235 -0
  658. package/dist/utils/updateDiffHunks.js.map +1 -0
  659. package/dist/utils/virtualDiffLayout.d.ts +62 -2
  660. package/dist/utils/virtualDiffLayout.d.ts.map +1 -1
  661. package/dist/utils/virtualDiffLayout.js +137 -3
  662. package/dist/utils/virtualDiffLayout.js.map +1 -1
  663. package/dist/utils/wrapTokenFragments.d.ts +1 -1
  664. package/dist/utils/wrapTokenFragments.d.ts.map +1 -1
  665. package/dist/utils/wrapTokenFragments.js +1 -2
  666. package/dist/utils/wrapTokenFragments.js.map +1 -1
  667. package/dist/worker/WorkerPoolManager.d.ts +7 -2
  668. package/dist/worker/WorkerPoolManager.d.ts.map +1 -1
  669. package/dist/worker/WorkerPoolManager.js +88 -23
  670. package/dist/worker/WorkerPoolManager.js.map +1 -1
  671. package/dist/worker/getOrCreateWorkerPoolSingleton.d.ts.map +1 -1
  672. package/dist/worker/getOrCreateWorkerPoolSingleton.js +1 -2
  673. package/dist/worker/getOrCreateWorkerPoolSingleton.js.map +1 -1
  674. package/dist/worker/index.d.ts +2 -2
  675. package/dist/worker/index.js +1 -2
  676. package/dist/worker/types.d.ts +11 -1
  677. package/dist/worker/types.d.ts.map +1 -1
  678. package/dist/worker/wasm-B9ZqxnKj.js +8 -0
  679. package/dist/worker/wasm-B9ZqxnKj.js.map +1 -0
  680. package/dist/worker/worker-portable.js +3335 -6214
  681. package/dist/worker/worker-portable.js.map +1 -1
  682. package/dist/worker/worker.js +287 -309
  683. package/dist/worker/worker.js.map +1 -1
  684. package/package.json +29 -32
  685. package/dist/editor/css.d.ts +0 -6
  686. package/dist/editor/css.d.ts.map +0 -1
  687. package/dist/editor/css.js +0 -218
  688. package/dist/editor/css.js.map +0 -1
  689. package/dist/editor/quickEdit.d.ts +0 -29
  690. package/dist/editor/quickEdit.d.ts.map +0 -1
  691. package/dist/editor/quickEdit.js +0 -81
  692. package/dist/editor/quickEdit.js.map +0 -1
  693. package/dist/editor/tokenzier.d.ts.map +0 -1
  694. package/dist/editor/tokenzier.js +0 -348
  695. package/dist/editor/tokenzier.js.map +0 -1
  696. package/dist/react/EditorContext.d.ts +0 -16
  697. package/dist/react/EditorContext.d.ts.map +0 -1
  698. package/dist/react/EditorContext.js +0 -26
  699. package/dist/react/EditorContext.js.map +0 -1
  700. package/dist/worker/wasm-D4DU5jgR.js +0 -10
  701. package/dist/worker/wasm-D4DU5jgR.js.map +0 -1
@@ -0,0 +1,6 @@
1
+ //#region src/editor/editor.css?inline
2
+ var editor_default = "::selection {\n background-color: #0000;\n}\n\n[data-deleted-text-selection] [data-deletions] ::selection, [data-deleted-text-selection] [data-line-type=\"change-deletion\"] ::selection {\n background-color: var(--diffs-editor-selection-bg);\n}\n\n@keyframes blinking {\n 0% {\n opacity: 1;\n }\n\n 50% {\n opacity: 0;\n }\n\n 100% {\n opacity: 1;\n }\n}\n\n:host, [data-code], [data-content], [data-diff-type=\"split\"][data-overflow=\"wrap\"] {\n position: relative;\n}\n\n[data-code] {\n container-type: inline-size;\n}\n\n[data-content] {\n cursor: text;\n caret-color: var(--diffs-bg-caret);\n background-color: #0000;\n outline: none;\n}\n\n[data-line] {\n cursor: text;\n background-color: #0000;\n}\n\n[data-line]:after {\n content: \"\";\n z-index: -20;\n background-color: var(--diffs-line-bg);\n pointer-events: none;\n position: absolute;\n inset: 0;\n}\n\n[data-line][data-selected-line]:after {\n background-color: var(--diffs-computed-diff-line-bg, var(--diffs-bg));\n background-image: linear-gradient(var(--diffs-editor-line-highlight-bg),\n var(--diffs-editor-line-highlight-bg));\n}\n\n[data-editor-overlay] {\n display: contents;\n}\n\n[data-caret], [data-selection-range], [data-match-range], [data-bracket-match-range], [data-marker-range] {\n height: 1lh;\n line-height: var(--diffs-line-height);\n pointer-events: none;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n[data-caret] {\n background-color: var(--diffs-bg-caret-override, var(--diffs-editor-cursor-fg, light-dark(color-mix(in lab, var(--diffs-fg) 50%, var(--diffs-bg)), color-mix(in lab, var(--diffs-fg) 75%, var(--diffs-bg)))));\n visibility: hidden;\n width: 2px;\n}\n\n@media (prefers-reduced-motion: no-preference) {\n [data-caret] {\n animation: 1.2s .8s infinite blinking;\n }\n}\n\n[data-selection-range] {\n z-index: -10;\n background-color: var(--diffs-editor-selection-bg);\n}\n\n[data-selection-corner] {\n background-color: var(--diffs-selection-corner-bg, var(--diffs-bg));\n width: 100%;\n height: 100%;\n}\n\n[data-match-range] {\n z-index: -10;\n background-color: var(--diffs-editor-match-bg, var(--diffs-editor-selection-bg));\n}\n\n[data-match-range]:not([data-focus]) {\n background-color: var(--diffs-editor-match-highlight-bg, light-dark(#ff963288, #ff963266));\n}\n\n[data-bracket-match-range] {\n z-index: -9;\n box-sizing: border-box;\n border-bottom: 1px solid\n var(--diffs-editor-bracket-match-border, color-mix(in lab, var(--diffs-fg) 60%, transparent));\n background-color: var(--diffs-editor-bracket-match-bg, color-mix(in lab, var(--diffs-fg) 5%, transparent));\n}\n\n[data-rtl] {\n border-top-left-radius: 3px;\n}\n\n[data-rtr] {\n border-top-right-radius: 3px;\n}\n\n[data-rbl] {\n border-bottom-left-radius: 3px;\n}\n\n[data-rbr] {\n border-bottom-right-radius: 3px;\n}\n\n[data-marker-range] {\n z-index: 1;\n background-color: var(--diffs-marker-bg);\n mask-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2IiBoZWlnaHQ9IjMiPjxwYXRoIGQ9Im0wIDIuNSBsMiAtMS41IGwxIDAgbDIgMS41IGwxIDAiIHN0cm9rZT0iI2ZmZiIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIi8+PC9zdmc+\");\n mask-position: 0 100%;\n mask-size: 6px 3px;\n mask-repeat: repeat-x;\n}\n\n[data-marker-error] {\n --diffs-marker-contrast: #fff;\n --diffs-marker-bg: var(--diffs-editor-error-fg, var(--diffs-deletion-base));\n}\n\n[data-marker-warning] {\n --diffs-marker-contrast: #000;\n --diffs-marker-bg: var(--diffs-editor-warning-fg, light-dark(var(--diffs-warning-light), var(--diffs-warning-dark)));\n}\n\n[data-marker-info] {\n --diffs-marker-contrast: #fff;\n --diffs-marker-bg: var(--diffs-editor-info-fg, var(--diffs-modified-base));\n}\n\n[data-marker-hint] {\n --diffs-marker-contrast: light-dark(#fff, #000);\n --diffs-marker-bg: var(--diffs-editor-hint-fg, var(--diffs-fg-number));\n}\n\n@media (width >= 480px) {\n [data-content] {\n caret-color: #0000;\n }\n\n [data-content]:focus ~ [data-editor-overlay] [data-caret] {\n visibility: visible;\n }\n}\n\n[data-editor-widget] {\n --diffs-widget-fg: var(--diffs-fg);\n --diffs-widget-bg: color-mix(in lab, var(--diffs-fg) 4%, var(--diffs-bg));\n --diffs-widget-border: color-mix(in lab, var(--diffs-fg) 20%, transparent);\n --diffs-widget-shadow: inset 0 0 0 1px var(--diffs-bg), 0 4px 8px #00000013,\n 0 6px 18px #00000013;\n z-index: 100;\n width: fit-content;\n max-width: calc(100% - 24px);\n font: 14px/20px var(--diffs-header-font-fallback);\n border: 1px solid var(--diffs-widget-border);\n background-color: var(--diffs-widget-bg);\n box-shadow: var(--diffs-widget-shadow);\n background-clip: padding-box;\n border-radius: 9px;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n[data-marker-popup], [data-selection-action-popover] {\n --popover-viewport-left: 0px;\n --popover-viewport-right: 100cqw;\n --popover-min-left: calc(var(--popover-viewport-left) + var(--gutter-width, 0px) + 8px);\n --popover-available-width: max(0px,\n calc(var(--popover-viewport-right) - var(--popover-min-left) - 8px));\n max-width: min(640px, var(--popover-available-width));\n translate: clamp(var(--popover-min-left),\n var(--popover-x, var(--popover-min-left)),\n calc(var(--popover-viewport-right) - 8px - 100%))\n calc(var(--popover-y, 0px) + var(--popover-y-shift, 0px));\n}\n\n[data-marker-popup] {\n --diffs-widget-bg: var(--diffs-marker-bg);\n --diffs-widget-shadow: 0 4px 8px #00000026, 0 6px 18px #00000026;\n min-width: min(180px, var(--popover-available-width));\n overflow-wrap: anywhere;\n color: var(--diffs-marker-contrast, contrast-color(#fff, #000));\n white-space: normal;\n pointer-events: auto;\n border: 0;\n padding: 8px 12px;\n\n & [data-marker-message] {\n white-space: normal;\n overflow-wrap: anywhere;\n\n & code {\n white-space: normal;\n color: inherit;\n background-color: #0000;\n display: inline;\n }\n }\n}\n\n[data-selection-action-popover] {\n pointer-events: auto;\n flex-wrap: wrap;\n align-items: center;\n gap: 4px;\n width: max-content;\n padding: 4px;\n display: flex;\n}\n\n[data-search-panel] {\n z-index: 100;\n flex-direction: column;\n justify-content: right;\n width: 100%;\n height: 0;\n display: flex;\n position: sticky;\n top: 16px;\n right: 16px;\n container: search-panel / inline-size;\n\n & [data-editor-widget] {\n z-index: 100;\n flex-shrink: 0;\n align-items: stretch;\n gap: 8px;\n min-width: 260px;\n max-width: 100%;\n margin-inline: auto 16px;\n padding: 4px;\n display: flex;\n position: relative;\n }\n\n & svg {\n fill: currentColor;\n width: 12px;\n height: 12px;\n display: block;\n }\n}\n\n[data-search-grid] {\n grid-template-columns: auto auto auto;\n grid-template-areas: \"find matches nav\"\n \"replace actions .\";\n align-items: center;\n gap: 4px 6px;\n width: 100%;\n display: grid;\n}\n\n[data-input-box][data-find] {\n grid-area: find;\n}\n\n[data-search-nav] {\n grid-area: nav;\n}\n\n[data-input-box][data-replace] {\n grid-area: replace;\n}\n\n[data-replace-actions] {\n grid-area: actions;\n}\n\n[data-search-grid][data-mode=\"find\"] {\n grid-template-areas: \"find matches nav\";\n}\n\n[data-search-grid][data-mode=\"find\"] [data-replace-cell] {\n display: none;\n}\n\n@container search-panel (width < 400px) {\n [data-search-panel] [data-editor-widget] {\n padding: 10px;\n }\n\n [data-search-grid][data-mode=\"replace\"] {\n grid-template-columns: auto 1fr auto;\n grid-template-areas: \"find find find\"\n \"replace replace replace\"\n \"nav matches actions\";\n }\n\n [data-search-grid][data-mode=\"find\"] {\n grid-template-columns: auto 1fr auto;\n grid-template-areas: \"find find find\"\n \"nav matches matches\";\n }\n\n [data-replace-actions] {\n justify-self: end;\n }\n\n [data-search-grid] [data-input-box] {\n width: auto;\n }\n}\n\n[data-input-box] {\n align-items: center;\n width: 200px;\n display: flex;\n position: relative;\n\n & input {\n width: 100%;\n min-width: 0;\n color: var(--diffs-fg);\n background-color: var(--diffs-bg);\n border: 1px solid color-mix(in lab, var(--diffs-fg) 12%, var(--diffs-bg));\n border-radius: 6px;\n outline: none;\n flex-grow: 1;\n padding-inline: 6px;\n font-size: 13px;\n line-height: 24px;\n\n &::selection {\n background-color: color-mix(in lab, var(--diffs-fg) 8%, var(--diffs-bg));\n }\n\n &:focus-visible {\n outline: 1px solid var(--diffs-modified-base);\n }\n }\n\n &[data-find] input {\n padding-inline-end: 72px;\n }\n\n & [data-search-icon] {\n --diffs-search-icon-size: 20px;\n }\n}\n\n[data-search-toggles] {\n align-items: center;\n gap: 1px;\n display: flex;\n position: absolute;\n top: 50%;\n right: 4px;\n transform: translateY(-50%);\n}\n\n[data-matches] {\n white-space: nowrap;\n min-width: 50px;\n color: color-mix(in lab, var(--diffs-fg) 50%, var(--diffs-bg));\n flex-shrink: 0;\n grid-area: matches;\n font-size: 12px;\n font-weight: 500;\n line-height: 20px;\n\n &[data-no-matches] {\n color: color-mix(in lab, var(--diffs-fg) 35%, var(--diffs-bg));\n }\n}\n\n[data-replace-actions], [data-search-nav] {\n align-items: center;\n display: flex;\n}\n\n[data-search-icon] {\n appearance: none;\n width: var(--diffs-search-icon-size, 24px);\n height: var(--diffs-search-icon-size, 24px);\n color: color-mix(in lab, var(--diffs-fg) 65%, var(--diffs-bg));\n border-radius: var(--diffs-search-icon-radius, 4px);\n cursor: pointer;\n background: none;\n border: 0;\n flex-shrink: 0;\n justify-content: center;\n align-items: center;\n margin: 0;\n padding: 0;\n transition: background-color .1s ease-in-out, color .1s ease-in-out;\n display: flex;\n\n &:disabled {\n opacity: .25;\n cursor: default;\n }\n\n &:not(:disabled):hover {\n color: var(--diffs-fg);\n }\n\n &:focus-visible {\n outline: 1px solid var(--diffs-modified-base);\n }\n\n &[aria-pressed=\"true\"] {\n color: var(--diffs-modified-base);\n }\n}\n\n[data-search-close] {\n --diffs-search-icon-size: 20px;\n --diffs-search-icon-radius: 50%;\n color: var(--diffs-widget-bg);\n background-color: color-mix(in lab,\n var(--diffs-widget-fg) 50%,\n var(--diffs-bg));\n position: absolute;\n top: 0;\n right: 0;\n transform: translate(50%, -50%);\n\n &:not(:disabled):hover {\n opacity: 1;\n color: var(--diffs-widget-bg);\n background-color: var(--diffs-widget-fg);\n }\n}\n";
3
+ //#endregion
4
+ export { editor_default as default };
5
+
6
+ //# sourceMappingURL=editor2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor2.js","names":[],"sources":[],"mappings":""}
@@ -1,3 +1,5 @@
1
- import { Position, Range, ResolvedTextEdit, TextDocument, TextDocumentChange, TextEdit } from "./textDocument.js";
1
+ import { Position, Range, TextEdit } from "../types.js";
2
+ import { ResolvedTextEdit, TextDocument, TextDocumentChange } from "./textDocument.js";
3
+ import { IStateStorage, PersistStateStorage } from "./stateStorage.js";
2
4
  import { Editor, EditorOptions } from "./editor.js";
3
- export { Editor, EditorOptions, Position, Range, ResolvedTextEdit, TextDocument, TextDocumentChange, TextEdit };
5
+ export { Editor, EditorOptions, type IStateStorage, type PersistStateStorage, type Position, type Range, ResolvedTextEdit, TextDocument, TextDocumentChange, type TextEdit };
@@ -1,4 +1,3 @@
1
1
  import { TextDocument } from "./textDocument.js";
2
2
  import { Editor } from "./editor.js";
3
-
4
- export { Editor, TextDocument };
3
+ export { Editor, TextDocument };
@@ -0,0 +1,26 @@
1
+ import { EditorSelection, TextEdit } from "../types.js";
2
+ import { TextDocument } from "./textDocument.js";
3
+
4
+ //#region src/editor/languages.d.ts
5
+ interface LanguageConfig {
6
+ lineComment?: string | null;
7
+ blockComment?: readonly [open: string, close: string];
8
+ }
9
+ type LanguageConfigMap = Readonly<Record<string, LanguageConfig>>;
10
+ interface ResolvedLanguageConfig {
11
+ lineComment: string | null;
12
+ blockComment: readonly [open: string, close: string];
13
+ }
14
+ /** Resolves language-specific comment tokens over the editor defaults. */
15
+ declare function resolveCommentConfig(languageId: string, overrides?: LanguageConfigMap): ResolvedLanguageConfig;
16
+ /** Builds one aligned batch of line-comment edits for all selected lines. */
17
+ declare function resolveLineCommentEdits(textDocument: TextDocument<unknown>, selections: readonly EditorSelection[], token: string): TextEdit[];
18
+ interface BlockCommentEditResult {
19
+ edits: TextEdit[];
20
+ nextSelectionOffsets: Array<readonly [start: number, end: number, direction: EditorSelection['direction']]>;
21
+ }
22
+ /** Builds block-comment edits and content-preserving post-edit selections. */
23
+ declare function resolveBlockCommentEdits(textDocument: TextDocument<unknown>, selections: readonly EditorSelection[], [open, close]: readonly [string, string], linewise?: boolean): BlockCommentEditResult | undefined;
24
+ //#endregion
25
+ export { BlockCommentEditResult, LanguageConfig, LanguageConfigMap, resolveBlockCommentEdits, resolveCommentConfig, resolveLineCommentEdits };
26
+ //# sourceMappingURL=languages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"languages.d.ts","names":[],"sources":["../../src/editor/languages.ts"],"mappings":";;;;UAMiB,cAAA;EACf,WAAA;EACA,YAAA,aAAyB,IAAA,UAAc,KAAA;AAAA;AAAA,KAG7B,iBAAA,GAAoB,QAAA,CAAS,MAAA,SAAe,cAAA;AAAA,UAE9C,sBAAA;EACR,WAAA;EACA,YAAA,YAAwB,IAAA,UAAc,KAAA;AAAA;;iBAwCxB,oBAAA,CACd,UAAA,UACA,SAAA,GAAY,iBAAA,GACX,sBAAsB;AAlDqB;AAAA,iBAyE9B,uBAAA,CACd,YAAA,EAAc,YAAA,WACd,UAAA,WAAqB,eAAA,IACrB,KAAA,WACC,QAAA;AAAA,UA+Fc,sBAAA;EACf,KAAA,EAAO,QAAA;EACP,oBAAA,EAAsB,KAAA,WAElB,KAAA,UACA,GAAA,UACA,SAAA,EAAW,eAAA;AAAA;;iBA+HD,wBAAA,CACd,YAAA,EAAc,YAAA,WACd,UAAA,WAAqB,eAAA,KACpB,IAAA,EAAM,KAAA,8BACP,QAAA,aACC,sBAAA"}
@@ -0,0 +1,363 @@
1
+ //#region src/editor/languages.ts
2
+ const DEFAULT_LINE_COMMENT = "//";
3
+ const DEFAULT_BLOCK_COMMENT = ["/*", "*/"];
4
+ const LANGUAGE_COMMENT_CONFIGS = {
5
+ sql: { lineComment: "--" },
6
+ ruby: {
7
+ lineComment: "#",
8
+ blockComment: ["=begin", "=end"]
9
+ },
10
+ rst: { lineComment: ".." },
11
+ coffeescript: {
12
+ lineComment: "#",
13
+ blockComment: ["###", "###"]
14
+ },
15
+ cmd: { lineComment: "@REM" },
16
+ julia: {
17
+ lineComment: "#",
18
+ blockComment: ["#=", "=#"]
19
+ },
20
+ yaml: { lineComment: "#" },
21
+ yml: { lineComment: "#" },
22
+ markdown: {
23
+ lineComment: null,
24
+ blockComment: ["<!--", "-->"]
25
+ },
26
+ zsh: { lineComment: "#" },
27
+ makefile: { lineComment: "#" },
28
+ handlebars: {
29
+ lineComment: null,
30
+ blockComment: ["{{!--", "--}}"]
31
+ },
32
+ ini: {
33
+ lineComment: ";",
34
+ blockComment: [";", " "]
35
+ },
36
+ powershell: {
37
+ lineComment: "#",
38
+ blockComment: ["<#", "#>"]
39
+ },
40
+ vb: { lineComment: "'" },
41
+ xml: {
42
+ lineComment: null,
43
+ blockComment: ["<!--", "-->"]
44
+ },
45
+ lua: {
46
+ lineComment: "--",
47
+ blockComment: ["--[[", "]]"]
48
+ },
49
+ html: {
50
+ lineComment: null,
51
+ blockComment: ["<!--", "-->"]
52
+ },
53
+ diff: {
54
+ lineComment: "#",
55
+ blockComment: ["#", " "]
56
+ },
57
+ r: { lineComment: "#" },
58
+ fsharp: { blockComment: ["(*", "*)"] },
59
+ pug: { lineComment: "//-" },
60
+ perl: { lineComment: "#" },
61
+ tex: { lineComment: "%" },
62
+ clojure: { lineComment: ";;" },
63
+ css: { lineComment: null },
64
+ python: {
65
+ lineComment: "#",
66
+ blockComment: ["\"\"\"", "\"\"\""]
67
+ },
68
+ dotenv: { lineComment: "#" },
69
+ dockerfile: { lineComment: "#" },
70
+ razor: {
71
+ lineComment: null,
72
+ blockComment: ["<!--", "-->"]
73
+ },
74
+ prompt: {
75
+ lineComment: null,
76
+ blockComment: ["<!--", "-->"]
77
+ }
78
+ };
79
+ /** Resolves language-specific comment tokens over the editor defaults. */
80
+ function resolveCommentConfig(languageId, overrides) {
81
+ const config = {
82
+ ...LANGUAGE_COMMENT_CONFIGS[languageId],
83
+ ...overrides?.[languageId]
84
+ };
85
+ return {
86
+ lineComment: config.lineComment === void 0 ? DEFAULT_LINE_COMMENT : config.lineComment,
87
+ blockComment: config.blockComment ?? DEFAULT_BLOCK_COMMENT
88
+ };
89
+ }
90
+ /** Builds one aligned batch of line-comment edits for all selected lines. */
91
+ function resolveLineCommentEdits(textDocument, selections, token) {
92
+ const lines = [];
93
+ const seenLines = /* @__PURE__ */ new Set();
94
+ for (const selection of selections) {
95
+ let endLine = selection.end.line;
96
+ if (selection.start.line < endLine && selection.end.character === 0) endLine--;
97
+ const startIndex = lines.length;
98
+ let minIndent = Infinity;
99
+ for (let line = selection.start.line; line <= endLine; line++) {
100
+ if (seenLines.has(line)) continue;
101
+ seenLines.add(line);
102
+ const text = textDocument.getLineText(line);
103
+ const indent = text.length - text.trimStart().length;
104
+ const empty = indent === text.length;
105
+ if (!empty) minIndent = Math.min(minIndent, indent);
106
+ lines.push({
107
+ line,
108
+ comment: text.slice(indent, indent + token.length) === token ? indent : -1,
109
+ empty,
110
+ indent,
111
+ single: false
112
+ });
113
+ }
114
+ if (minIndent !== Infinity) {
115
+ for (let index = startIndex; index < lines.length; index++) if (!lines[index].empty) lines[index].indent = minIndent;
116
+ }
117
+ if (lines.length === startIndex + 1) lines[startIndex].single = true;
118
+ }
119
+ const shouldComment = lines.some((line) => line.comment < 0 && (!line.empty || line.single));
120
+ const edits = [];
121
+ if (shouldComment) {
122
+ for (const line of lines) {
123
+ if (line.empty && !line.single) continue;
124
+ const position = {
125
+ line: line.line,
126
+ character: line.indent
127
+ };
128
+ edits.push({
129
+ range: {
130
+ start: position,
131
+ end: position
132
+ },
133
+ newText: token + " "
134
+ });
135
+ }
136
+ return edits;
137
+ }
138
+ for (const line of lines) {
139
+ if (line.comment < 0) continue;
140
+ const text = textDocument.getLineText(line.line);
141
+ const start = line.comment;
142
+ const end = start + token.length + (text[start + token.length] === " " ? 1 : 0);
143
+ edits.push({
144
+ range: {
145
+ start: {
146
+ line: line.line,
147
+ character: start
148
+ },
149
+ end: {
150
+ line: line.line,
151
+ character: end
152
+ }
153
+ },
154
+ newText: ""
155
+ });
156
+ }
157
+ return edits;
158
+ }
159
+ const BLOCK_COMMENT_SEARCH_MARGIN = 50;
160
+ function findBlockComment(textDocument, open, close, from, to) {
161
+ const beforeStart = Math.max(0, from - BLOCK_COMMENT_SEARCH_MARGIN);
162
+ const textBefore = textDocument.getTextSlice(beforeStart, from);
163
+ const textAfter = textDocument.getTextSlice(to, to + BLOCK_COMMENT_SEARCH_MARGIN);
164
+ const spaceBefore = textBefore.length - textBefore.trimEnd().length;
165
+ const spaceAfter = textAfter.length - textAfter.trimStart().length;
166
+ const beforeOffset = textBefore.length - spaceBefore;
167
+ if (textBefore.slice(beforeOffset - open.length, beforeOffset) === open && textAfter.slice(spaceAfter, spaceAfter + close.length) === close) return {
168
+ open: {
169
+ start: from - spaceBefore - open.length,
170
+ end: from - spaceBefore + (spaceBefore > 0 ? 1 : 0),
171
+ text: ""
172
+ },
173
+ close: {
174
+ start: to + spaceAfter - (spaceAfter > 0 ? 1 : 0),
175
+ end: to + spaceAfter + close.length,
176
+ text: ""
177
+ },
178
+ contentStart: from,
179
+ contentEnd: to
180
+ };
181
+ const shortText = to - from <= BLOCK_COMMENT_SEARCH_MARGIN * 2 ? textDocument.getTextSlice(from, to) : void 0;
182
+ const startText = shortText ?? textDocument.getTextSlice(from, from + BLOCK_COMMENT_SEARCH_MARGIN);
183
+ const endText = shortText ?? textDocument.getTextSlice(to - BLOCK_COMMENT_SEARCH_MARGIN, to);
184
+ const startSpace = startText.length - startText.trimStart().length;
185
+ const closeStart = to - (endText.length - endText.trimEnd().length) - close.length;
186
+ if (startText.slice(startSpace, startSpace + open.length) !== open || textDocument.getTextSlice(closeStart, closeStart + close.length) !== close) return;
187
+ const openStart = from + startSpace;
188
+ const openEnd = openStart + open.length + (/\s/.test(startText[open.length + startSpace] ?? "") ? 1 : 0);
189
+ const closeDeleteStart = closeStart - (/\s/.test(textDocument.getTextSlice(closeStart - 1, closeStart)) ? 1 : 0);
190
+ return {
191
+ open: {
192
+ start: openStart,
193
+ end: openEnd,
194
+ text: ""
195
+ },
196
+ close: {
197
+ start: closeDeleteStart,
198
+ end: closeStart + close.length,
199
+ text: ""
200
+ },
201
+ contentStart: openEnd,
202
+ contentEnd: closeDeleteStart
203
+ };
204
+ }
205
+ function mapOffset(offset, edits, cumulativeDeltas, association) {
206
+ let low = 0;
207
+ let high = edits.length;
208
+ while (low < high) {
209
+ const middle = low + high >>> 1;
210
+ if (edits[middle].end < offset) low = middle + 1;
211
+ else high = middle;
212
+ }
213
+ let delta = cumulativeDeltas[low];
214
+ for (let index = low; index < edits.length; index++) {
215
+ const edit = edits[index];
216
+ if (offset < edit.start) break;
217
+ if (edit.start === edit.end && offset === edit.start) {
218
+ if (association < 0) break;
219
+ delta += edit.text.length;
220
+ continue;
221
+ }
222
+ if (offset > edit.end) {
223
+ delta += edit.text.length - (edit.end - edit.start);
224
+ continue;
225
+ }
226
+ if (offset === edit.end) return edit.start + delta + edit.text.length;
227
+ return edit.start + delta + (association > 0 ? edit.text.length : 0);
228
+ }
229
+ return offset + delta;
230
+ }
231
+ /** Builds block-comment edits and content-preserving post-edit selections. */
232
+ function resolveBlockCommentEdits(textDocument, selections, [open, close], linewise = false) {
233
+ const ranges = selections.map((selection) => {
234
+ let { start, end } = selection;
235
+ if (linewise) {
236
+ let endLine = end.line;
237
+ if (start.line < endLine && end.character === 0) endLine--;
238
+ const firstLine = textDocument.getLineText(start.line);
239
+ const indent = firstLine.length - firstLine.trimStart().length;
240
+ start = {
241
+ line: start.line,
242
+ character: indent
243
+ };
244
+ end = {
245
+ line: endLine,
246
+ character: textDocument.getLineLength(endLine)
247
+ };
248
+ }
249
+ return {
250
+ from: textDocument.offsetAt(start),
251
+ to: textDocument.offsetAt(end),
252
+ direction: selection.direction,
253
+ comment: void 0
254
+ };
255
+ });
256
+ if (linewise && ranges.length > 1) {
257
+ ranges.sort((a, b) => {
258
+ const startOrder = a.from - b.from;
259
+ return startOrder !== 0 ? startOrder : a.to - b.to;
260
+ });
261
+ let lastRangeIndex = 0;
262
+ for (let index = 1; index < ranges.length; index++) {
263
+ const previous = ranges[lastRangeIndex];
264
+ const current = ranges[index];
265
+ if (current.from <= previous.to) previous.to = Math.max(previous.to, current.to);
266
+ else ranges[++lastRangeIndex] = current;
267
+ }
268
+ ranges.length = lastRangeIndex + 1;
269
+ }
270
+ for (const range of ranges) range.comment = findBlockComment(textDocument, open, close, range.from, range.to);
271
+ const shouldUncomment = ranges.every((range) => range.comment !== void 0);
272
+ const offsetEdits = [];
273
+ for (const range of ranges) {
274
+ const comment = range.comment;
275
+ if (shouldUncomment && comment !== void 0) {
276
+ offsetEdits.push(comment.open, comment.close);
277
+ continue;
278
+ }
279
+ if (comment !== void 0) continue;
280
+ if (range.from === range.to) {
281
+ offsetEdits.push({
282
+ start: range.from,
283
+ end: range.to,
284
+ text: open + " " + close
285
+ });
286
+ continue;
287
+ }
288
+ offsetEdits.push({
289
+ start: range.from,
290
+ end: range.from,
291
+ text: open + " "
292
+ }, {
293
+ start: range.to,
294
+ end: range.to,
295
+ text: " " + close
296
+ });
297
+ }
298
+ if (offsetEdits.length === 0) return;
299
+ offsetEdits.sort((a, b) => {
300
+ const startOrder = a.start - b.start;
301
+ return startOrder !== 0 ? startOrder : a.end - b.end;
302
+ });
303
+ const edits = offsetEdits.map((edit) => ({
304
+ range: {
305
+ start: textDocument.positionAt(edit.start),
306
+ end: textDocument.positionAt(edit.end)
307
+ },
308
+ newText: edit.text
309
+ }));
310
+ if (linewise) return {
311
+ edits,
312
+ nextSelectionOffsets: []
313
+ };
314
+ const logicalRanges = ranges.map((range) => {
315
+ const comment = range.comment;
316
+ if (shouldUncomment && comment !== void 0) return {
317
+ start: comment.contentStart,
318
+ end: comment.contentEnd,
319
+ startAssociation: 1,
320
+ endAssociation: -1
321
+ };
322
+ if (comment !== void 0) return {
323
+ start: range.from,
324
+ end: range.to,
325
+ startAssociation: 1,
326
+ endAssociation: 1
327
+ };
328
+ if (range.from === range.to) return {
329
+ start: range.from,
330
+ end: range.to,
331
+ startAssociation: -1,
332
+ endAssociation: -1,
333
+ collapsedInset: open.length + 1
334
+ };
335
+ return {
336
+ start: range.from,
337
+ end: range.to,
338
+ startAssociation: 1,
339
+ endAssociation: -1
340
+ };
341
+ });
342
+ const cumulativeDeltas = new Array(offsetEdits.length + 1);
343
+ cumulativeDeltas[0] = 0;
344
+ for (let index = 0; index < offsetEdits.length; index++) {
345
+ const edit = offsetEdits[index];
346
+ cumulativeDeltas[index + 1] = cumulativeDeltas[index] + edit.text.length - (edit.end - edit.start);
347
+ }
348
+ return {
349
+ edits,
350
+ nextSelectionOffsets: logicalRanges.map((range, index) => {
351
+ const start = mapOffset(range.start, offsetEdits, cumulativeDeltas, range.startAssociation) + (range.collapsedInset ?? 0);
352
+ return [
353
+ start,
354
+ range.collapsedInset === void 0 ? mapOffset(range.end, offsetEdits, cumulativeDeltas, range.endAssociation) : start,
355
+ ranges[index].direction
356
+ ];
357
+ })
358
+ };
359
+ }
360
+ //#endregion
361
+ export { resolveBlockCommentEdits, resolveCommentConfig, resolveLineCommentEdits };
362
+
363
+ //# sourceMappingURL=languages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"languages.js","names":[],"sources":["../../src/editor/languages.ts"],"sourcesContent":["import type { EditorSelection, TextEdit } from '../types';\nimport type { TextDocument } from './textDocument';\n\nconst DEFAULT_LINE_COMMENT = '//';\nconst DEFAULT_BLOCK_COMMENT = ['/*', '*/'] as const;\n\nexport interface LanguageConfig {\n lineComment?: string | null;\n blockComment?: readonly [open: string, close: string];\n}\n\nexport type LanguageConfigMap = Readonly<Record<string, LanguageConfig>>;\n\ninterface ResolvedLanguageConfig {\n lineComment: string | null;\n blockComment: readonly [open: string, close: string];\n}\n\n// Language comment configurations\n// Languages matching DEFAULT_LINE_COMMENT and DEFAULT_BLOCK_COMMENT are omitted.\nconst LANGUAGE_COMMENT_CONFIGS: LanguageConfigMap = {\n sql: { lineComment: '--' },\n ruby: { lineComment: '#', blockComment: ['=begin', '=end'] },\n rst: { lineComment: '..' },\n coffeescript: { lineComment: '#', blockComment: ['###', '###'] },\n cmd: { lineComment: '@REM' },\n julia: { lineComment: '#', blockComment: ['#=', '=#'] },\n yaml: { lineComment: '#' },\n yml: { lineComment: '#' },\n markdown: { lineComment: null, blockComment: ['<!--', '-->'] },\n zsh: { lineComment: '#' },\n makefile: { lineComment: '#' },\n handlebars: { lineComment: null, blockComment: ['{{!--', '--}}'] },\n ini: { lineComment: ';', blockComment: [';', ' '] },\n powershell: { lineComment: '#', blockComment: ['<#', '#>'] },\n vb: { lineComment: \"'\" },\n xml: { lineComment: null, blockComment: ['<!--', '-->'] },\n lua: { lineComment: '--', blockComment: ['--[[', ']]'] },\n html: { lineComment: null, blockComment: ['<!--', '-->'] },\n diff: { lineComment: '#', blockComment: ['#', ' '] },\n r: { lineComment: '#' },\n fsharp: { blockComment: ['(*', '*)'] },\n pug: { lineComment: '//-' },\n perl: { lineComment: '#' },\n tex: { lineComment: '%' },\n clojure: { lineComment: ';;' },\n css: { lineComment: null },\n python: { lineComment: '#', blockComment: ['\"\"\"', '\"\"\"'] },\n dotenv: { lineComment: '#' },\n dockerfile: { lineComment: '#' },\n razor: { lineComment: null, blockComment: ['<!--', '-->'] },\n prompt: { lineComment: null, blockComment: ['<!--', '-->'] },\n};\n\n/** Resolves language-specific comment tokens over the editor defaults. */\nexport function resolveCommentConfig(\n languageId: string,\n overrides?: LanguageConfigMap\n): ResolvedLanguageConfig {\n const config = {\n ...LANGUAGE_COMMENT_CONFIGS[languageId],\n ...overrides?.[languageId],\n };\n return {\n lineComment:\n config.lineComment === undefined\n ? DEFAULT_LINE_COMMENT\n : config.lineComment,\n blockComment: config.blockComment ?? DEFAULT_BLOCK_COMMENT,\n };\n}\n\ninterface LineCommentInfo {\n line: number;\n comment: number;\n empty: boolean;\n indent: number;\n single: boolean;\n}\n\n/** Builds one aligned batch of line-comment edits for all selected lines. */\nexport function resolveLineCommentEdits(\n textDocument: TextDocument<unknown>,\n selections: readonly EditorSelection[],\n token: string\n): TextEdit[] {\n const lines: LineCommentInfo[] = [];\n const seenLines = new Set<number>();\n\n for (const selection of selections) {\n let endLine = selection.end.line;\n if (selection.start.line < endLine && selection.end.character === 0) {\n endLine--;\n }\n\n const startIndex = lines.length;\n let minIndent = Infinity;\n for (let line = selection.start.line; line <= endLine; line++) {\n if (seenLines.has(line)) {\n continue;\n }\n seenLines.add(line);\n const text = textDocument.getLineText(line);\n const indent = text.length - text.trimStart().length;\n const empty = indent === text.length;\n if (!empty) {\n minIndent = Math.min(minIndent, indent);\n }\n lines.push({\n line,\n comment:\n text.slice(indent, indent + token.length) === token ? indent : -1,\n empty,\n indent,\n single: false,\n });\n }\n\n if (minIndent !== Infinity) {\n for (let index = startIndex; index < lines.length; index++) {\n if (!lines[index].empty) {\n lines[index].indent = minIndent;\n }\n }\n }\n if (lines.length === startIndex + 1) {\n lines[startIndex].single = true;\n }\n }\n\n const shouldComment = lines.some(\n (line) => line.comment < 0 && (!line.empty || line.single)\n );\n const edits: TextEdit[] = [];\n if (shouldComment) {\n for (const line of lines) {\n if (line.empty && !line.single) {\n continue;\n }\n const position = { line: line.line, character: line.indent };\n edits.push({\n range: { start: position, end: position },\n newText: token + ' ',\n });\n }\n return edits;\n }\n\n for (const line of lines) {\n if (line.comment < 0) {\n continue;\n }\n const text = textDocument.getLineText(line.line);\n const start = line.comment;\n const end =\n start + token.length + (text[start + token.length] === ' ' ? 1 : 0);\n edits.push({\n range: {\n start: { line: line.line, character: start },\n end: { line: line.line, character: end },\n },\n newText: '',\n });\n }\n return edits;\n}\n\ninterface OffsetEdit {\n start: number;\n end: number;\n text: string;\n}\n\ninterface BlockCommentMatch {\n open: OffsetEdit;\n close: OffsetEdit;\n contentStart: number;\n contentEnd: number;\n}\n\nexport interface BlockCommentEditResult {\n edits: TextEdit[];\n nextSelectionOffsets: Array<\n readonly [\n start: number,\n end: number,\n direction: EditorSelection['direction'],\n ]\n >;\n}\n\nconst BLOCK_COMMENT_SEARCH_MARGIN = 50;\n\nfunction findBlockComment(\n textDocument: TextDocument<unknown>,\n open: string,\n close: string,\n from: number,\n to: number\n): BlockCommentMatch | undefined {\n const beforeStart = Math.max(0, from - BLOCK_COMMENT_SEARCH_MARGIN);\n const textBefore = textDocument.getTextSlice(beforeStart, from);\n const textAfter = textDocument.getTextSlice(\n to,\n to + BLOCK_COMMENT_SEARCH_MARGIN\n );\n const spaceBefore = textBefore.length - textBefore.trimEnd().length;\n const spaceAfter = textAfter.length - textAfter.trimStart().length;\n const beforeOffset = textBefore.length - spaceBefore;\n if (\n textBefore.slice(beforeOffset - open.length, beforeOffset) === open &&\n textAfter.slice(spaceAfter, spaceAfter + close.length) === close\n ) {\n return {\n open: {\n start: from - spaceBefore - open.length,\n end: from - spaceBefore + (spaceBefore > 0 ? 1 : 0),\n text: '',\n },\n close: {\n start: to + spaceAfter - (spaceAfter > 0 ? 1 : 0),\n end: to + spaceAfter + close.length,\n text: '',\n },\n contentStart: from,\n contentEnd: to,\n };\n }\n\n const length = to - from;\n const shortText =\n length <= BLOCK_COMMENT_SEARCH_MARGIN * 2\n ? textDocument.getTextSlice(from, to)\n : undefined;\n const startText =\n shortText ??\n textDocument.getTextSlice(from, from + BLOCK_COMMENT_SEARCH_MARGIN);\n const endText =\n shortText ??\n textDocument.getTextSlice(to - BLOCK_COMMENT_SEARCH_MARGIN, to);\n const startSpace = startText.length - startText.trimStart().length;\n const endSpace = endText.length - endText.trimEnd().length;\n const closeStart = to - endSpace - close.length;\n if (\n startText.slice(startSpace, startSpace + open.length) !== open ||\n textDocument.getTextSlice(closeStart, closeStart + close.length) !== close\n ) {\n return undefined;\n }\n\n const openStart = from + startSpace;\n const openEnd =\n openStart +\n open.length +\n (/\\s/.test(startText[open.length + startSpace] ?? '') ? 1 : 0);\n const closeDeleteStart =\n closeStart -\n (/\\s/.test(textDocument.getTextSlice(closeStart - 1, closeStart)) ? 1 : 0);\n return {\n open: { start: openStart, end: openEnd, text: '' },\n close: {\n start: closeDeleteStart,\n end: closeStart + close.length,\n text: '',\n },\n contentStart: openEnd,\n contentEnd: closeDeleteStart,\n };\n}\n\nfunction mapOffset(\n offset: number,\n edits: readonly OffsetEdit[],\n cumulativeDeltas: readonly number[],\n association: -1 | 1\n): number {\n let low = 0;\n let high = edits.length;\n while (low < high) {\n const middle = (low + high) >>> 1;\n if (edits[middle].end < offset) {\n low = middle + 1;\n } else {\n high = middle;\n }\n }\n\n let delta = cumulativeDeltas[low];\n for (let index = low; index < edits.length; index++) {\n const edit = edits[index];\n if (offset < edit.start) {\n break;\n }\n if (edit.start === edit.end && offset === edit.start) {\n if (association < 0) {\n break;\n }\n delta += edit.text.length;\n continue;\n }\n if (offset > edit.end) {\n delta += edit.text.length - (edit.end - edit.start);\n continue;\n }\n if (offset === edit.end) {\n return edit.start + delta + edit.text.length;\n }\n return edit.start + delta + (association > 0 ? edit.text.length : 0);\n }\n return offset + delta;\n}\n\n/** Builds block-comment edits and content-preserving post-edit selections. */\nexport function resolveBlockCommentEdits(\n textDocument: TextDocument<unknown>,\n selections: readonly EditorSelection[],\n [open, close]: readonly [string, string],\n linewise = false\n): BlockCommentEditResult | undefined {\n const ranges = selections.map((selection) => {\n let { start, end } = selection;\n if (linewise) {\n let endLine = end.line;\n if (start.line < endLine && end.character === 0) {\n endLine--;\n }\n const firstLine = textDocument.getLineText(start.line);\n const indent = firstLine.length - firstLine.trimStart().length;\n start = { line: start.line, character: indent };\n end = {\n line: endLine,\n character: textDocument.getLineLength(endLine),\n };\n }\n return {\n from: textDocument.offsetAt(start),\n to: textDocument.offsetAt(end),\n direction: selection.direction,\n comment: undefined as BlockCommentMatch | undefined,\n };\n });\n if (linewise && ranges.length > 1) {\n ranges.sort((a, b) => {\n const startOrder = a.from - b.from;\n return startOrder !== 0 ? startOrder : a.to - b.to;\n });\n let lastRangeIndex = 0;\n for (let index = 1; index < ranges.length; index++) {\n const previous = ranges[lastRangeIndex];\n const current = ranges[index];\n if (current.from <= previous.to) {\n previous.to = Math.max(previous.to, current.to);\n } else {\n ranges[++lastRangeIndex] = current;\n }\n }\n ranges.length = lastRangeIndex + 1;\n }\n for (const range of ranges) {\n range.comment = findBlockComment(\n textDocument,\n open,\n close,\n range.from,\n range.to\n );\n }\n\n const shouldUncomment = ranges.every((range) => range.comment !== undefined);\n const offsetEdits: OffsetEdit[] = [];\n for (const range of ranges) {\n const comment = range.comment;\n if (shouldUncomment && comment !== undefined) {\n offsetEdits.push(comment.open, comment.close);\n continue;\n }\n if (comment !== undefined) {\n continue;\n }\n if (range.from === range.to) {\n offsetEdits.push({\n start: range.from,\n end: range.to,\n text: open + ' ' + close,\n });\n continue;\n }\n offsetEdits.push(\n { start: range.from, end: range.from, text: open + ' ' },\n { start: range.to, end: range.to, text: ' ' + close }\n );\n }\n\n if (offsetEdits.length === 0) {\n return undefined;\n }\n offsetEdits.sort((a, b) => {\n const startOrder = a.start - b.start;\n return startOrder !== 0 ? startOrder : a.end - b.end;\n });\n const edits = offsetEdits.map((edit) => ({\n range: {\n start: textDocument.positionAt(edit.start),\n end: textDocument.positionAt(edit.end),\n },\n newText: edit.text,\n }));\n if (linewise) {\n return { edits, nextSelectionOffsets: [] };\n }\n\n const logicalRanges: Array<{\n start: number;\n end: number;\n startAssociation: -1 | 1;\n endAssociation: -1 | 1;\n collapsedInset?: number;\n }> = ranges.map((range) => {\n const comment = range.comment;\n if (shouldUncomment && comment !== undefined) {\n return {\n start: comment.contentStart,\n end: comment.contentEnd,\n startAssociation: 1,\n endAssociation: -1,\n };\n }\n if (comment !== undefined) {\n return {\n start: range.from,\n end: range.to,\n startAssociation: 1,\n endAssociation: 1,\n };\n }\n if (range.from === range.to) {\n return {\n start: range.from,\n end: range.to,\n startAssociation: -1,\n endAssociation: -1,\n collapsedInset: open.length + 1,\n };\n }\n return {\n start: range.from,\n end: range.to,\n startAssociation: 1,\n endAssociation: -1,\n };\n });\n const cumulativeDeltas = new Array<number>(offsetEdits.length + 1);\n cumulativeDeltas[0] = 0;\n for (let index = 0; index < offsetEdits.length; index++) {\n const edit = offsetEdits[index];\n cumulativeDeltas[index + 1] =\n cumulativeDeltas[index] + edit.text.length - (edit.end - edit.start);\n }\n const nextSelectionOffsets = logicalRanges.map((range, index) => {\n const start =\n mapOffset(\n range.start,\n offsetEdits,\n cumulativeDeltas,\n range.startAssociation\n ) + (range.collapsedInset ?? 0);\n const end =\n range.collapsedInset === undefined\n ? mapOffset(\n range.end,\n offsetEdits,\n cumulativeDeltas,\n range.endAssociation\n )\n : start;\n return [start, end, ranges[index].direction] as const;\n });\n\n return {\n edits,\n nextSelectionOffsets,\n };\n}\n"],"mappings":"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"}
@@ -3,6 +3,7 @@ import { TextDocumentChange } from "./textDocument.js";
3
3
 
4
4
  //#region src/editor/lineAnnotations.d.ts
5
5
  declare function applyDocumentChangeToLineAnnotations<T>(change: TextDocumentChange, lineAnnotations: DiffLineAnnotation<T>[]): DiffLineAnnotation<T>[] | undefined;
6
+ declare function renderLineAnnotations<LAnnotation>(lineAnnotations: DiffLineAnnotation<LAnnotation>[], contentEl: HTMLElement, gutterEl?: HTMLElement): void;
6
7
  //#endregion
7
- export { applyDocumentChangeToLineAnnotations };
8
+ export { applyDocumentChangeToLineAnnotations, renderLineAnnotations };
8
9
  //# sourceMappingURL=lineAnnotations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lineAnnotations.d.ts","names":["DiffLineAnnotation","TextDocumentChange","applyDocumentChangeToLineAnnotations","T"],"sources":["../../src/editor/lineAnnotations.d.ts"],"sourcesContent":["import type { DiffLineAnnotation } from '../types';\nimport type { TextDocumentChange } from './textDocument';\nexport declare function applyDocumentChangeToLineAnnotations<T>(change: TextDocumentChange, lineAnnotations: DiffLineAnnotation<T>[]): DiffLineAnnotation<T>[] | undefined;\n//# sourceMappingURL=lineAnnotations.d.ts.map"],"mappings":";;;;iBAEwBE,gDAAgDD,qCAAqCD,mBAAmBG,OAAOH,mBAAmBG"}
1
+ {"version":3,"file":"lineAnnotations.d.ts","names":[],"sources":["../../src/editor/lineAnnotations.ts"],"mappings":";;;;iBAcgB,oCAAA,IACd,MAAA,EAAQ,kBAAA,EACR,eAAA,EAAiB,kBAAA,CAAmB,CAAA,MACnC,kBAAA,CAAmB,CAAA;AAAA,iBAgNN,qBAAA,cACd,eAAA,EAAiB,kBAAA,CAAmB,WAAA,KACpC,SAAA,EAAW,WAAA,EACX,QAAA,GAAW,WAAA"}