@pierre/diffs 1.2.12 → 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 (288) hide show
  1. package/dist/components/CodeView.d.ts +91 -6
  2. package/dist/components/CodeView.d.ts.map +1 -1
  3. package/dist/components/CodeView.js +300 -38
  4. package/dist/components/CodeView.js.map +1 -1
  5. package/dist/components/File.d.ts +14 -3
  6. package/dist/components/File.d.ts.map +1 -1
  7. package/dist/components/File.js +98 -12
  8. package/dist/components/File.js.map +1 -1
  9. package/dist/components/FileDiff.d.ts +68 -19
  10. package/dist/components/FileDiff.d.ts.map +1 -1
  11. package/dist/components/FileDiff.js +363 -25
  12. package/dist/components/FileDiff.js.map +1 -1
  13. package/dist/components/FileStream.d.ts.map +1 -1
  14. package/dist/components/FileStream.js +2 -1
  15. package/dist/components/FileStream.js.map +1 -1
  16. package/dist/components/UnresolvedFile.d.ts +2 -2
  17. package/dist/components/UnresolvedFile.d.ts.map +1 -1
  18. package/dist/components/UnresolvedFile.js +2 -2
  19. package/dist/components/UnresolvedFile.js.map +1 -1
  20. package/dist/components/VirtualizedFile.d.ts +4 -2
  21. package/dist/components/VirtualizedFile.d.ts.map +1 -1
  22. package/dist/components/VirtualizedFile.js +59 -47
  23. package/dist/components/VirtualizedFile.js.map +1 -1
  24. package/dist/components/VirtualizedFileDiff.d.ts +27 -5
  25. package/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
  26. package/dist/components/VirtualizedFileDiff.js +262 -56
  27. package/dist/components/VirtualizedFileDiff.js.map +1 -1
  28. package/dist/components/Virtualizer.d.ts +4 -1
  29. package/dist/components/Virtualizer.d.ts.map +1 -1
  30. package/dist/components/Virtualizer.js +21 -4
  31. package/dist/components/Virtualizer.js.map +1 -1
  32. package/dist/constants.d.ts +4 -1
  33. package/dist/constants.d.ts.map +1 -1
  34. package/dist/constants.js +4 -1
  35. package/dist/constants.js.map +1 -1
  36. package/dist/editor/command.d.ts +7 -0
  37. package/dist/editor/command.d.ts.map +1 -0
  38. package/dist/editor/command.js +54 -0
  39. package/dist/editor/command.js.map +1 -0
  40. package/dist/editor/editStack.d.ts +71 -0
  41. package/dist/editor/editStack.d.ts.map +1 -0
  42. package/dist/editor/editStack.js +218 -0
  43. package/dist/editor/editStack.js.map +1 -0
  44. package/dist/editor/editor.d.ts +105 -0
  45. package/dist/editor/editor.d.ts.map +1 -0
  46. package/dist/editor/editor.js +2545 -0
  47. package/dist/editor/editor.js.map +1 -0
  48. package/dist/editor/editor2.js +6 -0
  49. package/dist/editor/editor2.js.map +1 -0
  50. package/dist/editor/index.d.ts +5 -0
  51. package/dist/editor/index.js +3 -0
  52. package/dist/editor/languages.d.ts +26 -0
  53. package/dist/editor/languages.d.ts.map +1 -0
  54. package/dist/editor/languages.js +363 -0
  55. package/dist/editor/languages.js.map +1 -0
  56. package/dist/editor/lineAnnotations.d.ts +9 -0
  57. package/dist/editor/lineAnnotations.d.ts.map +1 -0
  58. package/dist/editor/lineAnnotations.js +212 -0
  59. package/dist/editor/lineAnnotations.js.map +1 -0
  60. package/dist/editor/marker.d.ts +38 -0
  61. package/dist/editor/marker.d.ts.map +1 -0
  62. package/dist/editor/marker.js +245 -0
  63. package/dist/editor/marker.js.map +1 -0
  64. package/dist/editor/matchBrackets.d.ts +9 -0
  65. package/dist/editor/matchBrackets.d.ts.map +1 -0
  66. package/dist/editor/matchBrackets.js +138 -0
  67. package/dist/editor/matchBrackets.js.map +1 -0
  68. package/dist/editor/pieceTable.d.ts +41 -0
  69. package/dist/editor/pieceTable.d.ts.map +1 -0
  70. package/dist/editor/pieceTable.js +671 -0
  71. package/dist/editor/pieceTable.js.map +1 -0
  72. package/dist/editor/platform.d.ts +19 -0
  73. package/dist/editor/platform.d.ts.map +1 -0
  74. package/dist/editor/platform.js +57 -0
  75. package/dist/editor/platform.js.map +1 -0
  76. package/dist/editor/popover.d.ts +65 -0
  77. package/dist/editor/popover.d.ts.map +1 -0
  78. package/dist/editor/popover.js +187 -0
  79. package/dist/editor/popover.js.map +1 -0
  80. package/dist/editor/searchPanel.d.ts +40 -0
  81. package/dist/editor/searchPanel.d.ts.map +1 -0
  82. package/dist/editor/searchPanel.js +318 -0
  83. package/dist/editor/searchPanel.js.map +1 -0
  84. package/dist/editor/selection.d.ts +211 -0
  85. package/dist/editor/selection.d.ts.map +1 -0
  86. package/dist/editor/selection.js +1626 -0
  87. package/dist/editor/selection.js.map +1 -0
  88. package/dist/editor/selectionAction.d.ts +46 -0
  89. package/dist/editor/selectionAction.d.ts.map +1 -0
  90. package/dist/editor/selectionAction.js +64 -0
  91. package/dist/editor/selectionAction.js.map +1 -0
  92. package/dist/editor/sprite.d.ts +8 -0
  93. package/dist/editor/sprite.d.ts.map +1 -0
  94. package/dist/editor/sprite.js +45 -0
  95. package/dist/editor/sprite.js.map +1 -0
  96. package/dist/editor/stateStorage.d.ts +15 -0
  97. package/dist/editor/stateStorage.d.ts.map +1 -0
  98. package/dist/editor/stateStorage.js +65 -0
  99. package/dist/editor/stateStorage.js.map +1 -0
  100. package/dist/editor/textDocument.d.ts +77 -0
  101. package/dist/editor/textDocument.d.ts.map +1 -0
  102. package/dist/editor/textDocument.js +271 -0
  103. package/dist/editor/textDocument.js.map +1 -0
  104. package/dist/editor/textMeasure.d.ts +61 -0
  105. package/dist/editor/textMeasure.d.ts.map +1 -0
  106. package/dist/editor/textMeasure.js +209 -0
  107. package/dist/editor/textMeasure.js.map +1 -0
  108. package/dist/editor/tokenizer.d.ts +41 -0
  109. package/dist/editor/tokenizer.d.ts.map +1 -0
  110. package/dist/editor/tokenizer.js +513 -0
  111. package/dist/editor/tokenizer.js.map +1 -0
  112. package/dist/editor/utils.d.ts +21 -0
  113. package/dist/editor/utils.d.ts.map +1 -0
  114. package/dist/editor/utils.js +68 -0
  115. package/dist/editor/utils.js.map +1 -0
  116. package/dist/index.d.ts +10 -8
  117. package/dist/index.js +12 -10
  118. package/dist/managers/InteractionManager.d.ts +7 -0
  119. package/dist/managers/InteractionManager.d.ts.map +1 -1
  120. package/dist/managers/InteractionManager.js +22 -1
  121. package/dist/managers/InteractionManager.js.map +1 -1
  122. package/dist/managers/ResizeManager.d.ts +10 -2
  123. package/dist/managers/ResizeManager.d.ts.map +1 -1
  124. package/dist/managers/ResizeManager.js +33 -13
  125. package/dist/managers/ResizeManager.js.map +1 -1
  126. package/dist/managers/UniversalRenderingManager.d.ts +2 -1
  127. package/dist/managers/UniversalRenderingManager.d.ts.map +1 -1
  128. package/dist/managers/UniversalRenderingManager.js +6 -1
  129. package/dist/managers/UniversalRenderingManager.js.map +1 -1
  130. package/dist/react/CodeView.d.ts +26 -1
  131. package/dist/react/CodeView.d.ts.map +1 -1
  132. package/dist/react/CodeView.js +82 -19
  133. package/dist/react/CodeView.js.map +1 -1
  134. package/dist/react/EditContext.d.ts +15 -0
  135. package/dist/react/EditContext.d.ts.map +1 -0
  136. package/dist/react/EditContext.js +23 -0
  137. package/dist/react/EditContext.js.map +1 -0
  138. package/dist/react/File.d.ts +3 -1
  139. package/dist/react/File.d.ts.map +1 -1
  140. package/dist/react/File.js +4 -2
  141. package/dist/react/File.js.map +1 -1
  142. package/dist/react/FileDiff.d.ts +4 -1
  143. package/dist/react/FileDiff.d.ts.map +1 -1
  144. package/dist/react/FileDiff.js +4 -2
  145. package/dist/react/FileDiff.js.map +1 -1
  146. package/dist/react/MultiFileDiff.d.ts +7 -5
  147. package/dist/react/MultiFileDiff.d.ts.map +1 -1
  148. package/dist/react/MultiFileDiff.js +4 -2
  149. package/dist/react/MultiFileDiff.js.map +1 -1
  150. package/dist/react/PatchDiff.d.ts +4 -1
  151. package/dist/react/PatchDiff.d.ts.map +1 -1
  152. package/dist/react/PatchDiff.js +4 -2
  153. package/dist/react/PatchDiff.js.map +1 -1
  154. package/dist/react/UnresolvedFile.d.ts +1 -0
  155. package/dist/react/UnresolvedFile.d.ts.map +1 -1
  156. package/dist/react/UnresolvedFile.js +2 -1
  157. package/dist/react/UnresolvedFile.js.map +1 -1
  158. package/dist/react/index.d.ts +3 -2
  159. package/dist/react/index.js +2 -1
  160. package/dist/react/types.d.ts +3 -0
  161. package/dist/react/types.d.ts.map +1 -1
  162. package/dist/react/utils/renderDiffChildren.d.ts +2 -0
  163. package/dist/react/utils/renderDiffChildren.d.ts.map +1 -1
  164. package/dist/react/utils/renderDiffChildren.js +16 -8
  165. package/dist/react/utils/renderDiffChildren.js.map +1 -1
  166. package/dist/react/utils/renderFileChildren.d.ts +2 -0
  167. package/dist/react/utils/renderFileChildren.d.ts.map +1 -1
  168. package/dist/react/utils/renderFileChildren.js +16 -8
  169. package/dist/react/utils/renderFileChildren.js.map +1 -1
  170. package/dist/react/utils/useFileDiffInstance.d.ts +3 -1
  171. package/dist/react/utils/useFileDiffInstance.d.ts.map +1 -1
  172. package/dist/react/utils/useFileDiffInstance.js +30 -6
  173. package/dist/react/utils/useFileDiffInstance.js.map +1 -1
  174. package/dist/react/utils/useFileInstance.d.ts +4 -1
  175. package/dist/react/utils/useFileInstance.d.ts.map +1 -1
  176. package/dist/react/utils/useFileInstance.js +30 -5
  177. package/dist/react/utils/useFileInstance.js.map +1 -1
  178. package/dist/renderers/DiffHunksRenderer.d.ts +28 -2
  179. package/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
  180. package/dist/renderers/DiffHunksRenderer.js +244 -22
  181. package/dist/renderers/DiffHunksRenderer.js.map +1 -1
  182. package/dist/renderers/FileRenderer.d.ts +8 -1
  183. package/dist/renderers/FileRenderer.d.ts.map +1 -1
  184. package/dist/renderers/FileRenderer.js +155 -45
  185. package/dist/renderers/FileRenderer.js.map +1 -1
  186. package/dist/ssr/index.d.ts +2 -2
  187. package/dist/ssr/preloadDiffs.d.ts +11 -10
  188. package/dist/ssr/preloadDiffs.d.ts.map +1 -1
  189. package/dist/ssr/preloadDiffs.js +15 -7
  190. package/dist/ssr/preloadDiffs.js.map +1 -1
  191. package/dist/style.js +1 -1
  192. package/dist/types.d.ts +282 -5
  193. package/dist/types.d.ts.map +1 -1
  194. package/dist/utils/applyLineTextWithNewline.d.ts +5 -0
  195. package/dist/utils/applyLineTextWithNewline.d.ts.map +1 -0
  196. package/dist/utils/applyLineTextWithNewline.js +11 -0
  197. package/dist/utils/applyLineTextWithNewline.js.map +1 -0
  198. package/dist/utils/areHunkDataEqual.js +1 -1
  199. package/dist/utils/areHunkDataEqual.js.map +1 -1
  200. package/dist/utils/areManagedSnapshotsEqual.d.ts +2 -2
  201. package/dist/utils/areManagedSnapshotsEqual.d.ts.map +1 -1
  202. package/dist/utils/areManagedSnapshotsEqual.js +5 -0
  203. package/dist/utils/areManagedSnapshotsEqual.js.map +1 -1
  204. package/dist/utils/awaitWithTimeout.d.ts +5 -0
  205. package/dist/utils/awaitWithTimeout.d.ts.map +1 -0
  206. package/dist/utils/awaitWithTimeout.js +15 -0
  207. package/dist/utils/awaitWithTimeout.js.map +1 -0
  208. package/dist/utils/cleanLastNewline.js +6 -1
  209. package/dist/utils/cleanLastNewline.js.map +1 -1
  210. package/dist/utils/cloneFileDiffMetadata.d.ts +7 -0
  211. package/dist/utils/cloneFileDiffMetadata.d.ts.map +1 -0
  212. package/dist/utils/cloneFileDiffMetadata.js +16 -0
  213. package/dist/utils/cloneFileDiffMetadata.js.map +1 -0
  214. package/dist/utils/computeEstimatedDiffHeights.d.ts +3 -1
  215. package/dist/utils/computeEstimatedDiffHeights.d.ts.map +1 -1
  216. package/dist/utils/computeEstimatedDiffHeights.js +8 -1
  217. package/dist/utils/computeEstimatedDiffHeights.js.map +1 -1
  218. package/dist/utils/computeFileOffsets.d.ts +21 -0
  219. package/dist/utils/computeFileOffsets.d.ts.map +1 -0
  220. package/dist/utils/computeFileOffsets.js +51 -0
  221. package/dist/utils/computeFileOffsets.js.map +1 -0
  222. package/dist/utils/createCodeViewHeaderFooterHostElement.d.ts +5 -0
  223. package/dist/utils/createCodeViewHeaderFooterHostElement.d.ts.map +1 -0
  224. package/dist/utils/createCodeViewHeaderFooterHostElement.js +19 -0
  225. package/dist/utils/createCodeViewHeaderFooterHostElement.js.map +1 -0
  226. package/dist/utils/createFileHeaderElement.d.ts.map +1 -1
  227. package/dist/utils/createFileHeaderElement.js +5 -1
  228. package/dist/utils/createFileHeaderElement.js.map +1 -1
  229. package/dist/utils/createTransformerWithState.js +9 -0
  230. package/dist/utils/createTransformerWithState.js.map +1 -1
  231. package/dist/utils/editSessionHunks.d.ts +84 -0
  232. package/dist/utils/editSessionHunks.d.ts.map +1 -0
  233. package/dist/utils/editSessionHunks.js +366 -0
  234. package/dist/utils/editSessionHunks.js.map +1 -0
  235. package/dist/utils/getDiffFileInput.d.ts +14 -0
  236. package/dist/utils/getDiffFileInput.d.ts.map +1 -0
  237. package/dist/utils/getDiffFileInput.js +24 -0
  238. package/dist/utils/getDiffFileInput.js.map +1 -0
  239. package/dist/utils/getDiffHunksRendererOptions.js +1 -0
  240. package/dist/utils/getDiffHunksRendererOptions.js.map +1 -1
  241. package/dist/utils/getFiletypeFromFileName.d.ts.map +1 -1
  242. package/dist/utils/getFiletypeFromFileName.js +2 -0
  243. package/dist/utils/getFiletypeFromFileName.js.map +1 -1
  244. package/dist/utils/hydratePartialDiff.d.ts +10 -0
  245. package/dist/utils/hydratePartialDiff.d.ts.map +1 -0
  246. package/dist/utils/hydratePartialDiff.js +140 -0
  247. package/dist/utils/hydratePartialDiff.js.map +1 -0
  248. package/dist/utils/iterateOverDiff.js +3 -3
  249. package/dist/utils/iterateOverDiff.js.map +1 -1
  250. package/dist/utils/parseDiffFromFile.d.ts +1 -1
  251. package/dist/utils/parseDiffFromFile.d.ts.map +1 -1
  252. package/dist/utils/parseDiffFromFile.js +26 -5
  253. package/dist/utils/parseDiffFromFile.js.map +1 -1
  254. package/dist/utils/parsePatchFiles.d.ts.map +1 -1
  255. package/dist/utils/parsePatchFiles.js +2 -0
  256. package/dist/utils/parsePatchFiles.js.map +1 -1
  257. package/dist/utils/realignChangeContent.d.ts +28 -0
  258. package/dist/utils/realignChangeContent.d.ts.map +1 -0
  259. package/dist/utils/realignChangeContent.js +142 -0
  260. package/dist/utils/realignChangeContent.js.map +1 -0
  261. package/dist/utils/renderDiffWithHighlighter.js +1 -1
  262. package/dist/utils/renderFileWithHighlighter.d.ts.map +1 -1
  263. package/dist/utils/renderFileWithHighlighter.js +5 -14
  264. package/dist/utils/renderFileWithHighlighter.js.map +1 -1
  265. package/dist/utils/updateDiffHunks.d.ts +24 -0
  266. package/dist/utils/updateDiffHunks.d.ts.map +1 -0
  267. package/dist/utils/updateDiffHunks.js +235 -0
  268. package/dist/utils/updateDiffHunks.js.map +1 -0
  269. package/dist/utils/virtualDiffLayout.d.ts +40 -1
  270. package/dist/utils/virtualDiffLayout.d.ts.map +1 -1
  271. package/dist/utils/virtualDiffLayout.js +96 -1
  272. package/dist/utils/virtualDiffLayout.js.map +1 -1
  273. package/dist/worker/WorkerPoolManager.d.ts +7 -2
  274. package/dist/worker/WorkerPoolManager.d.ts.map +1 -1
  275. package/dist/worker/WorkerPoolManager.js +83 -18
  276. package/dist/worker/WorkerPoolManager.js.map +1 -1
  277. package/dist/worker/index.d.ts +2 -2
  278. package/dist/worker/types.d.ts +11 -1
  279. package/dist/worker/types.d.ts.map +1 -1
  280. package/dist/worker/worker-portable.js +46 -66
  281. package/dist/worker/worker-portable.js.map +1 -1
  282. package/dist/worker/worker.js +46 -66
  283. package/dist/worker/worker.js.map +1 -1
  284. package/package.json +12 -5
  285. package/dist/utils/iterateOverFile.d.ts +0 -50
  286. package/dist/utils/iterateOverFile.d.ts.map +0 -1
  287. package/dist/utils/iterateOverFile.js +0 -49
  288. package/dist/utils/iterateOverFile.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { AppliedThemeStyleCache, BaseCodeOptions, FileContents, LineAnnotation, PostRenderPhase, PrePropertiesConfig, RenderFileMetadata, RenderRange, SelectedLineRange, ThemeTypes } from "../types.js";
1
+ import { AppliedThemeStyleCache, BaseCodeOptions, DiffsEditableComponent, DiffsEditor, DiffsTextDocument, FileContents, HighlightedToken, LineAnnotation, PostRenderPhase, PrePropertiesConfig, RenderFileMetadata, RenderRange, SelectedLineRange, ThemeTypes } from "../types.js";
2
2
  import { GetHoveredLineResult, InteractionManager, InteractionManagerBaseOptions, SelectionWriteOptions } from "../managers/InteractionManager.js";
3
3
  import { WorkerPoolManager } from "../worker/WorkerPoolManager.js";
4
4
  import { ResizeManager } from "../managers/ResizeManager.js";
@@ -22,6 +22,7 @@ interface FileHydrateProps<LAnnotation> extends Omit<FileRenderProps<LAnnotation
22
22
  interface FileOptions<LAnnotation> extends BaseCodeOptions, InteractionManagerBaseOptions<'file'> {
23
23
  disableFileHeader?: boolean;
24
24
  renderHeaderPrefix?: RenderFileMetadata;
25
+ renderHeaderFilenameSuffix?: RenderFileMetadata;
25
26
  renderHeaderMetadata?: RenderFileMetadata;
26
27
  renderCustomHeader?: RenderFileMetadata;
27
28
  /**
@@ -42,7 +43,7 @@ interface HydrationSetup<LAnnotation> {
42
43
  file: FileContents;
43
44
  lineAnnotations: LineAnnotation<LAnnotation>[] | undefined;
44
45
  }
45
- declare class File<LAnnotation = undefined> {
46
+ declare class File<LAnnotation = undefined> implements DiffsEditableComponent<LAnnotation> {
46
47
  options: FileOptions<LAnnotation>;
47
48
  private workerManager?;
48
49
  private isContainerManaged;
@@ -71,6 +72,7 @@ declare class File<LAnnotation = undefined> {
71
72
  protected headerElement: HTMLElement | undefined;
72
73
  protected headerCustom: HTMLElement | undefined;
73
74
  protected headerPrefix: HTMLElement | undefined;
75
+ protected headerFilenameSuffix: HTMLElement | undefined;
74
76
  protected headerMetadata: HTMLElement | undefined;
75
77
  protected fileRenderer: FileRenderer<LAnnotation>;
76
78
  protected resizeManager: ResizeManager;
@@ -81,9 +83,11 @@ declare class File<LAnnotation = undefined> {
81
83
  file: FileContents | undefined;
82
84
  protected renderRange: RenderRange | undefined;
83
85
  protected enabled: boolean;
86
+ protected editor: DiffsEditor<LAnnotation> | undefined;
84
87
  constructor(options?: FileOptions<LAnnotation>, workerManager?: WorkerPoolManager | undefined, isContainerManaged?: boolean);
85
88
  private handleHighlightRender;
86
89
  rerender(): void;
90
+ __getCurrentFile(): FileContents | undefined;
87
91
  onThemeChange(): void;
88
92
  setOptions(options: FileOptions<LAnnotation> | undefined): void;
89
93
  protected syncInteractionOptions(): void;
@@ -95,6 +99,7 @@ declare class File<LAnnotation = undefined> {
95
99
  setLineAnnotations(lineAnnotations: LineAnnotation<LAnnotation>[]): void;
96
100
  setSelectedLines(range: SelectedLineRange | null, options?: SelectionWriteOptions): void;
97
101
  flushManagers(): void;
102
+ protected shouldApplyColumnVariables(overflow: 'scroll' | 'wrap'): boolean;
98
103
  cleanUp(recycle?: boolean): void;
99
104
  virtualizedSetup(): void;
100
105
  hydrate(props: FileHydrateProps<LAnnotation>): void;
@@ -104,7 +109,13 @@ declare class File<LAnnotation = undefined> {
104
109
  lineAnnotations
105
110
  }: HydrationSetup<LAnnotation>): void;
106
111
  getOrCreateLineCache(file?: FileContents | undefined): string[];
107
- render({
112
+ protected updateBuffers(renderRange: RenderRange): void;
113
+ private syncRenderViewToEditor;
114
+ attachEditor(editor: DiffsEditor<LAnnotation>): () => void;
115
+ applyDocumentChange(textDocument: DiffsTextDocument, newLineAnnotations?: LineAnnotation<LAnnotation>[]): void;
116
+ updateRenderCache(dirtyLines: Map<number, Array<HighlightedToken>>, themeType: 'dark' | 'light'): void;
117
+ render(props: FileRenderProps<LAnnotation>): boolean;
118
+ protected renderPreparedFile({
108
119
  file,
109
120
  fileContainer,
110
121
  forceRender,
@@ -1 +1 @@
1
- {"version":3,"file":"File.d.ts","names":[],"sources":["../../src/components/File.ts"],"mappings":"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"}
1
+ {"version":3,"file":"File.d.ts","names":[],"sources":["../../src/components/File.ts"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import { CUSTOM_HEADER_SLOT_ID, DEFAULT_THEMES, EMPTY_RENDER_RANGE, HEADER_METADATA_SLOT_ID, HEADER_PREFIX_SLOT_ID } from "../constants.js";
1
+ import { CUSTOM_HEADER_SLOT_ID, DEFAULT_THEMES, EMPTY_RENDER_RANGE, HEADER_FILENAME_SUFFIX_SLOT_ID, HEADER_METADATA_SLOT_ID, HEADER_PREFIX_SLOT_ID } from "../constants.js";
2
2
  import { areThemesEqual } from "../utils/areThemesEqual.js";
3
3
  import { isStyleNode } from "../utils/isStyleNode.js";
4
+ import { areFilesEqual } from "../utils/areFilesEqual.js";
4
5
  import { InteractionManager, pluckInteractionOptions } from "../managers/InteractionManager.js";
5
6
  import { ResizeManager } from "../managers/ResizeManager.js";
6
- import { areFilesEqual } from "../utils/areFilesEqual.js";
7
7
  import { areRenderRangesEqual } from "../utils/areRenderRangesEqual.js";
8
8
  import { getLineAnnotationName } from "../utils/getLineAnnotationName.js";
9
9
  import { isFilePlainText } from "../utils/isFilePlainText.js";
@@ -24,7 +24,7 @@ import { setPreNodeProperties } from "../utils/setWrapperNodeProps.js";
24
24
  import "./web-components.js";
25
25
  import { toHtml } from "hast-util-to-html";
26
26
  //#region src/components/File.ts
27
- const EMPTY_STRINGS = [];
27
+ const EMPTY_STRINGS = [""];
28
28
  let instanceId = -1;
29
29
  var File = class {
30
30
  options;
@@ -55,6 +55,7 @@ var File = class {
55
55
  headerElement;
56
56
  headerCustom;
57
57
  headerPrefix;
58
+ headerFilenameSuffix;
58
59
  headerMetadata;
59
60
  fileRenderer;
60
61
  resizeManager;
@@ -65,6 +66,7 @@ var File = class {
65
66
  file;
66
67
  renderRange;
67
68
  enabled = true;
69
+ editor;
68
70
  constructor(options = { theme: DEFAULT_THEMES }, workerManager, isContainerManaged = false) {
69
71
  this.options = options;
70
72
  this.workerManager = workerManager;
@@ -85,6 +87,9 @@ var File = class {
85
87
  renderRange: this.renderRange
86
88
  });
87
89
  }
90
+ __getCurrentFile() {
91
+ return this.file;
92
+ }
88
93
  onThemeChange() {
89
94
  this.fileRenderer.clearRenderCache();
90
95
  this.rerender();
@@ -135,9 +140,15 @@ var File = class {
135
140
  }
136
141
  const { overflow = "scroll" } = this.options;
137
142
  this.interactionManager.setup(this.pre);
138
- this.resizeManager.setup(this.pre, overflow === "wrap");
143
+ this.resizeManager.setup(this.pre, {
144
+ disableAnnotations: overflow === "wrap",
145
+ columnVariables: this.shouldApplyColumnVariables(overflow) ? "apply" : "measure"
146
+ });
139
147
  this.managersDirty = false;
140
148
  }
149
+ shouldApplyColumnVariables(overflow) {
150
+ return overflow === "scroll" && this.lineAnnotations.length > 0;
151
+ }
141
152
  cleanUp(recycle = false) {
142
153
  this.emitPostRender(true);
143
154
  this.resizeManager.cleanUp();
@@ -149,24 +160,29 @@ var File = class {
149
160
  this.fileContainer = void 0;
150
161
  this.mounted = false;
151
162
  if (!recycle) this.lineAnnotations = [];
152
- this.annotationCache.clear();
163
+ this.clearAuxiliaryNodes();
153
164
  this.pre = void 0;
165
+ this.bufferBefore?.remove();
154
166
  this.bufferBefore = void 0;
167
+ this.bufferAfter?.remove();
155
168
  this.bufferAfter = void 0;
156
169
  this.appliedPreAttributes = void 0;
157
170
  this.lastRowCount = void 0;
158
171
  this.headerElement = void 0;
159
172
  this.headerPrefix = void 0;
173
+ this.headerFilenameSuffix = void 0;
160
174
  this.headerMetadata = void 0;
161
175
  this.headerCustom = void 0;
162
176
  this.lastRenderedHeaderHTML = void 0;
163
177
  if (!recycle) this.cachedHeaderHTML = void 0;
178
+ this.errorWrapper?.remove();
164
179
  this.errorWrapper = void 0;
165
180
  this.themeCSSStyle = void 0;
166
181
  this.appliedThemeCSS = void 0;
167
182
  this.hasAdoptedThemeCSS = false;
168
183
  this.unsafeCSSStyle = void 0;
169
184
  this.appliedUnsafeCSS = void 0;
185
+ this.placeHolder?.remove();
170
186
  this.placeHolder = void 0;
171
187
  this.unsafeCSSStyle = void 0;
172
188
  if (recycle) this.fileRenderer.recycle();
@@ -176,6 +192,8 @@ var File = class {
176
192
  this.file = void 0;
177
193
  }
178
194
  this.enabled = false;
195
+ this.editor?.cleanUp(recycle);
196
+ this.editor = void 0;
179
197
  }
180
198
  virtualizedSetup() {
181
199
  this.enabled = true;
@@ -183,6 +201,8 @@ var File = class {
183
201
  }
184
202
  hydrate(props) {
185
203
  const { fileContainer, prerenderedHTML, preventEmit = false, file, lineAnnotations } = props;
204
+ if (!this.enabled) throw new Error("File.hydrate: attempting to call hydrate after cleaned up");
205
+ if (this.fileContainer != null) throw new Error("File.hydrate: hydrate can only be called before the instance has rendered or hydrated");
186
206
  this.hydrateElements(fileContainer, prerenderedHTML);
187
207
  if (shouldRenderCode(this.pre, file, this.options.collapsed) || shouldRenderHeader(this.headerElement, file, this.options.disableFileHeader)) this.render({
188
208
  ...props,
@@ -246,14 +266,64 @@ var File = class {
246
266
  getOrCreateLineCache(file = this.file) {
247
267
  return file != null ? this.fileRenderer.getOrCreateLineCache(file) : EMPTY_STRINGS;
248
268
  }
249
- render({ file, fileContainer, forceRender = false, preventEmit = false, containerWrapper, deferManagers = false, lineAnnotations, renderRange }) {
250
- const { collapsed = false, themeType = "system" } = this.options;
269
+ updateBuffers(renderRange) {
270
+ if (this.pre != null) this.applyBuffers(this.pre, renderRange);
271
+ }
272
+ syncRenderViewToEditor() {
273
+ const editor = this.editor;
274
+ const fileContainer = this.fileContainer;
275
+ const file = this.file;
276
+ const lineAnnotations = this.lineAnnotations;
277
+ const renderRange = this.renderRange;
278
+ if (editor != null && fileContainer != null && file != null) this.fileRenderer.initializeHighlighter().then((highlighter) => {
279
+ if (!this.enabled || this.editor !== editor || this.fileContainer !== fileContainer || this.file !== file) return;
280
+ editor.__syncRenderView(highlighter, fileContainer, file, lineAnnotations, renderRange);
281
+ });
282
+ }
283
+ attachEditor(editor) {
284
+ this.editor?.cleanUp();
285
+ this.editor = editor;
286
+ this.interactionManager.setEditorAttached(true);
287
+ const preparedFile = this.file == null ? void 0 : editor.__prepareFile?.(this.file);
288
+ if (preparedFile !== void 0 && preparedFile !== this.file) this.renderPreparedFile({
289
+ file: preparedFile,
290
+ forceRender: true,
291
+ preventEmit: true,
292
+ renderRange: this.renderRange
293
+ });
294
+ else this.syncRenderViewToEditor();
295
+ return () => {
296
+ this.editor = void 0;
297
+ this.interactionManager.setEditorAttached(false);
298
+ };
299
+ }
300
+ applyDocumentChange(textDocument, newLineAnnotations) {
301
+ this.fileRenderer.applyDocumentChange(textDocument);
302
+ if (newLineAnnotations != null && newLineAnnotations !== this.lineAnnotations && this.file != null) {
303
+ this.setLineAnnotations(newLineAnnotations);
304
+ this.fileRenderer.setLineAnnotations(this.lineAnnotations);
305
+ this.renderAnnotations();
306
+ }
307
+ }
308
+ updateRenderCache(dirtyLines, themeType) {
309
+ this.fileRenderer.updateRenderCache(dirtyLines, themeType);
310
+ }
311
+ render(props) {
251
312
  if (!this.enabled) throw new Error("File.render: attempting to call render after cleaned up");
313
+ const file = this.editor?.__prepareFile?.(props.file) ?? props.file;
314
+ return this.renderPreparedFile(file === props.file ? props : {
315
+ ...props,
316
+ file
317
+ });
318
+ }
319
+ renderPreparedFile({ file, fileContainer, forceRender = false, preventEmit = false, containerWrapper, deferManagers = false, lineAnnotations, renderRange }) {
320
+ this.editor?.__postponeBgTokenizeToNextFrame();
321
+ const { collapsed = false, themeType = "system" } = this.options;
252
322
  const nextRenderRange = collapsed ? void 0 : renderRange;
253
323
  const previousRenderRange = this.renderRange;
254
324
  const themeChanged = this.hasThemeChanged();
255
325
  const annotationsChanged = lineAnnotations != null && (lineAnnotations.length > 0 || this.lineAnnotations.length > 0) ? lineAnnotations !== this.lineAnnotations : false;
256
- const didFileChange = !areFilesEqual(this.file, file);
326
+ const didFileChange = !areFilesEqual(this.file, file) || this.fileRenderer.hasUnkeyedFileContentsChanged(file);
257
327
  if (!collapsed && !forceRender && areRenderRangesEqual(nextRenderRange, this.renderRange) && !didFileChange && !annotationsChanged && !themeChanged) return this.applyCachedThemeState(themeType);
258
328
  this.renderRange = nextRenderRange;
259
329
  if (didFileChange) this.cachedHeaderHTML = void 0;
@@ -307,6 +377,7 @@ var File = class {
307
377
  if (!deferManagers) this.flushManagers();
308
378
  this.renderAnnotations();
309
379
  this.renderGutterUtility();
380
+ if (this.editor != null) this.syncRenderViewToEditor();
310
381
  } catch (error) {
311
382
  if (disableErrorHandling) throw error;
312
383
  console.error(error);
@@ -370,7 +441,7 @@ var File = class {
370
441
  const { file, workerManager } = this;
371
442
  if (file == null || file.cacheKey == null || workerManager == null || isFilePlainText(file)) return;
372
443
  if (this.fileRenderer.getOrCreateLineCache(file).length > (this.options.tokenizeMaxLength ?? 1e5)) return;
373
- workerManager.primeFileHighlightCache(file);
444
+ workerManager.primeFileHighlightCache(file).catch(() => void 0);
374
445
  }
375
446
  cleanChildNodes() {
376
447
  this.resizeManager.cleanUp();
@@ -382,6 +453,7 @@ var File = class {
382
453
  this.headerElement?.remove();
383
454
  this.gutterUtilityContent?.remove();
384
455
  this.headerPrefix?.remove();
456
+ this.headerFilenameSuffix?.remove();
385
457
  this.headerMetadata?.remove();
386
458
  this.headerCustom?.remove();
387
459
  this.pre?.remove();
@@ -395,6 +467,7 @@ var File = class {
395
467
  this.headerElement = void 0;
396
468
  this.gutterUtilityContent = void 0;
397
469
  this.headerPrefix = void 0;
470
+ this.headerFilenameSuffix = void 0;
398
471
  this.headerMetadata = void 0;
399
472
  this.headerCustom = void 0;
400
473
  this.pre = void 0;
@@ -518,8 +591,15 @@ var File = class {
518
591
  this.cleanupErrorWrapper();
519
592
  this.applyPreNodeAttributes(pre, result);
520
593
  this.code = getOrCreateCodeNode({ code: this.code });
521
- this.code.innerHTML = this.fileRenderer.renderPartialHTML(this.fileRenderer.renderCodeAST(result));
522
- pre.replaceChildren(this.code);
594
+ const codeAst = this.fileRenderer.renderCodeAST(result);
595
+ if (this.code.childElementCount >= 2) for (let i = 0; i < 2; i++) {
596
+ const domEl = this.code.children[i];
597
+ const astEl = codeAst[i];
598
+ domEl.innerHTML = toHtml(astEl.children);
599
+ domEl.style.cssText = astEl.properties.style;
600
+ }
601
+ else this.code.innerHTML = toHtml(codeAst);
602
+ if (!pre.contains(this.code)) pre.replaceChildren(this.code);
523
603
  this.lastRowCount = result.rowCount;
524
604
  }
525
605
  applyPartialRender(previousRenderRange, renderRange) {
@@ -678,18 +758,22 @@ var File = class {
678
758
  this.lastRenderedHeaderHTML = headerHTML;
679
759
  }
680
760
  if (this.isContainerManaged) return;
681
- const { renderHeaderPrefix, renderCustomHeader, renderHeaderMetadata } = this.options;
761
+ const { renderHeaderPrefix, renderHeaderFilenameSuffix, renderCustomHeader, renderHeaderMetadata } = this.options;
682
762
  if (renderCustomHeader != null) {
683
763
  const content = renderCustomHeader(file) ?? void 0;
684
764
  this.headerCustom = this.upsertHeaderSlotElement(container, this.headerCustom, CUSTOM_HEADER_SLOT_ID, content);
685
765
  this.headerPrefix?.remove();
766
+ this.headerFilenameSuffix?.remove();
686
767
  this.headerMetadata?.remove();
687
768
  this.headerPrefix = void 0;
769
+ this.headerFilenameSuffix = void 0;
688
770
  this.headerMetadata = void 0;
689
771
  } else {
690
772
  const prefix = renderHeaderPrefix?.(file) ?? void 0;
773
+ const suffix = renderHeaderFilenameSuffix?.(file) ?? void 0;
691
774
  const content = renderHeaderMetadata?.(file) ?? void 0;
692
775
  this.headerPrefix = this.upsertHeaderSlotElement(container, this.headerPrefix, HEADER_PREFIX_SLOT_ID, prefix);
776
+ this.headerFilenameSuffix = this.upsertHeaderSlotElement(container, this.headerFilenameSuffix, HEADER_FILENAME_SUFFIX_SLOT_ID, suffix);
693
777
  this.headerMetadata = this.upsertHeaderSlotElement(container, this.headerMetadata, HEADER_METADATA_SLOT_ID, content);
694
778
  this.headerCustom?.remove();
695
779
  this.headerCustom = void 0;
@@ -697,9 +781,11 @@ var File = class {
697
781
  }
698
782
  clearHeaderSlots() {
699
783
  this.headerPrefix?.remove();
784
+ this.headerFilenameSuffix?.remove();
700
785
  this.headerMetadata?.remove();
701
786
  this.headerCustom?.remove();
702
787
  this.headerPrefix = void 0;
788
+ this.headerFilenameSuffix = void 0;
703
789
  this.headerMetadata = void 0;
704
790
  this.headerCustom = void 0;
705
791
  }