@pierre/diffs 1.3.0-beta.3 → 1.3.0-beta.4
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.
- package/dist/components/CodeView.d.ts.map +1 -1
- package/dist/components/File.d.ts +2 -2
- package/dist/components/File.d.ts.map +1 -1
- package/dist/components/File.js +11 -11
- package/dist/components/File.js.map +1 -1
- package/dist/components/FileDiff.d.ts +7 -4
- package/dist/components/FileDiff.d.ts.map +1 -1
- package/dist/components/FileDiff.js +56 -47
- package/dist/components/FileDiff.js.map +1 -1
- package/dist/components/UnresolvedFile.d.ts.map +1 -1
- package/dist/components/UnresolvedFile.js +1 -1
- package/dist/components/VirtualizedFile.d.ts +1 -1
- package/dist/components/VirtualizedFile.d.ts.map +1 -1
- package/dist/components/VirtualizedFile.js +7 -3
- package/dist/components/VirtualizedFile.js.map +1 -1
- package/dist/components/VirtualizedFileDiff.d.ts +2 -1
- package/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
- package/dist/components/VirtualizedFileDiff.js +14 -0
- package/dist/components/VirtualizedFileDiff.js.map +1 -1
- package/dist/components/VirtulizerDevelopment.d.ts.map +1 -1
- package/dist/editor/editStack.d.ts +1 -1
- package/dist/editor/editor.d.ts +10 -8
- package/dist/editor/editor.d.ts.map +1 -1
- package/dist/editor/editor.js +386 -339
- package/dist/editor/editor.js.map +1 -1
- package/dist/editor/editor2.js +1 -1
- package/dist/editor/editor2.js.map +1 -1
- package/dist/editor/lineAnnotations.d.ts +2 -1
- package/dist/editor/lineAnnotations.d.ts.map +1 -1
- package/dist/editor/lineAnnotations.js +111 -1
- package/dist/editor/lineAnnotations.js.map +1 -1
- package/dist/editor/marker.d.ts +33 -0
- package/dist/editor/marker.d.ts.map +1 -0
- package/dist/editor/marker.js +185 -0
- package/dist/editor/marker.js.map +1 -0
- package/dist/editor/pieceTable.d.ts +2 -2
- package/dist/editor/pieceTable.d.ts.map +1 -1
- package/dist/editor/pieceTable.js +42 -11
- package/dist/editor/pieceTable.js.map +1 -1
- package/dist/editor/searchPanel.js +2 -2
- package/dist/editor/searchPanel.js.map +1 -1
- package/dist/editor/selection.d.ts +19 -3
- package/dist/editor/selection.d.ts.map +1 -1
- package/dist/editor/selection.js +188 -37
- package/dist/editor/selection.js.map +1 -1
- package/dist/editor/{quickEdit.d.ts → selectionAction.d.ts} +8 -8
- package/dist/editor/selectionAction.d.ts.map +1 -0
- package/dist/editor/{quickEdit.js → selectionAction.js} +18 -18
- package/dist/editor/selectionAction.js.map +1 -0
- package/dist/editor/sprite.d.ts +3 -2
- package/dist/editor/sprite.d.ts.map +1 -1
- package/dist/editor/sprite.js +9 -2
- package/dist/editor/sprite.js.map +1 -1
- package/dist/editor/textDocument.d.ts +4 -4
- package/dist/editor/textDocument.d.ts.map +1 -1
- package/dist/editor/textDocument.js +7 -7
- package/dist/editor/textDocument.js.map +1 -1
- package/dist/editor/tokenzier.js +11 -3
- package/dist/editor/tokenzier.js.map +1 -1
- package/dist/editor/utils.d.ts +3 -1
- package/dist/editor/utils.d.ts.map +1 -1
- package/dist/editor/utils.js +16 -1
- package/dist/editor/utils.js.map +1 -1
- package/dist/highlighter/shared_highlighter.js +3 -29
- package/dist/highlighter/shared_highlighter.js.map +1 -1
- package/dist/highlighter/themes/attachResolvedThemes.js +4 -3
- package/dist/highlighter/themes/attachResolvedThemes.js.map +1 -1
- package/dist/highlighter/themes/cleanUpResolvedThemes.js +3 -2
- package/dist/highlighter/themes/cleanUpResolvedThemes.js.map +1 -1
- package/dist/highlighter/themes/constants.d.ts +1 -7
- package/dist/highlighter/themes/constants.d.ts.map +1 -1
- package/dist/highlighter/themes/constants.js +1 -4
- package/dist/highlighter/themes/constants.js.map +1 -1
- package/dist/highlighter/themes/getResolvedOrResolveTheme.js +2 -2
- package/dist/highlighter/themes/getResolvedOrResolveTheme.js.map +1 -1
- package/dist/highlighter/themes/getResolvedThemes.js +2 -8
- package/dist/highlighter/themes/getResolvedThemes.js.map +1 -1
- package/dist/highlighter/themes/hasResolvedThemes.js +2 -3
- package/dist/highlighter/themes/hasResolvedThemes.js.map +1 -1
- package/dist/highlighter/themes/registerCustomCSSVariableTheme.js +1 -1
- package/dist/highlighter/themes/registerCustomTheme.d.ts +5 -3
- package/dist/highlighter/themes/registerCustomTheme.d.ts.map +1 -1
- package/dist/highlighter/themes/registerCustomTheme.js +15 -5
- package/dist/highlighter/themes/registerCustomTheme.js.map +1 -1
- package/dist/highlighter/themes/resolveTheme.js +6 -27
- package/dist/highlighter/themes/resolveTheme.js.map +1 -1
- package/dist/highlighter/themes/resolveThemes.js +5 -12
- package/dist/highlighter/themes/resolveThemes.js.map +1 -1
- package/dist/highlighter/themes/themeResolution.d.ts +8 -0
- package/dist/highlighter/themes/themeResolution.d.ts.map +1 -0
- package/dist/highlighter/themes/themeResolution.js +22 -0
- package/dist/highlighter/themes/themeResolution.js.map +1 -0
- package/dist/highlighter/themes/themeResolver.d.ts +8 -0
- package/dist/highlighter/themes/themeResolver.d.ts.map +1 -0
- package/dist/highlighter/themes/themeResolver.js +8 -0
- package/dist/highlighter/themes/themeResolver.js.map +1 -0
- package/dist/index.d.ts +4 -4
- package/dist/index.js +3 -3
- package/dist/react/index.d.ts +2 -2
- package/dist/react/jsx.d.ts.map +1 -1
- package/dist/react/utils/useFileDiffInstance.js +1 -0
- package/dist/react/utils/useFileDiffInstance.js.map +1 -1
- package/dist/renderers/DiffHunksRenderer.d.ts +4 -1
- package/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
- package/dist/renderers/DiffHunksRenderer.js +134 -10
- package/dist/renderers/DiffHunksRenderer.js.map +1 -1
- package/dist/renderers/FileRenderer.d.ts +2 -2
- package/dist/renderers/FileRenderer.d.ts.map +1 -1
- package/dist/renderers/FileRenderer.js +5 -5
- package/dist/renderers/FileRenderer.js.map +1 -1
- package/dist/ssr/index.d.ts +2 -2
- package/dist/types.d.ts +9 -7
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/getHighlighterThemeStyles.js +16 -12
- package/dist/utils/getHighlighterThemeStyles.js.map +1 -1
- package/dist/utils/parsePatchFiles.js +93 -4
- package/dist/utils/parsePatchFiles.js.map +1 -1
- package/dist/utils/updateDiffHunks.d.ts +13 -0
- package/dist/utils/updateDiffHunks.d.ts.map +1 -0
- package/dist/utils/updateDiffHunks.js +171 -0
- package/dist/utils/updateDiffHunks.js.map +1 -0
- package/dist/utils/virtualDiffLayout.d.ts +2 -1
- package/dist/utils/virtualDiffLayout.d.ts.map +1 -1
- package/dist/utils/virtualDiffLayout.js +9 -1
- package/dist/utils/virtualDiffLayout.js.map +1 -1
- package/dist/worker/worker-portable.js +727 -22
- package/dist/worker/worker-portable.js.map +1 -1
- package/dist/worker/worker.js +23 -15
- package/dist/worker/worker.js.map +1 -1
- package/package.json +2 -1
- package/dist/editor/quickEdit.d.ts.map +0 -1
- package/dist/editor/quickEdit.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AnnotationSide, AppliedThemeStyleCache, BaseDiffOptions, CustomPreProperties, DiffLineAnnotation, DiffsEditableComponent, DiffsEditor, DiffsTextDocument, ExpansionDirections, FileContents, FileDiffMetadata, HunkData, HunkSeparators, PostRenderPhase, PrePropertiesConfig, RenderHeaderMetadataCallback, RenderHeaderPrefixCallback, RenderRange, SelectedLineRange, ThemeTypes } from "../types.js";
|
|
1
|
+
import { AnnotationSide, AppliedThemeStyleCache, BaseDiffOptions, CustomPreProperties, DiffLineAnnotation, DiffsEditableComponent, DiffsEditor, DiffsTextDocument, ExpansionDirections, FileContents, FileDiffMetadata, HighlightedToken, HunkData, HunkSeparators, PostRenderPhase, PrePropertiesConfig, RenderHeaderMetadataCallback, RenderHeaderPrefixCallback, RenderRange, SelectedLineRange, ThemeTypes } from "../types.js";
|
|
2
2
|
import { GetHoveredLineResult, GetLineIndexUtility, InteractionManager, InteractionManagerBaseOptions, SelectionWriteOptions } from "../managers/InteractionManager.js";
|
|
3
3
|
import { WorkerPoolManager } from "../worker/WorkerPoolManager.js";
|
|
4
4
|
import "../worker/index.js";
|
|
@@ -13,6 +13,7 @@ interface FileDiffRenderProps<LAnnotation> {
|
|
|
13
13
|
oldFile?: FileContents;
|
|
14
14
|
newFile?: FileContents;
|
|
15
15
|
deferManagers?: boolean;
|
|
16
|
+
didEdit?: boolean;
|
|
16
17
|
forceRender?: boolean;
|
|
17
18
|
preventEmit?: boolean;
|
|
18
19
|
fileContainer?: HTMLElement;
|
|
@@ -104,7 +105,6 @@ declare class FileDiff<LAnnotation = undefined> implements DiffsEditableComponen
|
|
|
104
105
|
private mounted;
|
|
105
106
|
protected enabled: boolean;
|
|
106
107
|
protected editor: DiffsEditor<LAnnotation> | undefined;
|
|
107
|
-
protected rerenderTimeout: ReturnType<typeof setTimeout> | undefined;
|
|
108
108
|
constructor(options?: FileDiffOptions<LAnnotation>, workerManager?: WorkerPoolManager | undefined, isContainerManaged?: boolean);
|
|
109
109
|
protected handleHighlightRender: () => void;
|
|
110
110
|
protected getHunksRendererOptions(options: FileDiffOptions<LAnnotation>): DiffHunksRendererOptions;
|
|
@@ -143,6 +143,7 @@ declare class FileDiff<LAnnotation = undefined> implements DiffsEditableComponen
|
|
|
143
143
|
newFile,
|
|
144
144
|
fileDiff,
|
|
145
145
|
deferManagers,
|
|
146
|
+
didEdit,
|
|
146
147
|
forceRender,
|
|
147
148
|
preventEmit,
|
|
148
149
|
lineAnnotations,
|
|
@@ -151,9 +152,9 @@ declare class FileDiff<LAnnotation = undefined> implements DiffsEditableComponen
|
|
|
151
152
|
renderRange
|
|
152
153
|
}: FileDiffRenderProps<LAnnotation>): boolean;
|
|
153
154
|
protected emitPostRender(unmount?: boolean): void;
|
|
154
|
-
applyLayoutChange(textDocument: DiffsTextDocument, newLineAnnotations?: DiffLineAnnotation<LAnnotation>[]): void;
|
|
155
155
|
attachEditor(editor: DiffsEditor<LAnnotation>): () => void;
|
|
156
|
-
|
|
156
|
+
applyDocumentChange(textDocument: DiffsTextDocument, newLineAnnotations?: DiffLineAnnotation<LAnnotation>[]): void;
|
|
157
|
+
updateRenderCache(dirtyLines: Map<number, Array<HighlightedToken>>, themeType: 'dark' | 'light', shouldRerender?: boolean): void;
|
|
157
158
|
private getAdditionFile;
|
|
158
159
|
private removeRenderedCode;
|
|
159
160
|
private clearAuxiliaryNodes;
|
|
@@ -179,6 +180,7 @@ declare class FileDiff<LAnnotation = undefined> implements DiffsEditableComponen
|
|
|
179
180
|
private applyHunksToDOM;
|
|
180
181
|
private applyPartialRender;
|
|
181
182
|
private insertPartialHTML;
|
|
183
|
+
private updateLineType;
|
|
182
184
|
private renderPartialColumn;
|
|
183
185
|
private mergeBuffersIfNecessary;
|
|
184
186
|
private applyRowSpan;
|
|
@@ -187,6 +189,7 @@ declare class FileDiff<LAnnotation = undefined> implements DiffsEditableComponen
|
|
|
187
189
|
private getBufferSize;
|
|
188
190
|
private updateBufferSize;
|
|
189
191
|
private getCodeColumns;
|
|
192
|
+
protected updateBuffers(renderRange: RenderRange): void;
|
|
190
193
|
private applyBuffers;
|
|
191
194
|
protected shouldDisableVirtualizationBuffers(): boolean;
|
|
192
195
|
protected applyPreNodeAttributes(pre: HTMLPreElement, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileDiff.d.ts","names":["GetHoveredLineResult","GetLineIndexUtility","InteractionManager","InteractionManagerBaseOptions","SelectionWriteOptions","ResizeManager","ScrollSyncManager","DiffHunksRenderer","DiffHunksRendererOptions","HunksRenderResult","AppliedThemeStyleCache","BaseDiffOptions","CustomPreProperties","DiffLineAnnotation","DiffsEditableComponent","DiffsEditor","DiffsTextDocument","ExpansionDirections","FileContents","FileDiffMetadata","HunkData","HunkSeparators","PostRenderPhase","PrePropertiesConfig","RenderHeaderMetadataCallback","RenderHeaderPrefixCallback","RenderRange","SelectedLineRange","ThemeTypes","WorkerPoolManager","FileDiffRenderProps","LAnnotation","HTMLElement","FileDiffHydrationProps","Omit","FileDiffType","FileDiffOptions","Exclude","FileDiff","DocumentFragment","AnnotationElementCache","CustomHunkElementCache","HydrationSetup","SVGElement","HTMLPreElement","HTMLStyleElement","Map","setTimeout","ReturnType","__0","AnnotationSide","fileDiff","oldFile","newFile","lineAnnotations","deferManagers","forceRender","preventEmit","fileContainer","containerWrapper","renderRange","additionsContentAST","deletionsContentAST","totalLines"],"sources":["../../src/components/FileDiff.d.ts"],"sourcesContent":["import { type GetHoveredLineResult, type GetLineIndexUtility, InteractionManager, type InteractionManagerBaseOptions, type SelectionWriteOptions } from '../managers/InteractionManager';\nimport { ResizeManager } from '../managers/ResizeManager';\nimport { ScrollSyncManager } from '../managers/ScrollSyncManager';\nimport { DiffHunksRenderer, type DiffHunksRendererOptions, type HunksRenderResult } from '../renderers/DiffHunksRenderer';\nimport type { AppliedThemeStyleCache, BaseDiffOptions, CustomPreProperties, DiffLineAnnotation, DiffsEditableComponent, DiffsEditor, DiffsTextDocument, ExpansionDirections, FileContents, FileDiffMetadata, HunkData, HunkSeparators, PostRenderPhase, PrePropertiesConfig, RenderHeaderMetadataCallback, RenderHeaderPrefixCallback, RenderRange, SelectedLineRange, ThemeTypes } from '../types';\nimport type { WorkerPoolManager } from '../worker';\nexport interface FileDiffRenderProps<LAnnotation> {\n fileDiff?: FileDiffMetadata;\n oldFile?: FileContents;\n newFile?: FileContents;\n deferManagers?: boolean;\n forceRender?: boolean;\n preventEmit?: boolean;\n fileContainer?: HTMLElement;\n containerWrapper?: HTMLElement;\n lineAnnotations?: DiffLineAnnotation<LAnnotation>[];\n renderRange?: RenderRange;\n}\nexport interface FileDiffHydrationProps<LAnnotation> extends Omit<FileDiffRenderProps<LAnnotation>, 'fileContainer'> {\n fileContainer: HTMLElement;\n prerenderedHTML?: string;\n}\nexport type FileDiffType = 'file-diff' | 'unresolved-file';\nexport interface FileDiffOptions<LAnnotation> extends Omit<BaseDiffOptions, 'hunkSeparators'>, InteractionManagerBaseOptions<'diff'> {\n hunkSeparators?: Exclude<HunkSeparators, 'custom'> /**\n * @deprecated Custom hunk separator functions are deprecated and will be\n * removed in a future version.\n */ | ((hunk: HunkData, instance: FileDiff<LAnnotation>) => HTMLElement | DocumentFragment | null | undefined);\n disableFileHeader?: boolean;\n renderHeaderPrefix?: RenderHeaderPrefixCallback;\n renderHeaderMetadata?: RenderHeaderMetadataCallback;\n renderCustomHeader?: RenderHeaderMetadataCallback;\n /**\n * When true, errors during rendering are rethrown instead of being caught\n * and displayed in the DOM. Useful for testing or when you want to handle\n * errors yourself.\n */\n disableErrorHandling?: boolean;\n renderAnnotation?(annotation: DiffLineAnnotation<LAnnotation>): HTMLElement | undefined;\n renderGutterUtility?(getHoveredRow: () => GetHoveredLineResult<'diff'> | undefined): HTMLElement | null | undefined;\n onPostRender?(node: HTMLElement, instance: FileDiff<LAnnotation>, phase: PostRenderPhase): unknown;\n}\ninterface AnnotationElementCache<LAnnotation> {\n element: HTMLElement;\n annotation: DiffLineAnnotation<LAnnotation>;\n}\ninterface CustomHunkElementCache {\n element: HTMLElement;\n hunkData: HunkData;\n}\ninterface HydrationSetup<LAnnotation> {\n fileDiff: FileDiffMetadata | undefined;\n lineAnnotations: DiffLineAnnotation<LAnnotation>[] | undefined;\n oldFile?: FileContents;\n newFile?: FileContents;\n}\nexport declare class FileDiff<LAnnotation = undefined> implements DiffsEditableComponent<LAnnotation> {\n options: FileDiffOptions<LAnnotation>;\n protected workerManager?: WorkerPoolManager | undefined;\n protected isContainerManaged: boolean;\n static LoadedCustomComponent: boolean;\n readonly __id: string;\n readonly type: FileDiffType;\n protected fileContainer: HTMLElement | undefined;\n protected spriteSVG: SVGElement | undefined;\n protected pre: HTMLPreElement | undefined;\n protected codeUnified: HTMLElement | undefined;\n protected codeDeletions: HTMLElement | undefined;\n protected codeAdditions: HTMLElement | undefined;\n protected bufferBefore: HTMLElement | undefined;\n protected bufferAfter: HTMLElement | undefined;\n protected themeCSSStyle: HTMLStyleElement | undefined;\n protected appliedThemeCSS: AppliedThemeStyleCache | undefined;\n protected hasAdoptedThemeCSS: boolean;\n protected unsafeCSSStyle: HTMLStyleElement | undefined;\n protected appliedUnsafeCSS: string | undefined;\n protected gutterUtilityContent: HTMLElement | undefined;\n protected headerElement: HTMLElement | undefined;\n protected headerPrefix: HTMLElement | undefined;\n protected headerMetadata: HTMLElement | undefined;\n protected headerCustom: HTMLElement | undefined;\n protected separatorCache: Map<string, CustomHunkElementCache>;\n protected errorWrapper: HTMLElement | undefined;\n protected placeHolder: HTMLElement | undefined;\n protected hunksRenderer: DiffHunksRenderer<LAnnotation>;\n protected resizeManager: ResizeManager;\n protected scrollSyncManager: ScrollSyncManager;\n protected interactionManager: InteractionManager<'diff'>;\n protected annotationCache: Map<string, AnnotationElementCache<LAnnotation>>;\n protected lineAnnotations: DiffLineAnnotation<LAnnotation>[];\n protected managersDirty: boolean;\n protected deletionFile: FileContents | undefined;\n protected additionFile: FileContents | undefined;\n fileDiff: FileDiffMetadata | undefined;\n protected renderRange: RenderRange | undefined;\n protected appliedPreAttributes: PrePropertiesConfig | undefined;\n protected lastRenderedHeaderHTML: string | undefined;\n protected cachedHeaderHTML: string | undefined;\n protected lastRowCount: number | undefined;\n private mounted;\n protected enabled: boolean;\n protected editor: DiffsEditor<LAnnotation> | undefined;\n protected rerenderTimeout: ReturnType<typeof setTimeout> | undefined;\n constructor(options?: FileDiffOptions<LAnnotation>, workerManager?: WorkerPoolManager | undefined, isContainerManaged?: boolean);\n protected handleHighlightRender: () => void;\n protected getHunksRendererOptions(options: FileDiffOptions<LAnnotation>): DiffHunksRendererOptions;\n protected createHunksRenderer(options: FileDiffOptions<LAnnotation>): DiffHunksRenderer<LAnnotation>;\n getLineIndex: GetLineIndexUtility;\n setOptions(options: FileDiffOptions<LAnnotation> | undefined): void;\n protected syncInteractionOptions(): void;\n private mergeOptions;\n setThemeType(themeType: ThemeTypes): void;\n private applyCachedThemeState;\n private hasThemeChanged;\n getHoveredLine: () => {\n lineNumber: number;\n side: import(\"..\").AnnotationSide;\n } | undefined;\n setLineAnnotations(lineAnnotations: DiffLineAnnotation<LAnnotation>[]): void;\n private canPartiallyRender;\n setSelectedLines(range: SelectedLineRange | null, options?: SelectionWriteOptions): void;\n flushManagers(): void;\n cleanUp(recycle?: boolean): void;\n virtualizedSetup(): void;\n hydrate(props: FileDiffHydrationProps<LAnnotation>): void;\n protected hydrateElements(fileContainer: HTMLElement, prerenderedHTML: string | undefined): void;\n protected hydrationSetup({ fileDiff, oldFile, newFile, lineAnnotations }: HydrationSetup<LAnnotation>): void;\n rerender(): void;\n onThemeChange(): void;\n handleExpandHunk: (hunkIndex: number, direction: ExpansionDirections, expansionLineCountOverride?: number | undefined) => void;\n expandHunk: (hunkIndex: number, direction: ExpansionDirections, expansionLineCountOverride?: number | undefined) => void;\n render({ oldFile, newFile, fileDiff, deferManagers, forceRender, preventEmit, lineAnnotations, fileContainer, containerWrapper, renderRange }: FileDiffRenderProps<LAnnotation>): boolean;\n protected emitPostRender(unmount?: boolean): void;\n applyLayoutChange(textDocument: DiffsTextDocument, newLineAnnotations?: DiffLineAnnotation<LAnnotation>[]): void;\n attachEditor(editor: DiffsEditor<LAnnotation>): () => void;\n private getDeletionFile;\n private getAdditionFile;\n private removeRenderedCode;\n private clearAuxiliaryNodes;\n renderPlaceholder(height: number): boolean;\n primeHighlightCache(): void;\n private cleanChildNodes;\n private renderSeparators;\n protected renderAnnotations(): void;\n protected renderGutterUtility(): void;\n protected getOrCreateFileContainer(fileContainer?: HTMLElement, parentNode?: HTMLElement): HTMLElement;\n private adoptReusableShellElements;\n private ensureSpriteSVG;\n private getOrCreatePreNode;\n protected syncCodeNodesFromPre(pre: HTMLPreElement): void;\n private applyHeaderToDOM;\n private clearHeaderSlots;\n private upsertHeaderSlotElement;\n private replaceHeaderSlotContent;\n private createHeaderSlotElement;\n protected injectUnsafeCSS(): void;\n private applyThemeState;\n private hydrateMeasuredScrollbar;\n private applyHunksToDOM;\n private applyPartialRender;\n private insertPartialHTML;\n private renderPartialColumn;\n private mergeBuffersIfNecessary;\n private applyRowSpan;\n private trimColumnRows;\n private trimColumns;\n private getBufferSize;\n private updateBufferSize;\n private getCodeColumns;\n private applyBuffers;\n protected shouldDisableVirtualizationBuffers(): boolean;\n protected applyPreNodeAttributes(pre: HTMLPreElement, { additionsContentAST, deletionsContentAST, totalLines }: HunksRenderResult, customProperties?: CustomPreProperties): void;\n private applyErrorToDOM;\n private cleanupErrorWrapper;\n}\nexport {};\n//# sourceMappingURL=FileDiff.d.ts.map"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FileDiff.d.ts","names":["GetHoveredLineResult","GetLineIndexUtility","InteractionManager","InteractionManagerBaseOptions","SelectionWriteOptions","ResizeManager","ScrollSyncManager","DiffHunksRenderer","DiffHunksRendererOptions","HunksRenderResult","AppliedThemeStyleCache","BaseDiffOptions","CustomPreProperties","DiffLineAnnotation","DiffsEditableComponent","DiffsEditor","DiffsTextDocument","ExpansionDirections","FileContents","FileDiffMetadata","HighlightedToken","HunkData","HunkSeparators","PostRenderPhase","PrePropertiesConfig","RenderHeaderMetadataCallback","RenderHeaderPrefixCallback","RenderRange","SelectedLineRange","ThemeTypes","WorkerPoolManager","FileDiffRenderProps","LAnnotation","HTMLElement","FileDiffHydrationProps","Omit","FileDiffType","FileDiffOptions","Exclude","FileDiff","DocumentFragment","AnnotationElementCache","CustomHunkElementCache","HydrationSetup","SVGElement","HTMLPreElement","HTMLStyleElement","Map","__0","AnnotationSide","fileDiff","oldFile","newFile","lineAnnotations","deferManagers","didEdit","forceRender","preventEmit","fileContainer","containerWrapper","renderRange","Array","additionsContentAST","deletionsContentAST","totalLines"],"sources":["../../src/components/FileDiff.d.ts"],"sourcesContent":["import { type GetHoveredLineResult, type GetLineIndexUtility, InteractionManager, type InteractionManagerBaseOptions, type SelectionWriteOptions } from '../managers/InteractionManager';\nimport { ResizeManager } from '../managers/ResizeManager';\nimport { ScrollSyncManager } from '../managers/ScrollSyncManager';\nimport { DiffHunksRenderer, type DiffHunksRendererOptions, type HunksRenderResult } from '../renderers/DiffHunksRenderer';\nimport type { AppliedThemeStyleCache, BaseDiffOptions, CustomPreProperties, DiffLineAnnotation, DiffsEditableComponent, DiffsEditor, DiffsTextDocument, ExpansionDirections, FileContents, FileDiffMetadata, HighlightedToken, HunkData, HunkSeparators, PostRenderPhase, PrePropertiesConfig, RenderHeaderMetadataCallback, RenderHeaderPrefixCallback, RenderRange, SelectedLineRange, ThemeTypes } from '../types';\nimport type { WorkerPoolManager } from '../worker';\nexport interface FileDiffRenderProps<LAnnotation> {\n fileDiff?: FileDiffMetadata;\n oldFile?: FileContents;\n newFile?: FileContents;\n deferManagers?: boolean;\n didEdit?: boolean;\n forceRender?: boolean;\n preventEmit?: boolean;\n fileContainer?: HTMLElement;\n containerWrapper?: HTMLElement;\n lineAnnotations?: DiffLineAnnotation<LAnnotation>[];\n renderRange?: RenderRange;\n}\nexport interface FileDiffHydrationProps<LAnnotation> extends Omit<FileDiffRenderProps<LAnnotation>, 'fileContainer'> {\n fileContainer: HTMLElement;\n prerenderedHTML?: string;\n}\nexport type FileDiffType = 'file-diff' | 'unresolved-file';\nexport interface FileDiffOptions<LAnnotation> extends Omit<BaseDiffOptions, 'hunkSeparators'>, InteractionManagerBaseOptions<'diff'> {\n hunkSeparators?: Exclude<HunkSeparators, 'custom'> /**\n * @deprecated Custom hunk separator functions are deprecated and will be\n * removed in a future version.\n */ | ((hunk: HunkData, instance: FileDiff<LAnnotation>) => HTMLElement | DocumentFragment | null | undefined);\n disableFileHeader?: boolean;\n renderHeaderPrefix?: RenderHeaderPrefixCallback;\n renderHeaderMetadata?: RenderHeaderMetadataCallback;\n renderCustomHeader?: RenderHeaderMetadataCallback;\n /**\n * When true, errors during rendering are rethrown instead of being caught\n * and displayed in the DOM. Useful for testing or when you want to handle\n * errors yourself.\n */\n disableErrorHandling?: boolean;\n renderAnnotation?(annotation: DiffLineAnnotation<LAnnotation>): HTMLElement | undefined;\n renderGutterUtility?(getHoveredRow: () => GetHoveredLineResult<'diff'> | undefined): HTMLElement | null | undefined;\n onPostRender?(node: HTMLElement, instance: FileDiff<LAnnotation>, phase: PostRenderPhase): unknown;\n}\ninterface AnnotationElementCache<LAnnotation> {\n element: HTMLElement;\n annotation: DiffLineAnnotation<LAnnotation>;\n}\ninterface CustomHunkElementCache {\n element: HTMLElement;\n hunkData: HunkData;\n}\ninterface HydrationSetup<LAnnotation> {\n fileDiff: FileDiffMetadata | undefined;\n lineAnnotations: DiffLineAnnotation<LAnnotation>[] | undefined;\n oldFile?: FileContents;\n newFile?: FileContents;\n}\nexport declare class FileDiff<LAnnotation = undefined> implements DiffsEditableComponent<LAnnotation> {\n options: FileDiffOptions<LAnnotation>;\n protected workerManager?: WorkerPoolManager | undefined;\n protected isContainerManaged: boolean;\n static LoadedCustomComponent: boolean;\n readonly __id: string;\n readonly type: FileDiffType;\n protected fileContainer: HTMLElement | undefined;\n protected spriteSVG: SVGElement | undefined;\n protected pre: HTMLPreElement | undefined;\n protected codeUnified: HTMLElement | undefined;\n protected codeDeletions: HTMLElement | undefined;\n protected codeAdditions: HTMLElement | undefined;\n protected bufferBefore: HTMLElement | undefined;\n protected bufferAfter: HTMLElement | undefined;\n protected themeCSSStyle: HTMLStyleElement | undefined;\n protected appliedThemeCSS: AppliedThemeStyleCache | undefined;\n protected hasAdoptedThemeCSS: boolean;\n protected unsafeCSSStyle: HTMLStyleElement | undefined;\n protected appliedUnsafeCSS: string | undefined;\n protected gutterUtilityContent: HTMLElement | undefined;\n protected headerElement: HTMLElement | undefined;\n protected headerPrefix: HTMLElement | undefined;\n protected headerMetadata: HTMLElement | undefined;\n protected headerCustom: HTMLElement | undefined;\n protected separatorCache: Map<string, CustomHunkElementCache>;\n protected errorWrapper: HTMLElement | undefined;\n protected placeHolder: HTMLElement | undefined;\n protected hunksRenderer: DiffHunksRenderer<LAnnotation>;\n protected resizeManager: ResizeManager;\n protected scrollSyncManager: ScrollSyncManager;\n protected interactionManager: InteractionManager<'diff'>;\n protected annotationCache: Map<string, AnnotationElementCache<LAnnotation>>;\n protected lineAnnotations: DiffLineAnnotation<LAnnotation>[];\n protected managersDirty: boolean;\n protected deletionFile: FileContents | undefined;\n protected additionFile: FileContents | undefined;\n fileDiff: FileDiffMetadata | undefined;\n protected renderRange: RenderRange | undefined;\n protected appliedPreAttributes: PrePropertiesConfig | undefined;\n protected lastRenderedHeaderHTML: string | undefined;\n protected cachedHeaderHTML: string | undefined;\n protected lastRowCount: number | undefined;\n private mounted;\n protected enabled: boolean;\n protected editor: DiffsEditor<LAnnotation> | undefined;\n constructor(options?: FileDiffOptions<LAnnotation>, workerManager?: WorkerPoolManager | undefined, isContainerManaged?: boolean);\n protected handleHighlightRender: () => void;\n protected getHunksRendererOptions(options: FileDiffOptions<LAnnotation>): DiffHunksRendererOptions;\n protected createHunksRenderer(options: FileDiffOptions<LAnnotation>): DiffHunksRenderer<LAnnotation>;\n getLineIndex: GetLineIndexUtility;\n setOptions(options: FileDiffOptions<LAnnotation> | undefined): void;\n protected syncInteractionOptions(): void;\n private mergeOptions;\n setThemeType(themeType: ThemeTypes): void;\n private applyCachedThemeState;\n private hasThemeChanged;\n getHoveredLine: () => {\n lineNumber: number;\n side: import(\"..\").AnnotationSide;\n } | undefined;\n setLineAnnotations(lineAnnotations: DiffLineAnnotation<LAnnotation>[]): void;\n private canPartiallyRender;\n setSelectedLines(range: SelectedLineRange | null, options?: SelectionWriteOptions): void;\n flushManagers(): void;\n cleanUp(recycle?: boolean): void;\n virtualizedSetup(): void;\n hydrate(props: FileDiffHydrationProps<LAnnotation>): void;\n protected hydrateElements(fileContainer: HTMLElement, prerenderedHTML: string | undefined): void;\n protected hydrationSetup({ fileDiff, oldFile, newFile, lineAnnotations }: HydrationSetup<LAnnotation>): void;\n rerender(): void;\n onThemeChange(): void;\n handleExpandHunk: (hunkIndex: number, direction: ExpansionDirections, expansionLineCountOverride?: number | undefined) => void;\n expandHunk: (hunkIndex: number, direction: ExpansionDirections, expansionLineCountOverride?: number | undefined) => void;\n render({ oldFile, newFile, fileDiff, deferManagers, didEdit, forceRender, preventEmit, lineAnnotations, fileContainer, containerWrapper, renderRange }: FileDiffRenderProps<LAnnotation>): boolean;\n protected emitPostRender(unmount?: boolean): void;\n attachEditor(editor: DiffsEditor<LAnnotation>): () => void;\n applyDocumentChange(textDocument: DiffsTextDocument, newLineAnnotations?: DiffLineAnnotation<LAnnotation>[]): void;\n updateRenderCache(dirtyLines: Map<number, Array<HighlightedToken>>, themeType: 'dark' | 'light', shouldRerender?: boolean): void;\n private getAdditionFile;\n private removeRenderedCode;\n private clearAuxiliaryNodes;\n renderPlaceholder(height: number): boolean;\n primeHighlightCache(): void;\n private cleanChildNodes;\n private renderSeparators;\n protected renderAnnotations(): void;\n protected renderGutterUtility(): void;\n protected getOrCreateFileContainer(fileContainer?: HTMLElement, parentNode?: HTMLElement): HTMLElement;\n private adoptReusableShellElements;\n private ensureSpriteSVG;\n private getOrCreatePreNode;\n protected syncCodeNodesFromPre(pre: HTMLPreElement): void;\n private applyHeaderToDOM;\n private clearHeaderSlots;\n private upsertHeaderSlotElement;\n private replaceHeaderSlotContent;\n private createHeaderSlotElement;\n protected injectUnsafeCSS(): void;\n private applyThemeState;\n private hydrateMeasuredScrollbar;\n private applyHunksToDOM;\n private applyPartialRender;\n private insertPartialHTML;\n private updateLineType;\n private renderPartialColumn;\n private mergeBuffersIfNecessary;\n private applyRowSpan;\n private trimColumnRows;\n private trimColumns;\n private getBufferSize;\n private updateBufferSize;\n private getCodeColumns;\n protected updateBuffers(renderRange: RenderRange): void;\n private applyBuffers;\n protected shouldDisableVirtualizationBuffers(): boolean;\n protected applyPreNodeAttributes(pre: HTMLPreElement, { additionsContentAST, deletionsContentAST, totalLines }: HunksRenderResult, customProperties?: CustomPreProperties): void;\n private applyErrorToDOM;\n private cleanupErrorWrapper;\n}\nexport {};\n//# sourceMappingURL=FileDiff.d.ts.map"],"mappings":"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"}
|
|
@@ -72,7 +72,6 @@ var FileDiff = class {
|
|
|
72
72
|
mounted = false;
|
|
73
73
|
enabled = true;
|
|
74
74
|
editor;
|
|
75
|
-
rerenderTimeout;
|
|
76
75
|
constructor(options = { theme: DEFAULT_THEMES }, workerManager, isContainerManaged = false) {
|
|
77
76
|
this.options = options;
|
|
78
77
|
this.workerManager = workerManager;
|
|
@@ -94,11 +93,12 @@ var FileDiff = class {
|
|
|
94
93
|
return new DiffHunksRenderer(this.getHunksRendererOptions(options), this.handleHighlightRender, this.workerManager);
|
|
95
94
|
}
|
|
96
95
|
getLineIndex = (lineNumber, side = "additions") => {
|
|
97
|
-
|
|
98
|
-
|
|
96
|
+
const fileDiff = this.hunksRenderer.getRenderDiff() ?? this.fileDiff;
|
|
97
|
+
if (fileDiff == null) return;
|
|
98
|
+
const lastHunk = fileDiff.hunks.at(-1);
|
|
99
99
|
let targetUnifiedIndex;
|
|
100
100
|
let targetSplitIndex;
|
|
101
|
-
hunkIterator: for (const hunk of
|
|
101
|
+
hunkIterator: for (const hunk of fileDiff.hunks) {
|
|
102
102
|
let currentLineNumber = side === "deletions" ? hunk.deletionStart : hunk.additionStart;
|
|
103
103
|
const hunkCount = side === "deletions" ? hunk.deletionCount : hunk.additionCount;
|
|
104
104
|
let splitIndex = hunk.splitLineStart;
|
|
@@ -183,7 +183,8 @@ var FileDiff = class {
|
|
|
183
183
|
setLineAnnotations(lineAnnotations) {
|
|
184
184
|
this.lineAnnotations = lineAnnotations;
|
|
185
185
|
}
|
|
186
|
-
canPartiallyRender(forceRender, annotationsChanged, didContentChange) {
|
|
186
|
+
canPartiallyRender(forceRender, annotationsChanged, didContentChange, didEdit) {
|
|
187
|
+
if (didEdit) return true;
|
|
187
188
|
if (forceRender || annotationsChanged || didContentChange || typeof this.options.hunkSeparators === "function") return false;
|
|
188
189
|
return true;
|
|
189
190
|
}
|
|
@@ -249,8 +250,6 @@ var FileDiff = class {
|
|
|
249
250
|
this.enabled = false;
|
|
250
251
|
this.editor?.cleanUp();
|
|
251
252
|
this.editor = void 0;
|
|
252
|
-
if (this.rerenderTimeout !== void 0) clearTimeout(this.rerenderTimeout);
|
|
253
|
-
this.rerenderTimeout = void 0;
|
|
254
253
|
}
|
|
255
254
|
virtualizedSetup() {
|
|
256
255
|
this.enabled = true;
|
|
@@ -351,7 +350,7 @@ var FileDiff = class {
|
|
|
351
350
|
this.hunksRenderer.expandHunk(hunkIndex, direction, expansionLineCountOverride);
|
|
352
351
|
this.rerender();
|
|
353
352
|
};
|
|
354
|
-
render({ oldFile, newFile, fileDiff, deferManagers = false, forceRender = false, preventEmit = false, lineAnnotations, fileContainer, containerWrapper, renderRange }) {
|
|
353
|
+
render({ oldFile, newFile, fileDiff, deferManagers = false, didEdit = false, forceRender = false, preventEmit = false, lineAnnotations, fileContainer, containerWrapper, renderRange }) {
|
|
355
354
|
if (!this.enabled) throw new Error("FileDiff.render: attempting to call render after cleaned up");
|
|
356
355
|
this.editor?.postponeBackgroundTokenizeToNextFrame();
|
|
357
356
|
const { collapsed = false, themeType = "system" } = this.options;
|
|
@@ -360,7 +359,7 @@ var FileDiff = class {
|
|
|
360
359
|
const filesDidChange = oldFile != null && newFile != null && (!areFilesEqual(oldFile, this.deletionFile) || !areFilesEqual(newFile, this.additionFile));
|
|
361
360
|
let diffDidChange = fileDiff != null && fileDiff !== this.fileDiff;
|
|
362
361
|
const annotationsChanged = lineAnnotations != null && (lineAnnotations.length > 0 || this.lineAnnotations.length > 0) ? lineAnnotations !== this.lineAnnotations : false;
|
|
363
|
-
if (!collapsed && areRenderRangesEqual(nextRenderRange, this.renderRange) && !forceRender && !annotationsChanged && !themeChanged && (fileDiff != null && fileDiff === this.fileDiff || fileDiff == null && !filesDidChange)) return this.applyCachedThemeState(themeType);
|
|
362
|
+
if (!collapsed && areRenderRangesEqual(nextRenderRange, this.renderRange) && !didEdit && !forceRender && !annotationsChanged && !themeChanged && (fileDiff != null && fileDiff === this.fileDiff || fileDiff == null && !filesDidChange)) return this.applyCachedThemeState(themeType);
|
|
364
363
|
const { renderRange: previousRenderRange } = this;
|
|
365
364
|
this.renderRange = nextRenderRange;
|
|
366
365
|
this.deletionFile = oldFile;
|
|
@@ -406,7 +405,7 @@ var FileDiff = class {
|
|
|
406
405
|
}
|
|
407
406
|
try {
|
|
408
407
|
const pre = this.getOrCreatePreNode(fileContainer);
|
|
409
|
-
if (!(this.canPartiallyRender(forceRender, annotationsChanged, filesDidChange || diffDidChange || themeChanged) && this.applyPartialRender({
|
|
408
|
+
if (!(this.canPartiallyRender(forceRender, annotationsChanged, filesDidChange || diffDidChange || themeChanged, didEdit) && this.applyPartialRender({
|
|
410
409
|
previousRenderRange,
|
|
411
410
|
renderRange: nextRenderRange
|
|
412
411
|
}))) {
|
|
@@ -423,7 +422,7 @@ var FileDiff = class {
|
|
|
423
422
|
this.pre = void 0;
|
|
424
423
|
}
|
|
425
424
|
this.renderSeparators(hunksResult.hunkData);
|
|
426
|
-
}
|
|
425
|
+
} else if (didEdit && nextRenderRange != null) this.updateLineType(nextRenderRange);
|
|
427
426
|
this.applyBuffers(pre, nextRenderRange);
|
|
428
427
|
this.injectUnsafeCSS();
|
|
429
428
|
this.renderAnnotations();
|
|
@@ -433,7 +432,7 @@ var FileDiff = class {
|
|
|
433
432
|
const editor = this.editor;
|
|
434
433
|
const file = this.getAdditionFile();
|
|
435
434
|
if (editor != null && file != null) this.hunksRenderer.initializeHighlighter().then((highlighter) => {
|
|
436
|
-
editor.syncToRenderedView(highlighter,
|
|
435
|
+
editor.syncToRenderedView(highlighter, fileContainer, file, diffDidChange, this.lineAnnotations, this.renderRange);
|
|
437
436
|
});
|
|
438
437
|
} catch (error) {
|
|
439
438
|
if (disableErrorHandling) throw error;
|
|
@@ -457,53 +456,37 @@ var FileDiff = class {
|
|
|
457
456
|
this.mounted = true;
|
|
458
457
|
onPostRender?.(fileContainer, this, phase);
|
|
459
458
|
}
|
|
460
|
-
applyLayoutChange(textDocument, newLineAnnotations) {
|
|
461
|
-
if (newLineAnnotations !== void 0 && newLineAnnotations !== this.lineAnnotations) {
|
|
462
|
-
this.setLineAnnotations(newLineAnnotations);
|
|
463
|
-
this.hunksRenderer.setLineAnnotations(this.lineAnnotations);
|
|
464
|
-
}
|
|
465
|
-
const deletionFile = this.getDeletionFile();
|
|
466
|
-
if (deletionFile != null) {
|
|
467
|
-
const { name, lang } = deletionFile;
|
|
468
|
-
const newFile = {
|
|
469
|
-
name,
|
|
470
|
-
lang,
|
|
471
|
-
cacheKey: name + "-" + Date.now()
|
|
472
|
-
};
|
|
473
|
-
Object.defineProperty(newFile, "contents", { get: () => textDocument.getText() });
|
|
474
|
-
if (this.rerenderTimeout !== void 0) clearTimeout(this.rerenderTimeout);
|
|
475
|
-
this.rerenderTimeout = setTimeout(() => {
|
|
476
|
-
this.fileDiff = parseDiffFromFile(deletionFile, newFile, this.options.parseDiffOptions);
|
|
477
|
-
this.hunksRenderer.renderDiff(this.fileDiff, this.renderRange);
|
|
478
|
-
}, 500);
|
|
479
|
-
}
|
|
480
|
-
}
|
|
481
459
|
attachEditor(editor) {
|
|
482
460
|
this.editor?.cleanUp();
|
|
483
461
|
const fileContainer = this.fileContainer;
|
|
484
462
|
const file = this.getAdditionFile();
|
|
485
463
|
if (fileContainer != null && file != null) this.hunksRenderer.initializeHighlighter().then((highlighter) => {
|
|
486
|
-
editor.syncToRenderedView(highlighter,
|
|
464
|
+
editor.syncToRenderedView(highlighter, fileContainer, file, false, this.lineAnnotations, this.renderRange);
|
|
487
465
|
});
|
|
488
466
|
this.editor = editor;
|
|
489
467
|
return () => {
|
|
490
468
|
this.editor = void 0;
|
|
491
469
|
};
|
|
492
470
|
}
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
const
|
|
496
|
-
if (
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
Object.defineProperty(file, "contents", { get: () => fileDiff.deletionLines.join("") });
|
|
504
|
-
return file;
|
|
471
|
+
applyDocumentChange(textDocument, newLineAnnotations) {
|
|
472
|
+
this.hunksRenderer.applyDocumentChange(textDocument);
|
|
473
|
+
const renderDiff = this.hunksRenderer.getRenderDiff();
|
|
474
|
+
if (renderDiff != null) this.fileDiff = renderDiff;
|
|
475
|
+
this.rerender();
|
|
476
|
+
this.interactionManager.setSelectionDirty();
|
|
477
|
+
if (newLineAnnotations !== void 0 && newLineAnnotations !== this.lineAnnotations) {
|
|
478
|
+
this.setLineAnnotations(newLineAnnotations);
|
|
479
|
+
this.hunksRenderer.setLineAnnotations(this.lineAnnotations);
|
|
480
|
+
this.renderAnnotations();
|
|
505
481
|
}
|
|
506
482
|
}
|
|
483
|
+
updateRenderCache(dirtyLines, themeType, shouldRerender) {
|
|
484
|
+
this.hunksRenderer.updateRenderCache(dirtyLines, themeType);
|
|
485
|
+
if (shouldRerender === true) this.render({
|
|
486
|
+
didEdit: true,
|
|
487
|
+
renderRange: this.renderRange
|
|
488
|
+
});
|
|
489
|
+
}
|
|
507
490
|
getAdditionFile() {
|
|
508
491
|
if (this.additionFile != null) return this.additionFile;
|
|
509
492
|
const fileDiff = this.fileDiff;
|
|
@@ -514,7 +497,10 @@ var FileDiff = class {
|
|
|
514
497
|
lang,
|
|
515
498
|
cacheKey
|
|
516
499
|
};
|
|
517
|
-
Object.defineProperty(file, "contents", {
|
|
500
|
+
Object.defineProperty(file, "contents", {
|
|
501
|
+
enumerable: true,
|
|
502
|
+
get: () => fileDiff.additionLines.join("")
|
|
503
|
+
});
|
|
518
504
|
return file;
|
|
519
505
|
}
|
|
520
506
|
}
|
|
@@ -1007,6 +993,26 @@ var FileDiff = class {
|
|
|
1007
993
|
this.renderPartialColumn(columns[1], additionsAST, insertPosition);
|
|
1008
994
|
} else throw new Error("FileDiff.insertPartialHTML: Invalid argument composition");
|
|
1009
995
|
}
|
|
996
|
+
updateLineType(renderRange) {
|
|
997
|
+
if (this.options.diffStyle === "unified") return;
|
|
998
|
+
const hunksResult = this.hunksRenderer.renderDiff(this.fileDiff, renderRange);
|
|
999
|
+
if (hunksResult == null) return;
|
|
1000
|
+
const columns = this.getCodeColumns("split", this.codeUnified, this.codeDeletions, this.codeAdditions);
|
|
1001
|
+
if (columns == null || !Array.isArray(columns)) return;
|
|
1002
|
+
const applyLineType = (type, column) => {
|
|
1003
|
+
if (column == null) return;
|
|
1004
|
+
const ast = this.hunksRenderer.renderCodeAST(type, hunksResult);
|
|
1005
|
+
const gutterChildren = getElementChildren(ast?.[0]);
|
|
1006
|
+
const contentChildren = getElementChildren(ast?.[1]);
|
|
1007
|
+
for (const [el, astChildren] of [[column.gutter, gutterChildren], [column.content, contentChildren]]) if (astChildren != null && el.childElementCount === astChildren.length) for (let i = 0; i < astChildren.length; i++) {
|
|
1008
|
+
const gutterElement = el.children[i];
|
|
1009
|
+
const lineType = astChildren[i].properties["data-line-type"];
|
|
1010
|
+
if (lineType != null && gutterElement.dataset.lineType !== lineType) gutterElement.dataset.lineType = lineType;
|
|
1011
|
+
}
|
|
1012
|
+
};
|
|
1013
|
+
applyLineType("deletions", columns[0]);
|
|
1014
|
+
applyLineType("additions", columns[1]);
|
|
1015
|
+
}
|
|
1010
1016
|
renderPartialColumn(column, ast, insertPosition) {
|
|
1011
1017
|
if (column == null || ast == null) return;
|
|
1012
1018
|
const gutterChildren = getElementChildren(ast[0]);
|
|
@@ -1206,6 +1212,9 @@ var FileDiff = class {
|
|
|
1206
1212
|
return deletions != null || additions != null ? [deletions, additions] : void 0;
|
|
1207
1213
|
}
|
|
1208
1214
|
}
|
|
1215
|
+
updateBuffers(renderRange) {
|
|
1216
|
+
if (this.pre != null) this.applyBuffers(this.pre, renderRange);
|
|
1217
|
+
}
|
|
1209
1218
|
applyBuffers(pre, renderRange) {
|
|
1210
1219
|
if (renderRange == null || this.shouldDisableVirtualizationBuffers()) {
|
|
1211
1220
|
if (this.bufferBefore != null) {
|