@pierre/diffs 1.2.1 → 1.2.3
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 +22 -7
- package/dist/components/CodeView.d.ts.map +1 -1
- package/dist/components/CodeView.js +202 -105
- package/dist/components/CodeView.js.map +1 -1
- package/dist/components/File.d.ts +2 -0
- package/dist/components/File.d.ts.map +1 -1
- package/dist/components/File.js +13 -9
- package/dist/components/File.js.map +1 -1
- package/dist/components/FileDiff.d.ts +2 -0
- package/dist/components/FileDiff.d.ts.map +1 -1
- package/dist/components/FileDiff.js +12 -6
- package/dist/components/FileDiff.js.map +1 -1
- package/dist/components/UnresolvedFile.d.ts.map +1 -1
- package/dist/components/VirtualizedFile.d.ts +4 -2
- package/dist/components/VirtualizedFile.d.ts.map +1 -1
- package/dist/components/VirtualizedFile.js +23 -6
- package/dist/components/VirtualizedFile.js.map +1 -1
- package/dist/components/VirtualizedFileDiff.d.ts +9 -8
- package/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
- package/dist/components/VirtualizedFileDiff.js +329 -142
- package/dist/components/VirtualizedFileDiff.js.map +1 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +3 -3
- package/dist/react/index.d.ts +2 -2
- package/dist/renderers/DiffHunksRenderer.d.ts +1 -0
- package/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
- package/dist/renderers/DiffHunksRenderer.js +19 -9
- package/dist/renderers/DiffHunksRenderer.js.map +1 -1
- package/dist/renderers/FileRenderer.d.ts +1 -0
- package/dist/renderers/FileRenderer.d.ts.map +1 -1
- package/dist/renderers/FileRenderer.js +12 -6
- package/dist/renderers/FileRenderer.js.map +1 -1
- package/dist/ssr/index.d.ts +2 -2
- package/dist/types.d.ts +7 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/computeEstimatedDiffHeights.d.ts +28 -0
- package/dist/utils/computeEstimatedDiffHeights.d.ts.map +1 -0
- package/dist/utils/computeEstimatedDiffHeights.js +111 -0
- package/dist/utils/computeEstimatedDiffHeights.js.map +1 -0
- package/dist/utils/getDiffHunksRendererOptions.d.ts +8 -0
- package/dist/utils/getDiffHunksRendererOptions.d.ts.map +1 -0
- package/dist/utils/getDiffHunksRendererOptions.js +31 -0
- package/dist/utils/getDiffHunksRendererOptions.js.map +1 -0
- package/dist/utils/getFileRendererOptions.d.ts +8 -0
- package/dist/utils/getFileRendererOptions.d.ts.map +1 -0
- package/dist/utils/getFileRendererOptions.js +24 -0
- package/dist/utils/getFileRendererOptions.js.map +1 -0
- package/dist/utils/iterateOverDiff.js +29 -30
- package/dist/utils/iterateOverDiff.js.map +1 -1
- package/dist/utils/parsePatchFiles.js +8 -1
- package/dist/utils/parsePatchFiles.js.map +1 -1
- package/dist/utils/virtualDiffLayout.d.ts +65 -0
- package/dist/utils/virtualDiffLayout.d.ts.map +1 -0
- package/dist/utils/virtualDiffLayout.js +94 -0
- package/dist/utils/virtualDiffLayout.js.map +1 -0
- package/dist/worker/WorkerPoolManager.d.ts +4 -1
- package/dist/worker/WorkerPoolManager.d.ts.map +1 -1
- package/dist/worker/WorkerPoolManager.js +49 -24
- package/dist/worker/WorkerPoolManager.js.map +1 -1
- package/dist/worker/types.d.ts +2 -0
- package/dist/worker/types.d.ts.map +1 -1
- package/dist/worker/worker-portable.js +163 -40
- package/dist/worker/worker-portable.js.map +1 -1
- package/dist/worker/worker.js +60 -30
- package/dist/worker/worker.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","names":["DiffsThemeNames","ExtensionFormatMap","FileContents","FileDiffMetadata","HighlighterTypes","LanguageRegistration","LineDiffTypes","RenderDiffOptions","RenderFileOptions","SupportedLanguages","ThemedDiffResult","ThemedFileResult","ThemeRegistrationResolved","ThemesType","WorkerRequestId","WorkerRenderingOptions","FileRendererInstance","DiffRendererInstance","RenderFileRequest","ResolvedLanguage","RenderDiffRequest","InitializeWorkerRequest","Exclude","SetRenderOptionsWorkerRequest","SubmitRequest","Omit","WorkerRequest","RenderFileSuccessResponse","RenderDiffSuccessResponse","InitializeSuccessResponse","RegisterThemeSuccessResponse","RenderErrorResponse","RenderSuccessResponse","WorkerResponse","WorkerPoolOptions","Worker","WorkerInitializationRenderOptions","Partial","InitializeWorkerTask","Error","SetRenderOptionsWorkerTask","RenderFileTask","Set","RenderDiffTask","AllWorkerTasks","WorkerStats"],"sources":["../../src/worker/types.d.ts"],"sourcesContent":["import type { DiffsThemeNames, ExtensionFormatMap, FileContents, FileDiffMetadata, HighlighterTypes, LanguageRegistration, LineDiffTypes, RenderDiffOptions, RenderFileOptions, SupportedLanguages, ThemedDiffResult, ThemedFileResult, ThemeRegistrationResolved, ThemesType } from '../types';\nexport type WorkerRequestId = string;\nexport interface WorkerRenderingOptions {\n theme: DiffsThemeNames | ThemesType;\n useTokenTransformer: boolean;\n tokenizeMaxLineLength: number;\n lineDiffType: LineDiffTypes;\n maxLineDiffLength: number;\n}\nexport interface FileRendererInstance {\n readonly __id: string;\n onHighlightSuccess(file: FileContents, result: ThemedFileResult, options: RenderFileOptions): unknown;\n onHighlightError(error: unknown): unknown;\n}\nexport interface DiffRendererInstance {\n readonly __id: string;\n onHighlightSuccess(diff: FileDiffMetadata, result: ThemedDiffResult, options: RenderDiffOptions): unknown;\n onHighlightError(error: unknown): unknown;\n}\nexport interface RenderFileRequest {\n type: 'file';\n id: WorkerRequestId;\n file: FileContents;\n resolvedLanguages?: ResolvedLanguage[];\n customExtensionsVersion?: number;\n customExtensionMap?: ExtensionFormatMap;\n}\nexport interface RenderDiffRequest {\n type: 'diff';\n id: WorkerRequestId;\n diff: FileDiffMetadata;\n resolvedLanguages?: ResolvedLanguage[];\n customExtensionsVersion?: number;\n customExtensionMap?: ExtensionFormatMap;\n}\nexport interface InitializeWorkerRequest {\n type: 'initialize';\n id: WorkerRequestId;\n renderOptions: WorkerRenderingOptions;\n preferredHighlighter: HighlighterTypes;\n resolvedThemes: ThemeRegistrationResolved[];\n resolvedLanguages?: ResolvedLanguage[];\n customExtensionsVersion?: number;\n customExtensionMap?: ExtensionFormatMap;\n}\nexport interface ResolvedLanguage {\n name: Exclude<SupportedLanguages, 'text'>;\n data: LanguageRegistration[];\n}\nexport interface SetRenderOptionsWorkerRequest {\n type: 'set-render-options';\n id: WorkerRequestId;\n renderOptions: WorkerRenderingOptions;\n resolvedThemes: ThemeRegistrationResolved[];\n}\nexport type SubmitRequest = Omit<RenderFileRequest, 'id'> | Omit<RenderDiffRequest, 'id'>;\nexport type WorkerRequest = RenderFileRequest | RenderDiffRequest | InitializeWorkerRequest | SetRenderOptionsWorkerRequest;\nexport interface RenderFileSuccessResponse {\n type: 'success';\n requestType: 'file';\n id: WorkerRequestId;\n result: ThemedFileResult;\n options: RenderFileOptions;\n sentAt: number;\n}\nexport interface RenderDiffSuccessResponse {\n type: 'success';\n requestType: 'diff';\n id: WorkerRequestId;\n result: ThemedDiffResult;\n options: RenderDiffOptions;\n sentAt: number;\n}\nexport interface InitializeSuccessResponse {\n type: 'success';\n requestType: 'initialize';\n id: WorkerRequestId;\n sentAt: number;\n}\nexport interface RegisterThemeSuccessResponse {\n type: 'success';\n requestType: 'set-render-options';\n id: WorkerRequestId;\n sentAt: number;\n}\nexport interface RenderErrorResponse {\n type: 'error';\n id: WorkerRequestId;\n error: string;\n stack?: string;\n}\nexport type RenderSuccessResponse = RenderFileSuccessResponse | RenderDiffSuccessResponse;\nexport type WorkerResponse = RenderSuccessResponse | RenderErrorResponse | InitializeSuccessResponse | RegisterThemeSuccessResponse;\nexport interface WorkerPoolOptions {\n /**\n * Factory function that creates a new Web Worker instance for the pool.\n * This is called once per worker in the pool during initialization.\n */\n workerFactory: () => Worker;\n /**\n * Number of workers to create in the pool.\n * @default 8\n */\n poolSize?: number;\n totalASTLRUCacheSize?: number;\n}\nexport interface WorkerInitializationRenderOptions extends Partial<WorkerRenderingOptions> {\n langs?: SupportedLanguages[];\n preferredHighlighter?: HighlighterTypes;\n}\nexport interface InitializeWorkerTask {\n type: 'initialize';\n id: WorkerRequestId;\n request: InitializeWorkerRequest;\n resolve(value?: undefined): void;\n reject(error: Error): void;\n requestStart: number;\n}\nexport interface SetRenderOptionsWorkerTask {\n type: 'set-render-options';\n id: WorkerRequestId;\n request: SetRenderOptionsWorkerRequest;\n resolve(value?: undefined): void;\n reject(error: Error): void;\n requestStart: number;\n}\nexport interface RenderFileTask {\n type: 'file';\n id: WorkerRequestId;\n request: RenderFileRequest;\n instances: Set<FileRendererInstance>;\n primeCache: boolean;\n highlightKey?: string;\n requestStart: number;\n}\nexport interface RenderDiffTask {\n type: 'diff';\n id: WorkerRequestId;\n request: RenderDiffRequest;\n instances: Set<DiffRendererInstance>;\n primeCache: boolean;\n highlightKey?: string;\n requestStart: number;\n}\nexport type AllWorkerTasks = InitializeWorkerTask | SetRenderOptionsWorkerTask | RenderFileTask | RenderDiffTask;\nexport interface WorkerStats {\n managerState: 'waiting' | 'initializing' | 'initialized';\n workersFailed: boolean;\n totalWorkers: number;\n busyWorkers: number;\n queuedTasks: number;\n activeTasks: number;\n themeSubscribers: number;\n fileCacheSize: number;\n diffCacheSize: number;\n}\n//# sourceMappingURL=types.d.ts.map"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","names":["DiffsThemeNames","ExtensionFormatMap","FileContents","FileDiffMetadata","HighlighterTypes","LanguageRegistration","LineDiffTypes","RenderDiffOptions","RenderFileOptions","SupportedLanguages","ThemedDiffResult","ThemedFileResult","ThemeRegistrationResolved","ThemesType","WorkerRequestId","WorkerRenderingOptions","FileRendererInstance","DiffRendererInstance","RenderFileRequest","ResolvedLanguage","RenderDiffRequest","InitializeWorkerRequest","Exclude","SetRenderOptionsWorkerRequest","SubmitRequest","Omit","WorkerRequest","RenderFileSuccessResponse","RenderDiffSuccessResponse","InitializeSuccessResponse","RegisterThemeSuccessResponse","RenderErrorResponse","RenderSuccessResponse","WorkerResponse","WorkerPoolOptions","Worker","WorkerInitializationRenderOptions","Partial","InitializeWorkerTask","Error","SetRenderOptionsWorkerTask","RenderFileTask","Set","RenderDiffTask","AllWorkerTasks","WorkerStats"],"sources":["../../src/worker/types.d.ts"],"sourcesContent":["import type { DiffsThemeNames, ExtensionFormatMap, FileContents, FileDiffMetadata, HighlighterTypes, LanguageRegistration, LineDiffTypes, RenderDiffOptions, RenderFileOptions, SupportedLanguages, ThemedDiffResult, ThemedFileResult, ThemeRegistrationResolved, ThemesType } from '../types';\nexport type WorkerRequestId = string;\nexport interface WorkerRenderingOptions {\n theme: DiffsThemeNames | ThemesType;\n useTokenTransformer: boolean;\n tokenizeMaxLineLength: number;\n lineDiffType: LineDiffTypes;\n maxLineDiffLength: number;\n}\nexport interface FileRendererInstance {\n readonly __id: string;\n onHighlightSuccess(file: FileContents, result: ThemedFileResult, options: RenderFileOptions): unknown;\n onHighlightError(error: unknown): unknown;\n}\nexport interface DiffRendererInstance {\n readonly __id: string;\n onHighlightSuccess(diff: FileDiffMetadata, result: ThemedDiffResult, options: RenderDiffOptions): unknown;\n onHighlightError(error: unknown): unknown;\n}\nexport interface RenderFileRequest {\n type: 'file';\n id: WorkerRequestId;\n file: FileContents;\n resolvedLanguages?: ResolvedLanguage[];\n customExtensionsVersion?: number;\n customExtensionMap?: ExtensionFormatMap;\n}\nexport interface RenderDiffRequest {\n type: 'diff';\n id: WorkerRequestId;\n diff: FileDiffMetadata;\n resolvedLanguages?: ResolvedLanguage[];\n customExtensionsVersion?: number;\n customExtensionMap?: ExtensionFormatMap;\n}\nexport interface InitializeWorkerRequest {\n type: 'initialize';\n id: WorkerRequestId;\n renderOptions: WorkerRenderingOptions;\n preferredHighlighter: HighlighterTypes;\n resolvedThemes: ThemeRegistrationResolved[];\n resolvedLanguages?: ResolvedLanguage[];\n customExtensionsVersion?: number;\n customExtensionMap?: ExtensionFormatMap;\n}\nexport interface ResolvedLanguage {\n name: Exclude<SupportedLanguages, 'text'>;\n data: LanguageRegistration[];\n}\nexport interface SetRenderOptionsWorkerRequest {\n type: 'set-render-options';\n id: WorkerRequestId;\n renderOptions: WorkerRenderingOptions;\n resolvedThemes: ThemeRegistrationResolved[];\n}\nexport type SubmitRequest = Omit<RenderFileRequest, 'id'> | Omit<RenderDiffRequest, 'id'>;\nexport type WorkerRequest = RenderFileRequest | RenderDiffRequest | InitializeWorkerRequest | SetRenderOptionsWorkerRequest;\nexport interface RenderFileSuccessResponse {\n type: 'success';\n requestType: 'file';\n id: WorkerRequestId;\n result: ThemedFileResult;\n options: RenderFileOptions;\n sentAt: number;\n}\nexport interface RenderDiffSuccessResponse {\n type: 'success';\n requestType: 'diff';\n id: WorkerRequestId;\n result: ThemedDiffResult;\n options: RenderDiffOptions;\n sentAt: number;\n}\nexport interface InitializeSuccessResponse {\n type: 'success';\n requestType: 'initialize';\n id: WorkerRequestId;\n sentAt: number;\n}\nexport interface RegisterThemeSuccessResponse {\n type: 'success';\n requestType: 'set-render-options';\n id: WorkerRequestId;\n sentAt: number;\n}\nexport interface RenderErrorResponse {\n type: 'error';\n id: WorkerRequestId;\n error: string;\n stack?: string;\n}\nexport type RenderSuccessResponse = RenderFileSuccessResponse | RenderDiffSuccessResponse;\nexport type WorkerResponse = RenderSuccessResponse | RenderErrorResponse | InitializeSuccessResponse | RegisterThemeSuccessResponse;\nexport interface WorkerPoolOptions {\n /**\n * Factory function that creates a new Web Worker instance for the pool.\n * This is called once per worker in the pool during initialization.\n */\n workerFactory: () => Worker;\n /**\n * Number of workers to create in the pool.\n * @default 8\n */\n poolSize?: number;\n totalASTLRUCacheSize?: number;\n}\nexport interface WorkerInitializationRenderOptions extends Partial<WorkerRenderingOptions> {\n langs?: SupportedLanguages[];\n preferredHighlighter?: HighlighterTypes;\n}\nexport interface InitializeWorkerTask {\n type: 'initialize';\n id: WorkerRequestId;\n request: InitializeWorkerRequest;\n resolve(value?: undefined): void;\n reject(error: Error): void;\n requestStart: number;\n}\nexport interface SetRenderOptionsWorkerTask {\n type: 'set-render-options';\n id: WorkerRequestId;\n request: SetRenderOptionsWorkerRequest;\n resolve(value?: undefined): void;\n reject(error: Error): void;\n requestStart: number;\n}\nexport interface RenderFileTask {\n type: 'file';\n id: WorkerRequestId;\n request: RenderFileRequest;\n instances: Set<FileRendererInstance>;\n primeCache: boolean;\n highlightKey?: string;\n renderOptionsVersion: number;\n requestStart: number;\n}\nexport interface RenderDiffTask {\n type: 'diff';\n id: WorkerRequestId;\n request: RenderDiffRequest;\n instances: Set<DiffRendererInstance>;\n primeCache: boolean;\n highlightKey?: string;\n renderOptionsVersion: number;\n requestStart: number;\n}\nexport type AllWorkerTasks = InitializeWorkerTask | SetRenderOptionsWorkerTask | RenderFileTask | RenderDiffTask;\nexport interface WorkerStats {\n managerState: 'waiting' | 'initializing' | 'initialized';\n workersFailed: boolean;\n totalWorkers: number;\n busyWorkers: number;\n queuedTasks: number;\n activeTasks: number;\n themeSubscribers: number;\n fileCacheSize: number;\n diffCacheSize: number;\n}\n//# sourceMappingURL=types.d.ts.map"],"mappings":"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"}
|
|
@@ -9270,7 +9270,7 @@ function l(a$1) {
|
|
|
9270
9270
|
}
|
|
9271
9271
|
|
|
9272
9272
|
//#endregion
|
|
9273
|
-
//#region ../../node_modules/.bun/regex@6.0
|
|
9273
|
+
//#region ../../node_modules/.bun/regex@6.1.0/node_modules/regex/src/utils-internals.js
|
|
9274
9274
|
const noncapturingDelim = String.raw`\(\?(?:[:=!>A-Za-z\-]|<[=!]|\(DEFINE\))`;
|
|
9275
9275
|
/**
|
|
9276
9276
|
Updates the array in place by incrementing each value greater than or equal to the threshold.
|
|
@@ -9458,13 +9458,16 @@ function getGroupContents(expression, contentsStartPos) {
|
|
|
9458
9458
|
}
|
|
9459
9459
|
|
|
9460
9460
|
//#endregion
|
|
9461
|
-
//#region ../../node_modules/.bun/regex@6.0
|
|
9461
|
+
//#region ../../node_modules/.bun/regex@6.1.0/node_modules/regex/src/atomic.js
|
|
9462
|
+
/**
|
|
9463
|
+
@import {PluginData, PluginResult} from './regex.js';
|
|
9464
|
+
*/
|
|
9462
9465
|
const atomicPluginToken = new RegExp(String.raw`(?<noncapturingStart>${noncapturingDelim})|(?<capturingStart>\((?:\?<[^>]+>)?)|\\?.`, "gsu");
|
|
9463
9466
|
/**
|
|
9464
9467
|
Apply transformations for atomic groups: `(?>…)`.
|
|
9465
9468
|
@param {string} expression
|
|
9466
|
-
@param {
|
|
9467
|
-
@returns {Required<
|
|
9469
|
+
@param {PluginData} [data]
|
|
9470
|
+
@returns {Required<PluginResult>}
|
|
9468
9471
|
*/
|
|
9469
9472
|
function atomic(expression, data) {
|
|
9470
9473
|
const hiddenCaptures = data?.hiddenCaptures ?? [];
|
|
@@ -9572,7 +9575,7 @@ Transform posessive quantifiers into atomic groups. The posessessive quantifiers
|
|
|
9572
9575
|
This follows Java, PCRE, Perl, and Python.
|
|
9573
9576
|
Possessive quantifiers in Oniguruma and Onigmo are only: `?+`, `*+`, `++`.
|
|
9574
9577
|
@param {string} expression
|
|
9575
|
-
@returns {
|
|
9578
|
+
@returns {PluginResult}
|
|
9576
9579
|
*/
|
|
9577
9580
|
function possessive(expression) {
|
|
9578
9581
|
if (!new RegExp(`${baseQuantifier}\\+`).test(expression)) {
|
|
@@ -9631,7 +9634,7 @@ function possessive(expression) {
|
|
|
9631
9634
|
}
|
|
9632
9635
|
|
|
9633
9636
|
//#endregion
|
|
9634
|
-
//#region ../../node_modules/.bun/regex@6.0
|
|
9637
|
+
//#region ../../node_modules/.bun/regex@6.1.0/node_modules/regex/src/subclass.js
|
|
9635
9638
|
/**
|
|
9636
9639
|
Works the same as JavaScript's native `RegExp` constructor in all contexts, but automatically
|
|
9637
9640
|
adjusts subpattern matches and indices (with flag `d`) to account for captures added as part of
|
|
@@ -15105,6 +15108,132 @@ function getLineNodes(nodes) {
|
|
|
15105
15108
|
throw new Error("getLineNodes: Unable to find children");
|
|
15106
15109
|
}
|
|
15107
15110
|
|
|
15111
|
+
//#endregion
|
|
15112
|
+
//#region src/utils/computeVirtualFileMetrics.ts
|
|
15113
|
+
function computeVirtualFileMetrics(metrics) {
|
|
15114
|
+
return {
|
|
15115
|
+
...DEFAULT_VIRTUAL_FILE_METRICS,
|
|
15116
|
+
...metrics
|
|
15117
|
+
};
|
|
15118
|
+
}
|
|
15119
|
+
function getVirtualFileHeaderRegion(metrics, disableFileHeader) {
|
|
15120
|
+
const paddingTop = getVirtualFilePaddingTop(metrics, disableFileHeader);
|
|
15121
|
+
return disableFileHeader ? paddingTop : metrics.diffHeaderHeight + paddingTop;
|
|
15122
|
+
}
|
|
15123
|
+
function getVirtualFilePaddingTop(metrics, disableFileHeader) {
|
|
15124
|
+
return metrics.paddingTop ?? (disableFileHeader ? metrics.spacing : 0);
|
|
15125
|
+
}
|
|
15126
|
+
function getVirtualFilePaddingBottom(metrics) {
|
|
15127
|
+
return metrics.paddingBottom ?? metrics.spacing;
|
|
15128
|
+
}
|
|
15129
|
+
function getDefaultHunkSeparatorHeight(type) {
|
|
15130
|
+
switch (type) {
|
|
15131
|
+
case "simple": return 4;
|
|
15132
|
+
case "metadata":
|
|
15133
|
+
case "line-info":
|
|
15134
|
+
case "line-info-basic":
|
|
15135
|
+
case "custom": return 32;
|
|
15136
|
+
}
|
|
15137
|
+
}
|
|
15138
|
+
|
|
15139
|
+
//#endregion
|
|
15140
|
+
//#region src/utils/virtualDiffLayout.ts
|
|
15141
|
+
function getExpandedRegion({ isPartial, rangeSize, expandedHunks, hunkIndex, collapsedContextThreshold }) {
|
|
15142
|
+
const normalizedRangeSize = Math.max(rangeSize, 0);
|
|
15143
|
+
if (normalizedRangeSize === 0 || isPartial) {
|
|
15144
|
+
return {
|
|
15145
|
+
fromStart: 0,
|
|
15146
|
+
fromEnd: 0,
|
|
15147
|
+
rangeSize: normalizedRangeSize,
|
|
15148
|
+
collapsedLines: normalizedRangeSize,
|
|
15149
|
+
renderAll: false
|
|
15150
|
+
};
|
|
15151
|
+
}
|
|
15152
|
+
if (expandedHunks === true || normalizedRangeSize <= collapsedContextThreshold) {
|
|
15153
|
+
return {
|
|
15154
|
+
fromStart: normalizedRangeSize,
|
|
15155
|
+
fromEnd: 0,
|
|
15156
|
+
rangeSize: normalizedRangeSize,
|
|
15157
|
+
collapsedLines: 0,
|
|
15158
|
+
renderAll: true
|
|
15159
|
+
};
|
|
15160
|
+
}
|
|
15161
|
+
const region = expandedHunks?.get(hunkIndex);
|
|
15162
|
+
const fromStart = Math.min(Math.max(region?.fromStart ?? 0, 0), normalizedRangeSize);
|
|
15163
|
+
const fromEnd = Math.min(Math.max(region?.fromEnd ?? 0, 0), normalizedRangeSize);
|
|
15164
|
+
const expandedCount = fromStart + fromEnd;
|
|
15165
|
+
const renderAll = expandedCount >= normalizedRangeSize;
|
|
15166
|
+
return {
|
|
15167
|
+
fromStart: renderAll ? normalizedRangeSize : fromStart,
|
|
15168
|
+
fromEnd: renderAll ? 0 : fromEnd,
|
|
15169
|
+
rangeSize: normalizedRangeSize,
|
|
15170
|
+
collapsedLines: Math.max(normalizedRangeSize - expandedCount, 0),
|
|
15171
|
+
renderAll
|
|
15172
|
+
};
|
|
15173
|
+
}
|
|
15174
|
+
function getHunkSeparatorHeight({ type, metrics }) {
|
|
15175
|
+
return metrics.hunkSeparatorHeight ?? getDefaultHunkSeparatorHeight(type);
|
|
15176
|
+
}
|
|
15177
|
+
function getHunkSeparatorGap({ type, metrics }) {
|
|
15178
|
+
return type === "simple" || type === "metadata" || type === "line-info-basic" ? 0 : metrics.spacing;
|
|
15179
|
+
}
|
|
15180
|
+
function hasLeadingHunkSeparator({ type, hunkIndex, hunkSpecs }) {
|
|
15181
|
+
switch (type) {
|
|
15182
|
+
case "simple": return hunkIndex > 0;
|
|
15183
|
+
case "metadata": return hunkSpecs != null;
|
|
15184
|
+
case "line-info":
|
|
15185
|
+
case "line-info-basic":
|
|
15186
|
+
case "custom": return true;
|
|
15187
|
+
}
|
|
15188
|
+
}
|
|
15189
|
+
function hasTrailingHunkSeparator(type) {
|
|
15190
|
+
return type !== "simple" && type !== "metadata";
|
|
15191
|
+
}
|
|
15192
|
+
function getLeadingHunkSeparatorLayout({ type, metrics, hunkIndex, hunkSpecs }) {
|
|
15193
|
+
if (!hasLeadingHunkSeparator({
|
|
15194
|
+
type,
|
|
15195
|
+
hunkIndex,
|
|
15196
|
+
hunkSpecs
|
|
15197
|
+
})) {
|
|
15198
|
+
return undefined;
|
|
15199
|
+
}
|
|
15200
|
+
const height = getHunkSeparatorHeight({
|
|
15201
|
+
type,
|
|
15202
|
+
metrics
|
|
15203
|
+
});
|
|
15204
|
+
const gap = getHunkSeparatorGap({
|
|
15205
|
+
type,
|
|
15206
|
+
metrics
|
|
15207
|
+
});
|
|
15208
|
+
const gapBefore = hunkIndex > 0 ? gap : 0;
|
|
15209
|
+
const gapAfter = gap;
|
|
15210
|
+
return {
|
|
15211
|
+
height,
|
|
15212
|
+
gapBefore,
|
|
15213
|
+
gapAfter,
|
|
15214
|
+
totalHeight: gapBefore + height + gapAfter
|
|
15215
|
+
};
|
|
15216
|
+
}
|
|
15217
|
+
function getTrailingHunkSeparatorLayout({ type, metrics }) {
|
|
15218
|
+
if (!hasTrailingHunkSeparator(type)) {
|
|
15219
|
+
return undefined;
|
|
15220
|
+
}
|
|
15221
|
+
const height = getHunkSeparatorHeight({
|
|
15222
|
+
type,
|
|
15223
|
+
metrics
|
|
15224
|
+
});
|
|
15225
|
+
const gapBefore = getHunkSeparatorGap({
|
|
15226
|
+
type,
|
|
15227
|
+
metrics
|
|
15228
|
+
});
|
|
15229
|
+
return {
|
|
15230
|
+
height,
|
|
15231
|
+
gapBefore,
|
|
15232
|
+
gapAfter: 0,
|
|
15233
|
+
totalHeight: gapBefore + height
|
|
15234
|
+
};
|
|
15235
|
+
}
|
|
15236
|
+
|
|
15108
15237
|
//#endregion
|
|
15109
15238
|
//#region src/utils/iterateOverDiff.ts
|
|
15110
15239
|
function iterateOverDiff({ diff, diffStyle, startingLine = 0, totalLines = Infinity, expandedHunks, collapsedContextThreshold = DEFAULT_COLLAPSED_CONTEXT_THRESHOLD, callback }) {
|
|
@@ -15199,7 +15328,13 @@ function iterateOverDiff({ diff, diffStyle, startingLine = 0, totalLines = Infin
|
|
|
15199
15328
|
if (state.shouldBreak()) {
|
|
15200
15329
|
break;
|
|
15201
15330
|
}
|
|
15202
|
-
const leadingRegion = getExpandedRegion(
|
|
15331
|
+
const leadingRegion = getExpandedRegion({
|
|
15332
|
+
isPartial: diff.isPartial,
|
|
15333
|
+
rangeSize: hunk.collapsedBefore,
|
|
15334
|
+
expandedHunks,
|
|
15335
|
+
hunkIndex,
|
|
15336
|
+
collapsedContextThreshold
|
|
15337
|
+
});
|
|
15203
15338
|
const trailingRegion = (() => {
|
|
15204
15339
|
if (hunk !== state.finalHunk || !hasFinalCollapsedHunk(diff)) {
|
|
15205
15340
|
return undefined;
|
|
@@ -15210,7 +15345,13 @@ function iterateOverDiff({ diff, diffStyle, startingLine = 0, totalLines = Infin
|
|
|
15210
15345
|
throw new Error(`iterateOverDiff: trailing context mismatch (additions=${additionRemaining}, deletions=${deletionRemaining}) for ${diff.name}`);
|
|
15211
15346
|
}
|
|
15212
15347
|
const trailingRangeSize = Math.min(additionRemaining, deletionRemaining);
|
|
15213
|
-
return getExpandedRegion(
|
|
15348
|
+
return getExpandedRegion({
|
|
15349
|
+
isPartial: diff.isPartial,
|
|
15350
|
+
rangeSize: trailingRangeSize,
|
|
15351
|
+
expandedHunks,
|
|
15352
|
+
hunkIndex: diff.hunks.length,
|
|
15353
|
+
collapsedContextThreshold
|
|
15354
|
+
});
|
|
15214
15355
|
})();
|
|
15215
15356
|
const expandedLineCount = leadingRegion.fromStart + leadingRegion.fromEnd;
|
|
15216
15357
|
function getTrailingCollapsedAfter(unifiedLineIndex$1, splitLineIndex$1) {
|
|
@@ -15548,13 +15689,25 @@ function getHunkPrefixCounts({ diff, expandedHunks, collapsedContextThreshold })
|
|
|
15548
15689
|
if (hunk == null) {
|
|
15549
15690
|
throw new Error("iterateOverDiff: invalid hunk summary index");
|
|
15550
15691
|
}
|
|
15551
|
-
const leadingRegion = getExpandedRegion(
|
|
15692
|
+
const leadingRegion = getExpandedRegion({
|
|
15693
|
+
isPartial: diff.isPartial,
|
|
15694
|
+
rangeSize: hunk.collapsedBefore,
|
|
15695
|
+
expandedHunks,
|
|
15696
|
+
hunkIndex: index,
|
|
15697
|
+
collapsedContextThreshold
|
|
15698
|
+
});
|
|
15552
15699
|
const leadingCount = leadingRegion.fromStart + leadingRegion.fromEnd;
|
|
15553
15700
|
splitCount += leadingCount + hunk.splitLineCount;
|
|
15554
15701
|
unifiedCount += leadingCount + hunk.unifiedLineCount;
|
|
15555
15702
|
if (index === finalHunkIndex && hasFinalCollapsedHunk(diff)) {
|
|
15556
15703
|
const trailingRangeSize = getTrailingRangeSize(diff, hunk);
|
|
15557
|
-
const trailingRegion = getExpandedRegion(
|
|
15704
|
+
const trailingRegion = getExpandedRegion({
|
|
15705
|
+
isPartial: diff.isPartial,
|
|
15706
|
+
rangeSize: trailingRangeSize,
|
|
15707
|
+
expandedHunks,
|
|
15708
|
+
hunkIndex: diff.hunks.length,
|
|
15709
|
+
collapsedContextThreshold
|
|
15710
|
+
});
|
|
15558
15711
|
const trailingCount = trailingRegion.fromStart + trailingRegion.fromEnd;
|
|
15559
15712
|
splitCount += trailingCount;
|
|
15560
15713
|
unifiedCount += trailingCount;
|
|
@@ -15604,36 +15757,6 @@ function getTrailingRangeSize(diff, hunk) {
|
|
|
15604
15757
|
}
|
|
15605
15758
|
return Math.min(additionRemaining, deletionRemaining);
|
|
15606
15759
|
}
|
|
15607
|
-
function getExpandedRegion(isPartial, rangeSize, expandedHunks, hunkIndex, collapsedContextThreshold) {
|
|
15608
|
-
rangeSize = Math.max(rangeSize, 0);
|
|
15609
|
-
if (rangeSize === 0 || isPartial) {
|
|
15610
|
-
return {
|
|
15611
|
-
fromStart: 0,
|
|
15612
|
-
fromEnd: 0,
|
|
15613
|
-
rangeSize,
|
|
15614
|
-
collapsedLines: Math.max(rangeSize, 0)
|
|
15615
|
-
};
|
|
15616
|
-
}
|
|
15617
|
-
if (expandedHunks === true || rangeSize <= collapsedContextThreshold) {
|
|
15618
|
-
return {
|
|
15619
|
-
fromStart: rangeSize,
|
|
15620
|
-
fromEnd: 0,
|
|
15621
|
-
rangeSize,
|
|
15622
|
-
collapsedLines: 0
|
|
15623
|
-
};
|
|
15624
|
-
}
|
|
15625
|
-
const region = expandedHunks?.get(hunkIndex);
|
|
15626
|
-
const fromStart = Math.min(Math.max(region?.fromStart ?? 0, 0), rangeSize);
|
|
15627
|
-
const fromEnd = Math.min(Math.max(region?.fromEnd ?? 0, 0), rangeSize);
|
|
15628
|
-
const expandedCount = fromStart + fromEnd;
|
|
15629
|
-
const renderAll = expandedCount >= rangeSize;
|
|
15630
|
-
return {
|
|
15631
|
-
fromStart: renderAll ? rangeSize : fromStart,
|
|
15632
|
-
fromEnd: renderAll ? 0 : fromEnd,
|
|
15633
|
-
rangeSize,
|
|
15634
|
-
collapsedLines: Math.max(rangeSize - expandedCount, 0)
|
|
15635
|
-
};
|
|
15636
|
-
}
|
|
15637
15760
|
function hasFinalCollapsedHunk(diff) {
|
|
15638
15761
|
const lastHunk = diff.hunks.at(-1);
|
|
15639
15762
|
if (lastHunk == null || diff.isPartial || diff.additionLines.length === 0 || diff.deletionLines.length === 0) {
|