@pierre/diffs 1.3.0-beta.3 → 1.3.0-beta.5
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/README.md +6 -6
- package/dist/components/CodeView.js +6 -6
- package/dist/components/CodeView.js.map +1 -1
- package/dist/components/File.d.ts +3 -2
- package/dist/components/File.d.ts.map +1 -1
- package/dist/components/File.js +35 -21
- package/dist/components/File.js.map +1 -1
- package/dist/components/FileDiff.d.ts +8 -4
- package/dist/components/FileDiff.d.ts.map +1 -1
- package/dist/components/FileDiff.js +66 -56
- package/dist/components/FileDiff.js.map +1 -1
- package/dist/components/FileStream.js +4 -2
- package/dist/components/FileStream.js.map +1 -1
- package/dist/components/UnresolvedFile.js +1 -1
- package/dist/components/VirtualizedFile.d.ts +6 -2
- package/dist/components/VirtualizedFile.d.ts.map +1 -1
- package/dist/components/VirtualizedFile.js +89 -24
- package/dist/components/VirtualizedFile.js.map +1 -1
- package/dist/components/VirtualizedFileDiff.d.ts +8 -2
- package/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
- package/dist/components/VirtualizedFileDiff.js +91 -15
- package/dist/components/VirtualizedFileDiff.js.map +1 -1
- package/dist/editor/command.d.ts +1 -1
- package/dist/editor/command.d.ts.map +1 -1
- package/dist/editor/command.js +3 -3
- package/dist/editor/command.js.map +1 -1
- package/dist/editor/editStack.d.ts +1 -1
- package/dist/editor/editor.d.ts +37 -9
- package/dist/editor/editor.d.ts.map +1 -1
- package/dist/editor/editor.js +558 -449
- 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/index.d.ts +2 -2
- 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 +8 -3
- package/dist/editor/pieceTable.d.ts.map +1 -1
- package/dist/editor/pieceTable.js +74 -12
- package/dist/editor/pieceTable.js.map +1 -1
- package/dist/editor/searchPanel.d.ts +12 -3
- package/dist/editor/searchPanel.d.ts.map +1 -1
- package/dist/editor/searchPanel.js +168 -54
- 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 +4 -3
- package/dist/editor/sprite.d.ts.map +1 -1
- package/dist/editor/sprite.js +19 -5
- 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/textMeasure.d.ts +1 -0
- package/dist/editor/textMeasure.d.ts.map +1 -1
- package/dist/editor/textMeasure.js +6 -0
- package/dist/editor/textMeasure.js.map +1 -1
- package/dist/editor/tokenzier.js +20 -9
- 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/managers/InteractionManager.js +1 -1
- package/dist/managers/InteractionManager.js.map +1 -1
- package/dist/managers/ResizeManager.js +1 -1
- package/dist/managers/ResizeManager.js.map +1 -1
- package/dist/react/CodeView.js +1 -1
- package/dist/react/index.d.ts +2 -2
- package/dist/react/utils/useFileDiffInstance.js +1 -0
- package/dist/react/utils/useFileDiffInstance.js.map +1 -1
- package/dist/renderers/DiffHunksRenderer.d.ts +6 -2
- package/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
- package/dist/renderers/DiffHunksRenderer.js +183 -12
- 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 +17 -5
- package/dist/renderers/FileRenderer.js.map +1 -1
- package/dist/ssr/FileDiffReact.js +1 -1
- package/dist/ssr/index.d.ts +2 -2
- package/dist/types.d.ts +25 -8
- 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/includesFileAnnotations.d.ts +17 -0
- package/dist/utils/includesFileAnnotations.d.ts.map +1 -0
- package/dist/utils/includesFileAnnotations.js +19 -0
- package/dist/utils/includesFileAnnotations.js.map +1 -0
- package/dist/utils/parseMergeConflictDiffFromFile.js.map +1 -1
- package/dist/utils/parsePatchFiles.js +93 -4
- package/dist/utils/parsePatchFiles.js.map +1 -1
- package/dist/utils/renderDiffWithHighlighter.js +4 -2
- package/dist/utils/renderDiffWithHighlighter.js.map +1 -1
- package/dist/utils/renderFileWithHighlighter.js +4 -2
- package/dist/utils/renderFileWithHighlighter.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/{wasm-BaDzIkIn.js → wasm-qE0LgnY3.js} +2 -2
- package/dist/worker/{wasm-BaDzIkIn.js.map → wasm-qE0LgnY3.js.map} +1 -1
- package/dist/worker/worker-portable.js +1016 -275
- package/dist/worker/worker-portable.js.map +1 -1
- package/dist/worker/worker.js +31 -19
- package/dist/worker/worker.js.map +1 -1
- package/package.json +5 -10
- package/dist/editor/quickEdit.d.ts.map +0 -1
- package/dist/editor/quickEdit.js.map +0 -1
|
@@ -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 private syncRenderView;\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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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { CUSTOM_HEADER_SLOT_ID, DEFAULT_THEMES, DEFAULT_TOKENIZE_MAX_LENGTH, DIFFS_TAG_NAME, EMPTY_RENDER_RANGE, HEADER_METADATA_SLOT_ID, HEADER_PREFIX_SLOT_ID, THEME_CSS_ATTRIBUTE, UNSAFE_CSS_ATTRIBUTE } from "../constants.js";
|
|
2
|
+
import { queueRender } from "../managers/UniversalRenderingManager.js";
|
|
2
3
|
import { areThemesEqual } from "../utils/areThemesEqual.js";
|
|
3
4
|
import { isStyleNode } from "../utils/isStyleNode.js";
|
|
4
5
|
import { areFilesEqual } from "../utils/areFilesEqual.js";
|
|
@@ -72,7 +73,6 @@ var FileDiff = class {
|
|
|
72
73
|
mounted = false;
|
|
73
74
|
enabled = true;
|
|
74
75
|
editor;
|
|
75
|
-
rerenderTimeout;
|
|
76
76
|
constructor(options = { theme: DEFAULT_THEMES }, workerManager, isContainerManaged = false) {
|
|
77
77
|
this.options = options;
|
|
78
78
|
this.workerManager = workerManager;
|
|
@@ -94,11 +94,12 @@ var FileDiff = class {
|
|
|
94
94
|
return new DiffHunksRenderer(this.getHunksRendererOptions(options), this.handleHighlightRender, this.workerManager);
|
|
95
95
|
}
|
|
96
96
|
getLineIndex = (lineNumber, side = "additions") => {
|
|
97
|
-
|
|
98
|
-
|
|
97
|
+
const fileDiff = this.hunksRenderer.getRenderDiff() ?? this.fileDiff;
|
|
98
|
+
if (fileDiff == null) return;
|
|
99
|
+
const lastHunk = fileDiff.hunks.at(-1);
|
|
99
100
|
let targetUnifiedIndex;
|
|
100
101
|
let targetSplitIndex;
|
|
101
|
-
hunkIterator: for (const hunk of
|
|
102
|
+
hunkIterator: for (const hunk of fileDiff.hunks) {
|
|
102
103
|
let currentLineNumber = side === "deletions" ? hunk.deletionStart : hunk.additionStart;
|
|
103
104
|
const hunkCount = side === "deletions" ? hunk.deletionCount : hunk.additionCount;
|
|
104
105
|
let splitIndex = hunk.splitLineStart;
|
|
@@ -183,7 +184,8 @@ var FileDiff = class {
|
|
|
183
184
|
setLineAnnotations(lineAnnotations) {
|
|
184
185
|
this.lineAnnotations = lineAnnotations;
|
|
185
186
|
}
|
|
186
|
-
canPartiallyRender(forceRender, annotationsChanged, didContentChange) {
|
|
187
|
+
canPartiallyRender(forceRender, annotationsChanged, didContentChange, didEdit) {
|
|
188
|
+
if (didEdit) return true;
|
|
187
189
|
if (forceRender || annotationsChanged || didContentChange || typeof this.options.hunkSeparators === "function") return false;
|
|
188
190
|
return true;
|
|
189
191
|
}
|
|
@@ -213,7 +215,7 @@ var FileDiff = class {
|
|
|
213
215
|
if (!this.isContainerManaged) this.fileContainer?.remove();
|
|
214
216
|
this.fileContainer = void 0;
|
|
215
217
|
this.mounted = false;
|
|
216
|
-
this.lineAnnotations = [];
|
|
218
|
+
if (!recycle) this.lineAnnotations = [];
|
|
217
219
|
this.clearAuxiliaryNodes();
|
|
218
220
|
this.annotationCache.clear();
|
|
219
221
|
this.pre = void 0;
|
|
@@ -249,8 +251,6 @@ var FileDiff = class {
|
|
|
249
251
|
this.enabled = false;
|
|
250
252
|
this.editor?.cleanUp();
|
|
251
253
|
this.editor = void 0;
|
|
252
|
-
if (this.rerenderTimeout !== void 0) clearTimeout(this.rerenderTimeout);
|
|
253
|
-
this.rerenderTimeout = void 0;
|
|
254
254
|
}
|
|
255
255
|
virtualizedSetup() {
|
|
256
256
|
this.enabled = true;
|
|
@@ -351,16 +351,16 @@ var FileDiff = class {
|
|
|
351
351
|
this.hunksRenderer.expandHunk(hunkIndex, direction, expansionLineCountOverride);
|
|
352
352
|
this.rerender();
|
|
353
353
|
};
|
|
354
|
-
render({ oldFile, newFile, fileDiff, deferManagers = false, forceRender = false, preventEmit = false, lineAnnotations, fileContainer, containerWrapper, renderRange }) {
|
|
354
|
+
render({ oldFile, newFile, fileDiff, deferManagers = false, didEdit = false, forceRender = false, preventEmit = false, lineAnnotations, fileContainer, containerWrapper, renderRange }) {
|
|
355
355
|
if (!this.enabled) throw new Error("FileDiff.render: attempting to call render after cleaned up");
|
|
356
|
-
this.editor?.
|
|
356
|
+
this.editor?.__postponeBackgroundTokenizeToNextFrame();
|
|
357
357
|
const { collapsed = false, themeType = "system" } = this.options;
|
|
358
358
|
const nextRenderRange = collapsed ? void 0 : renderRange;
|
|
359
359
|
const themeChanged = this.hasThemeChanged();
|
|
360
360
|
const filesDidChange = oldFile != null && newFile != null && (!areFilesEqual(oldFile, this.deletionFile) || !areFilesEqual(newFile, this.additionFile));
|
|
361
361
|
let diffDidChange = fileDiff != null && fileDiff !== this.fileDiff;
|
|
362
362
|
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);
|
|
363
|
+
if (!collapsed && areRenderRangesEqual(nextRenderRange, this.renderRange) && !didEdit && !forceRender && !annotationsChanged && !themeChanged && (fileDiff != null && fileDiff === this.fileDiff || fileDiff == null && !filesDidChange)) return this.applyCachedThemeState(themeType);
|
|
364
364
|
const { renderRange: previousRenderRange } = this;
|
|
365
365
|
this.renderRange = nextRenderRange;
|
|
366
366
|
this.deletionFile = oldFile;
|
|
@@ -406,7 +406,7 @@ var FileDiff = class {
|
|
|
406
406
|
}
|
|
407
407
|
try {
|
|
408
408
|
const pre = this.getOrCreatePreNode(fileContainer);
|
|
409
|
-
if (!(this.canPartiallyRender(forceRender, annotationsChanged, filesDidChange || diffDidChange || themeChanged) && this.applyPartialRender({
|
|
409
|
+
if (!(this.canPartiallyRender(forceRender, annotationsChanged, filesDidChange || diffDidChange || themeChanged, didEdit) && this.applyPartialRender({
|
|
410
410
|
previousRenderRange,
|
|
411
411
|
renderRange: nextRenderRange
|
|
412
412
|
}))) {
|
|
@@ -423,18 +423,14 @@ var FileDiff = class {
|
|
|
423
423
|
this.pre = void 0;
|
|
424
424
|
}
|
|
425
425
|
this.renderSeparators(hunksResult.hunkData);
|
|
426
|
-
}
|
|
426
|
+
} else if (didEdit && nextRenderRange != null) this.updateLineType(nextRenderRange);
|
|
427
427
|
this.applyBuffers(pre, nextRenderRange);
|
|
428
428
|
this.injectUnsafeCSS();
|
|
429
429
|
this.renderAnnotations();
|
|
430
430
|
this.renderGutterUtility();
|
|
431
431
|
this.managersDirty = true;
|
|
432
432
|
if (!deferManagers) this.flushManagers();
|
|
433
|
-
|
|
434
|
-
const file = this.getAdditionFile();
|
|
435
|
-
if (editor != null && file != null) this.hunksRenderer.initializeHighlighter().then((highlighter) => {
|
|
436
|
-
editor.syncToRenderedView(highlighter, "diff", fileContainer, file, this.lineAnnotations, this.renderRange);
|
|
437
|
-
});
|
|
433
|
+
if (this.editor != null) queueRender(this.syncRenderView);
|
|
438
434
|
} catch (error) {
|
|
439
435
|
if (disableErrorHandling) throw error;
|
|
440
436
|
console.error(error);
|
|
@@ -457,53 +453,41 @@ var FileDiff = class {
|
|
|
457
453
|
this.mounted = true;
|
|
458
454
|
onPostRender?.(fileContainer, this, phase);
|
|
459
455
|
}
|
|
460
|
-
|
|
461
|
-
|
|
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
|
-
attachEditor(editor) {
|
|
482
|
-
this.editor?.cleanUp();
|
|
456
|
+
syncRenderView = () => {
|
|
457
|
+
const editor = this.editor;
|
|
483
458
|
const fileContainer = this.fileContainer;
|
|
484
459
|
const file = this.getAdditionFile();
|
|
485
|
-
if (fileContainer != null && file != null) this.hunksRenderer.initializeHighlighter().then((highlighter) => {
|
|
486
|
-
editor.
|
|
460
|
+
if (editor != null && fileContainer != null && file != null) this.hunksRenderer.initializeHighlighter().then((highlighter) => {
|
|
461
|
+
editor.__syncRenderView(highlighter, fileContainer, file, this.lineAnnotations, this.renderRange);
|
|
487
462
|
});
|
|
463
|
+
};
|
|
464
|
+
attachEditor(editor) {
|
|
465
|
+
this.editor?.cleanUp();
|
|
488
466
|
this.editor = editor;
|
|
467
|
+
queueRender(this.syncRenderView);
|
|
489
468
|
return () => {
|
|
490
469
|
this.editor = void 0;
|
|
491
470
|
};
|
|
492
471
|
}
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
const
|
|
496
|
-
if (
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
Object.defineProperty(file, "contents", { get: () => fileDiff.deletionLines.join("") });
|
|
504
|
-
return file;
|
|
472
|
+
applyDocumentChange(textDocument, newLineAnnotations) {
|
|
473
|
+
this.hunksRenderer.applyDocumentChange(textDocument);
|
|
474
|
+
const renderDiff = this.hunksRenderer.getRenderDiff();
|
|
475
|
+
if (renderDiff != null) this.fileDiff = renderDiff;
|
|
476
|
+
this.rerender();
|
|
477
|
+
this.interactionManager.setSelectionDirty();
|
|
478
|
+
if (newLineAnnotations !== void 0 && newLineAnnotations !== this.lineAnnotations) {
|
|
479
|
+
this.setLineAnnotations(newLineAnnotations);
|
|
480
|
+
this.hunksRenderer.setLineAnnotations(this.lineAnnotations);
|
|
481
|
+
this.renderAnnotations();
|
|
505
482
|
}
|
|
506
483
|
}
|
|
484
|
+
updateRenderCache(dirtyLines, themeType, shouldRerender) {
|
|
485
|
+
this.hunksRenderer.updateRenderCache(dirtyLines, themeType);
|
|
486
|
+
if (shouldRerender === true) this.render({
|
|
487
|
+
didEdit: true,
|
|
488
|
+
renderRange: this.renderRange
|
|
489
|
+
});
|
|
490
|
+
}
|
|
507
491
|
getAdditionFile() {
|
|
508
492
|
if (this.additionFile != null) return this.additionFile;
|
|
509
493
|
const fileDiff = this.fileDiff;
|
|
@@ -514,7 +498,10 @@ var FileDiff = class {
|
|
|
514
498
|
lang,
|
|
515
499
|
cacheKey
|
|
516
500
|
};
|
|
517
|
-
Object.defineProperty(file, "contents", {
|
|
501
|
+
Object.defineProperty(file, "contents", {
|
|
502
|
+
enumerable: true,
|
|
503
|
+
get: () => fileDiff.additionLines.join("")
|
|
504
|
+
});
|
|
518
505
|
return file;
|
|
519
506
|
}
|
|
520
507
|
}
|
|
@@ -1007,6 +994,26 @@ var FileDiff = class {
|
|
|
1007
994
|
this.renderPartialColumn(columns[1], additionsAST, insertPosition);
|
|
1008
995
|
} else throw new Error("FileDiff.insertPartialHTML: Invalid argument composition");
|
|
1009
996
|
}
|
|
997
|
+
updateLineType(renderRange) {
|
|
998
|
+
if (this.options.diffStyle === "unified") return;
|
|
999
|
+
const hunksResult = this.hunksRenderer.renderDiff(this.fileDiff, renderRange);
|
|
1000
|
+
if (hunksResult == null) return;
|
|
1001
|
+
const columns = this.getCodeColumns("split", this.codeUnified, this.codeDeletions, this.codeAdditions);
|
|
1002
|
+
if (columns == null || !Array.isArray(columns)) return;
|
|
1003
|
+
const applyLineType = (type, column) => {
|
|
1004
|
+
if (column == null) return;
|
|
1005
|
+
const ast = this.hunksRenderer.renderCodeAST(type, hunksResult);
|
|
1006
|
+
const gutterChildren = getElementChildren(ast?.[0]);
|
|
1007
|
+
const contentChildren = getElementChildren(ast?.[1]);
|
|
1008
|
+
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++) {
|
|
1009
|
+
const gutterElement = el.children[i];
|
|
1010
|
+
const lineType = astChildren[i].properties["data-line-type"];
|
|
1011
|
+
if (lineType != null && gutterElement.dataset.lineType !== lineType) gutterElement.dataset.lineType = lineType;
|
|
1012
|
+
}
|
|
1013
|
+
};
|
|
1014
|
+
applyLineType("deletions", columns[0]);
|
|
1015
|
+
applyLineType("additions", columns[1]);
|
|
1016
|
+
}
|
|
1010
1017
|
renderPartialColumn(column, ast, insertPosition) {
|
|
1011
1018
|
if (column == null || ast == null) return;
|
|
1012
1019
|
const gutterChildren = getElementChildren(ast[0]);
|
|
@@ -1206,6 +1213,9 @@ var FileDiff = class {
|
|
|
1206
1213
|
return deletions != null || additions != null ? [deletions, additions] : void 0;
|
|
1207
1214
|
}
|
|
1208
1215
|
}
|
|
1216
|
+
updateBuffers(renderRange) {
|
|
1217
|
+
if (this.pre != null) this.applyBuffers(this.pre, renderRange);
|
|
1218
|
+
}
|
|
1209
1219
|
applyBuffers(pre, renderRange) {
|
|
1210
1220
|
if (renderRange == null || this.shouldDisableVirtualizationBuffers()) {
|
|
1211
1221
|
if (this.bufferBefore != null) {
|