@pierre/diffs 1.3.0-beta.9 → 1.3.0-rc.1
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 +12 -12
- package/dist/components/CodeView.d.ts.map +1 -1
- package/dist/components/CodeView.js +49 -42
- package/dist/components/CodeView.js.map +1 -1
- package/dist/components/File.d.ts +7 -2
- package/dist/components/File.d.ts.map +1 -1
- package/dist/components/File.js +36 -8
- package/dist/components/File.js.map +1 -1
- package/dist/components/FileDiff.d.ts +34 -6
- package/dist/components/FileDiff.d.ts.map +1 -1
- package/dist/components/FileDiff.js +198 -17
- package/dist/components/FileDiff.js.map +1 -1
- package/dist/components/VirtualizedFile.d.ts +2 -1
- package/dist/components/VirtualizedFile.d.ts.map +1 -1
- package/dist/components/VirtualizedFile.js +9 -5
- package/dist/components/VirtualizedFile.js.map +1 -1
- package/dist/components/VirtualizedFileDiff.d.ts +14 -0
- package/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
- package/dist/components/VirtualizedFileDiff.js +61 -3
- package/dist/components/VirtualizedFileDiff.js.map +1 -1
- package/dist/components/Virtualizer.d.ts +14 -2
- package/dist/components/Virtualizer.d.ts.map +1 -1
- package/dist/components/Virtualizer.js +27 -2
- package/dist/components/Virtualizer.js.map +1 -1
- package/dist/edit/index.d.ts +5 -0
- package/dist/edit/index.js +3 -0
- package/dist/editor/command.d.ts +1 -1
- package/dist/editor/command.d.ts.map +1 -1
- package/dist/editor/command.js +11 -0
- package/dist/editor/command.js.map +1 -1
- package/dist/editor/editStack.d.ts +6 -2
- package/dist/editor/editStack.d.ts.map +1 -1
- package/dist/editor/editStack.js +53 -12
- package/dist/editor/editStack.js.map +1 -1
- package/dist/editor/editor.d.ts +51 -23
- package/dist/editor/editor.d.ts.map +1 -1
- package/dist/editor/editor.js +978 -238
- package/dist/editor/editor.js.map +1 -1
- package/dist/editor/editor2.js +1 -1
- package/dist/editor/languages.d.ts +26 -0
- package/dist/editor/languages.d.ts.map +1 -0
- package/dist/editor/languages.js +363 -0
- package/dist/editor/languages.js.map +1 -0
- package/dist/editor/lineAnnotations.d.ts.map +1 -1
- package/dist/editor/lineAnnotations.js +25 -26
- package/dist/editor/lineAnnotations.js.map +1 -1
- package/dist/editor/marker.d.ts +5 -3
- package/dist/editor/marker.d.ts.map +1 -1
- package/dist/editor/marker.js +111 -91
- package/dist/editor/marker.js.map +1 -1
- package/dist/editor/matchBrackets.d.ts +3 -2
- package/dist/editor/matchBrackets.d.ts.map +1 -1
- package/dist/editor/matchBrackets.js +2 -10
- package/dist/editor/matchBrackets.js.map +1 -1
- package/dist/editor/pieceTable.d.ts +2 -1
- package/dist/editor/pieceTable.d.ts.map +1 -1
- package/dist/editor/pieceTable.js +103 -39
- package/dist/editor/pieceTable.js.map +1 -1
- package/dist/editor/platform.js +2 -0
- package/dist/editor/platform.js.map +1 -1
- package/dist/editor/popover.d.ts +25 -5
- package/dist/editor/popover.d.ts.map +1 -1
- package/dist/editor/popover.js +60 -14
- package/dist/editor/popover.js.map +1 -1
- package/dist/editor/searchPanel.d.ts.map +1 -1
- package/dist/editor/searchPanel.js +9 -2
- package/dist/editor/searchPanel.js.map +1 -1
- package/dist/editor/selection.d.ts +31 -11
- package/dist/editor/selection.d.ts.map +1 -1
- package/dist/editor/selection.js +198 -70
- package/dist/editor/selection.js.map +1 -1
- package/dist/editor/selectionAction.d.ts +4 -3
- package/dist/editor/selectionAction.d.ts.map +1 -1
- package/dist/editor/selectionAction.js +9 -5
- package/dist/editor/selectionAction.js.map +1 -1
- package/dist/editor/stateStorage.d.ts +15 -0
- package/dist/editor/stateStorage.d.ts.map +1 -0
- package/dist/editor/stateStorage.js +65 -0
- package/dist/editor/stateStorage.js.map +1 -0
- package/dist/editor/textDocument.d.ts +12 -77
- package/dist/editor/textDocument.d.ts.map +1 -1
- package/dist/editor/textDocument.js +76 -34
- package/dist/editor/textDocument.js.map +1 -1
- package/dist/editor/textMeasure.d.ts +7 -12
- package/dist/editor/textMeasure.d.ts.map +1 -1
- package/dist/editor/textMeasure.js +40 -32
- package/dist/editor/textMeasure.js.map +1 -1
- package/dist/editor/{tokenzier.d.ts → tokenizer.d.ts} +3 -3
- package/dist/editor/tokenizer.d.ts.map +1 -0
- package/dist/editor/{tokenzier.js → tokenizer.js} +91 -26
- package/dist/editor/tokenizer.js.map +1 -0
- package/dist/editor/utils.js +1 -1
- package/dist/editor/utils.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.js +6 -5
- package/dist/managers/InteractionManager.d.ts +18 -7
- package/dist/managers/InteractionManager.d.ts.map +1 -1
- package/dist/managers/InteractionManager.js +154 -99
- package/dist/managers/InteractionManager.js.map +1 -1
- package/dist/managers/UniversalRenderingManager.d.ts.map +1 -1
- package/dist/managers/UniversalRenderingManager.js +1 -2
- package/dist/managers/UniversalRenderingManager.js.map +1 -1
- package/dist/react/CodeView.d.ts +13 -13
- package/dist/react/CodeView.d.ts.map +1 -1
- package/dist/react/CodeView.js +38 -29
- package/dist/react/CodeView.js.map +1 -1
- package/dist/react/EditContext.d.ts +20 -0
- package/dist/react/EditContext.d.ts.map +1 -0
- package/dist/react/EditContext.js +20 -0
- package/dist/react/EditContext.js.map +1 -0
- package/dist/react/File.d.ts +2 -1
- package/dist/react/File.d.ts.map +1 -1
- package/dist/react/File.js +3 -2
- package/dist/react/File.js.map +1 -1
- package/dist/react/FileDiff.d.ts +2 -2
- package/dist/react/FileDiff.d.ts.map +1 -1
- package/dist/react/FileDiff.js +3 -2
- package/dist/react/FileDiff.js.map +1 -1
- package/dist/react/MultiFileDiff.d.ts +2 -2
- package/dist/react/MultiFileDiff.d.ts.map +1 -1
- package/dist/react/MultiFileDiff.js +3 -2
- package/dist/react/MultiFileDiff.js.map +1 -1
- package/dist/react/PatchDiff.d.ts +2 -2
- package/dist/react/PatchDiff.d.ts.map +1 -1
- package/dist/react/PatchDiff.js +3 -2
- package/dist/react/PatchDiff.js.map +1 -1
- package/dist/react/UnresolvedFile.d.ts +1 -1
- package/dist/react/UnresolvedFile.js.map +1 -1
- package/dist/react/index.d.ts +4 -4
- package/dist/react/index.js +3 -3
- package/dist/react/types.d.ts +9 -1
- package/dist/react/types.d.ts.map +1 -1
- package/dist/react/utils/useFileDiffInstance.d.ts +5 -3
- package/dist/react/utils/useFileDiffInstance.d.ts.map +1 -1
- package/dist/react/utils/useFileDiffInstance.js +28 -27
- package/dist/react/utils/useFileDiffInstance.js.map +1 -1
- package/dist/react/utils/useFileInstance.d.ts +5 -3
- package/dist/react/utils/useFileInstance.d.ts.map +1 -1
- package/dist/react/utils/useFileInstance.js +29 -25
- package/dist/react/utils/useFileInstance.js.map +1 -1
- package/dist/react/utils/useUnresolvedFileInstance.js +3 -3
- package/dist/react/utils/useUnresolvedFileInstance.js.map +1 -1
- package/dist/renderers/DiffHunksRenderer.d.ts +33 -1
- package/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
- package/dist/renderers/DiffHunksRenderer.js +134 -21
- package/dist/renderers/DiffHunksRenderer.js.map +1 -1
- package/dist/renderers/FileRenderer.d.ts +2 -0
- package/dist/renderers/FileRenderer.d.ts.map +1 -1
- package/dist/renderers/FileRenderer.js +33 -11
- 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/ssr/preloadDiffs.js +1 -1
- package/dist/style.js +1 -1
- package/dist/types.d.ts +185 -42
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/annotationHelpers.d.ts +20 -0
- package/dist/utils/annotationHelpers.d.ts.map +1 -0
- package/dist/utils/annotationHelpers.js +29 -0
- package/dist/utils/annotationHelpers.js.map +1 -0
- package/dist/utils/computeFileOffsets.d.ts.map +1 -1
- package/dist/utils/computeFileOffsets.js +34 -5
- package/dist/utils/computeFileOffsets.js.map +1 -1
- package/dist/utils/editSessionHunks.d.ts +66 -0
- package/dist/utils/editSessionHunks.d.ts.map +1 -0
- package/dist/utils/editSessionHunks.js +437 -0
- package/dist/utils/editSessionHunks.js.map +1 -0
- package/dist/utils/getHunkSideBoundaries.d.ts +7 -0
- package/dist/utils/getHunkSideBoundaries.d.ts.map +1 -0
- package/dist/utils/getHunkSideBoundaries.js +12 -0
- package/dist/utils/getHunkSideBoundaries.js.map +1 -0
- package/dist/utils/getTotalLineCountFromHunks.d.ts.map +1 -1
- package/dist/utils/getTotalLineCountFromHunks.js +2 -1
- package/dist/utils/getTotalLineCountFromHunks.js.map +1 -1
- package/dist/utils/hydratePartialDiff.d.ts.map +1 -1
- package/dist/utils/hydratePartialDiff.js +4 -3
- package/dist/utils/hydratePartialDiff.js.map +1 -1
- package/dist/utils/isGutterUtilityPath.d.ts +5 -0
- package/dist/utils/isGutterUtilityPath.d.ts.map +1 -0
- package/dist/utils/isGutterUtilityPath.js +12 -0
- package/dist/utils/isGutterUtilityPath.js.map +1 -0
- package/dist/utils/iterateOverDiff.d.ts.map +1 -1
- package/dist/utils/iterateOverDiff.js +17 -12
- package/dist/utils/iterateOverDiff.js.map +1 -1
- package/dist/utils/parseMergeConflictDiffFromFile.d.ts.map +1 -1
- package/dist/utils/parseMergeConflictDiffFromFile.js +9 -6
- package/dist/utils/parseMergeConflictDiffFromFile.js.map +1 -1
- package/dist/utils/parsePatchFiles.d.ts.map +1 -1
- package/dist/utils/parsePatchFiles.js +6 -3
- package/dist/utils/parsePatchFiles.js.map +1 -1
- package/dist/utils/realignChangeContent.d.ts +33 -0
- package/dist/utils/realignChangeContent.d.ts.map +1 -0
- package/dist/utils/realignChangeContent.js +148 -0
- package/dist/utils/realignChangeContent.js.map +1 -0
- package/dist/utils/renderDiffWithHighlighter.js +1 -1
- package/dist/utils/resolveRegion.d.ts.map +1 -1
- package/dist/utils/resolveRegion.js +18 -2
- package/dist/utils/resolveRegion.js.map +1 -1
- package/dist/utils/updateDiffHunks.d.ts +8 -2
- package/dist/utils/updateDiffHunks.d.ts.map +1 -1
- package/dist/utils/updateDiffHunks.js +9 -7
- package/dist/utils/updateDiffHunks.js.map +1 -1
- package/dist/utils/virtualDiffLayout.d.ts +42 -2
- package/dist/utils/virtualDiffLayout.d.ts.map +1 -1
- package/dist/utils/virtualDiffLayout.js +101 -7
- package/dist/utils/virtualDiffLayout.js.map +1 -1
- package/dist/worker/worker-portable.js +60 -20
- package/dist/worker/worker-portable.js.map +1 -1
- package/dist/worker/worker.js +61 -19
- package/dist/worker/worker.js.map +1 -1
- package/package.json +10 -7
- package/dist/editor/index.d.ts +0 -3
- package/dist/editor/index.js +0 -3
- package/dist/editor/tokenzier.d.ts.map +0 -1
- package/dist/editor/tokenzier.js.map +0 -1
- package/dist/react/EditorContext.d.ts +0 -15
- package/dist/react/EditorContext.d.ts.map +0 -1
- package/dist/react/EditorContext.js +0 -23
- package/dist/react/EditorContext.js.map +0 -1
package/dist/worker/worker.js
CHANGED
|
@@ -706,6 +706,15 @@ function getLineNodes(nodes) {
|
|
|
706
706
|
throw new Error("getLineNodes: Unable to find children");
|
|
707
707
|
}
|
|
708
708
|
//#endregion
|
|
709
|
+
//#region src/utils/getHunkSideBoundaries.ts
|
|
710
|
+
/** Converts a unified hunk side's start/count into its consumed-file range. */
|
|
711
|
+
function getHunkSideStartBoundary(start, count) {
|
|
712
|
+
return start - (count === 0 ? 0 : 1);
|
|
713
|
+
}
|
|
714
|
+
function getHunkSideEndBoundary(start, count) {
|
|
715
|
+
return getHunkSideStartBoundary(start, count) + count;
|
|
716
|
+
}
|
|
717
|
+
//#endregion
|
|
709
718
|
//#region src/utils/virtualDiffLayout.ts
|
|
710
719
|
function getExpandedRegion({ isPartial, rangeSize, expandedHunks, hunkIndex, collapsedContextThreshold }) {
|
|
711
720
|
const normalizedRangeSize = Math.max(rangeSize, 0);
|
|
@@ -739,8 +748,8 @@ function getExpandedRegion({ isPartial, rangeSize, expandedHunks, hunkIndex, col
|
|
|
739
748
|
function getTrailingContextRangeSize({ fileDiff, errorPrefix }) {
|
|
740
749
|
const lastHunk = fileDiff.hunks[fileDiff.hunks.length - 1];
|
|
741
750
|
if (lastHunk == null || fileDiff.isPartial || fileDiff.additionLines.length === 0 || fileDiff.deletionLines.length === 0) return 0;
|
|
742
|
-
const additionRemaining = fileDiff.additionLines.length - (lastHunk.
|
|
743
|
-
const deletionRemaining = fileDiff.deletionLines.length - (lastHunk.
|
|
751
|
+
const additionRemaining = fileDiff.additionLines.length - getHunkSideEndBoundary(lastHunk.additionStart, lastHunk.additionCount);
|
|
752
|
+
const deletionRemaining = fileDiff.deletionLines.length - getHunkSideEndBoundary(lastHunk.deletionStart, lastHunk.deletionCount);
|
|
744
753
|
if (additionRemaining <= 0 && deletionRemaining <= 0) return 0;
|
|
745
754
|
if (additionRemaining !== deletionRemaining) throw new Error(`${errorPrefix}: trailing context mismatch (additions=${additionRemaining}, deletions=${deletionRemaining}) for ${fileDiff.name}`);
|
|
746
755
|
return Math.min(additionRemaining, deletionRemaining);
|
|
@@ -831,6 +840,10 @@ function iterateOverDiff({ diff, diffStyle, startingLine = 0, totalLines = Infin
|
|
|
831
840
|
const hunk = diff.hunks[hunkIndex];
|
|
832
841
|
if (hunk == null) throw new Error("iterateOverDiff: invalid hunk index");
|
|
833
842
|
if (state.shouldBreak()) break;
|
|
843
|
+
const deletionBoundary = getHunkSideStartBoundary(hunk.deletionStart, hunk.deletionCount);
|
|
844
|
+
const additionBoundary = getHunkSideStartBoundary(hunk.additionStart, hunk.additionCount);
|
|
845
|
+
const deletionStartIndex = !diff.isPartial && hunk.deletionCount === 0 ? deletionBoundary : hunk.deletionLineIndex;
|
|
846
|
+
const additionStartIndex = !diff.isPartial && hunk.additionCount === 0 ? additionBoundary : hunk.additionLineIndex;
|
|
834
847
|
const leadingRegion = getExpandedRegion({
|
|
835
848
|
isPartial: diff.isPartial,
|
|
836
849
|
rangeSize: hunk.collapsedBefore,
|
|
@@ -860,10 +873,10 @@ function iterateOverDiff({ diff, diffStyle, startingLine = 0, totalLines = Infin
|
|
|
860
873
|
if (!state.shouldSkip(expandedLineCount, expandedLineCount)) {
|
|
861
874
|
let unifiedLineIndex = hunk.unifiedLineStart - leadingRegion.rangeSize;
|
|
862
875
|
let splitLineIndex = hunk.splitLineStart - leadingRegion.rangeSize;
|
|
863
|
-
let deletionLineIndex =
|
|
864
|
-
let additionLineIndex =
|
|
865
|
-
let deletionLineNumber =
|
|
866
|
-
let additionLineNumber =
|
|
876
|
+
let deletionLineIndex = deletionStartIndex - leadingRegion.rangeSize;
|
|
877
|
+
let additionLineIndex = additionStartIndex - leadingRegion.rangeSize;
|
|
878
|
+
let deletionLineNumber = deletionBoundary + 1 - leadingRegion.rangeSize;
|
|
879
|
+
let additionLineNumber = additionBoundary + 1 - leadingRegion.rangeSize;
|
|
867
880
|
if (walkContextLines(state, leadingRegion.fromStart, diffStyle, (index) => {
|
|
868
881
|
return state.emit({
|
|
869
882
|
hunkIndex,
|
|
@@ -889,10 +902,10 @@ function iterateOverDiff({ diff, diffStyle, startingLine = 0, totalLines = Infin
|
|
|
889
902
|
})) break hunkIterator;
|
|
890
903
|
unifiedLineIndex = hunk.unifiedLineStart - leadingRegion.fromEnd;
|
|
891
904
|
splitLineIndex = hunk.splitLineStart - leadingRegion.fromEnd;
|
|
892
|
-
deletionLineIndex =
|
|
893
|
-
additionLineIndex =
|
|
894
|
-
deletionLineNumber =
|
|
895
|
-
additionLineNumber =
|
|
905
|
+
deletionLineIndex = deletionStartIndex - leadingRegion.fromEnd;
|
|
906
|
+
additionLineIndex = additionStartIndex - leadingRegion.fromEnd;
|
|
907
|
+
deletionLineNumber = deletionBoundary + 1 - leadingRegion.fromEnd;
|
|
908
|
+
additionLineNumber = additionBoundary + 1 - leadingRegion.fromEnd;
|
|
896
909
|
if (walkContextLines(state, leadingRegion.fromEnd, diffStyle, (index) => {
|
|
897
910
|
return state.emit({
|
|
898
911
|
hunkIndex,
|
|
@@ -924,10 +937,10 @@ function iterateOverDiff({ diff, diffStyle, startingLine = 0, totalLines = Infin
|
|
|
924
937
|
}
|
|
925
938
|
let unifiedLineIndex = hunk.unifiedLineStart;
|
|
926
939
|
let splitLineIndex = hunk.splitLineStart;
|
|
927
|
-
let deletionLineIndex =
|
|
928
|
-
let additionLineIndex =
|
|
929
|
-
let deletionLineNumber =
|
|
930
|
-
let additionLineNumber =
|
|
940
|
+
let deletionLineIndex = deletionStartIndex;
|
|
941
|
+
let additionLineIndex = additionStartIndex;
|
|
942
|
+
let deletionLineNumber = deletionBoundary + 1;
|
|
943
|
+
let additionLineNumber = additionBoundary + 1;
|
|
931
944
|
const lastContent = hunk.hunkContent.at(-1);
|
|
932
945
|
for (const content of hunk.hunkContent) {
|
|
933
946
|
if (state.shouldBreak()) break hunkIterator;
|
|
@@ -1536,16 +1549,45 @@ function renderTwoFiles({ deletionFile, additionFile, deletionInfo, additionInfo
|
|
|
1536
1549
|
//#region src/utils/computeFileOffsets.ts
|
|
1537
1550
|
const LINE_FEED = 10;
|
|
1538
1551
|
const CARRIAGE_RETURN = 13;
|
|
1552
|
+
const DENSE_LINE_BREAK_BLOCK_SIZE = 4;
|
|
1553
|
+
const DENSE_LINE_BREAK_BLOCK_SPAN = 40;
|
|
1539
1554
|
/**
|
|
1540
1555
|
* Computes line start offsets for a string.
|
|
1541
1556
|
*/
|
|
1542
1557
|
function computeLineOffsets(contents) {
|
|
1543
1558
|
const offsets = [0];
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
|
|
1559
|
+
let carriageReturn = contents.indexOf("\r");
|
|
1560
|
+
let lineFeed = contents.indexOf("\n");
|
|
1561
|
+
let blockStart = 0;
|
|
1562
|
+
let blockBreaks = 0;
|
|
1563
|
+
while (carriageReturn !== -1 || lineFeed !== -1) {
|
|
1564
|
+
let nextOffset;
|
|
1565
|
+
if (carriageReturn !== -1 && (lineFeed === -1 || carriageReturn < lineFeed)) if (lineFeed === carriageReturn + 1) {
|
|
1566
|
+
nextOffset = lineFeed + 1;
|
|
1567
|
+
carriageReturn = contents.indexOf("\r", nextOffset);
|
|
1568
|
+
lineFeed = contents.indexOf("\n", nextOffset);
|
|
1569
|
+
} else {
|
|
1570
|
+
nextOffset = carriageReturn + 1;
|
|
1571
|
+
carriageReturn = contents.indexOf("\r", nextOffset);
|
|
1572
|
+
}
|
|
1573
|
+
else {
|
|
1574
|
+
nextOffset = lineFeed + 1;
|
|
1575
|
+
lineFeed = contents.indexOf("\n", nextOffset);
|
|
1576
|
+
}
|
|
1577
|
+
offsets.push(nextOffset);
|
|
1578
|
+
if (++blockBreaks === DENSE_LINE_BREAK_BLOCK_SIZE) {
|
|
1579
|
+
if (nextOffset - blockStart <= DENSE_LINE_BREAK_BLOCK_SPAN) {
|
|
1580
|
+
for (let i = nextOffset; i < contents.length; i++) {
|
|
1581
|
+
const char = contents.charCodeAt(i);
|
|
1582
|
+
if (char === LINE_FEED || char === CARRIAGE_RETURN) {
|
|
1583
|
+
if (char === CARRIAGE_RETURN && i + 1 < contents.length && contents.charCodeAt(i + 1) === LINE_FEED) i++;
|
|
1584
|
+
offsets.push(i + 1);
|
|
1585
|
+
}
|
|
1586
|
+
}
|
|
1587
|
+
return offsets;
|
|
1588
|
+
}
|
|
1589
|
+
blockStart = nextOffset;
|
|
1590
|
+
blockBreaks = 0;
|
|
1549
1591
|
}
|
|
1550
1592
|
}
|
|
1551
1593
|
return offsets;
|