@pierre/diffs 1.3.0-beta.10 → 1.3.0-beta.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/dist/components/CodeView.d.ts.map +1 -1
  2. package/dist/components/CodeView.js +1 -16
  3. package/dist/components/CodeView.js.map +1 -1
  4. package/dist/components/File.d.ts +2 -1
  5. package/dist/components/File.d.ts.map +1 -1
  6. package/dist/components/File.js +6 -2
  7. package/dist/components/File.js.map +1 -1
  8. package/dist/components/FileDiff.d.ts +8 -2
  9. package/dist/components/FileDiff.d.ts.map +1 -1
  10. package/dist/components/FileDiff.js +26 -8
  11. package/dist/components/FileDiff.js.map +1 -1
  12. package/dist/components/VirtualizedFileDiff.d.ts +1 -0
  13. package/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
  14. package/dist/components/VirtualizedFileDiff.js +4 -0
  15. package/dist/components/VirtualizedFileDiff.js.map +1 -1
  16. package/dist/editor/editStack.d.ts +5 -0
  17. package/dist/editor/editStack.d.ts.map +1 -1
  18. package/dist/editor/editStack.js +53 -12
  19. package/dist/editor/editStack.js.map +1 -1
  20. package/dist/editor/editor.d.ts.map +1 -1
  21. package/dist/editor/editor.js +52 -32
  22. package/dist/editor/editor.js.map +1 -1
  23. package/dist/editor/editor2.js +1 -1
  24. package/dist/editor/marker.d.ts +3 -3
  25. package/dist/editor/marker.d.ts.map +1 -1
  26. package/dist/editor/marker.js +89 -89
  27. package/dist/editor/marker.js.map +1 -1
  28. package/dist/editor/pieceTable.d.ts.map +1 -1
  29. package/dist/editor/pieceTable.js +55 -20
  30. package/dist/editor/pieceTable.js.map +1 -1
  31. package/dist/editor/popover.js +4 -0
  32. package/dist/editor/popover.js.map +1 -1
  33. package/dist/editor/selection.d.ts +2 -2
  34. package/dist/editor/selection.d.ts.map +1 -1
  35. package/dist/editor/selection.js +2 -2
  36. package/dist/editor/selection.js.map +1 -1
  37. package/dist/editor/textDocument.js +1 -1
  38. package/dist/editor/textDocument.js.map +1 -1
  39. package/dist/editor/tokenizer.d.ts.map +1 -1
  40. package/dist/editor/tokenizer.js +7 -2
  41. package/dist/editor/tokenizer.js.map +1 -1
  42. package/dist/index.d.ts +2 -2
  43. package/dist/managers/InteractionManager.d.ts +18 -7
  44. package/dist/managers/InteractionManager.d.ts.map +1 -1
  45. package/dist/managers/InteractionManager.js +154 -99
  46. package/dist/managers/InteractionManager.js.map +1 -1
  47. package/dist/react/index.d.ts +2 -2
  48. package/dist/react/utils/useFileDiffInstance.js +1 -6
  49. package/dist/react/utils/useFileDiffInstance.js.map +1 -1
  50. package/dist/react/utils/useFileInstance.js +1 -4
  51. package/dist/react/utils/useFileInstance.js.map +1 -1
  52. package/dist/ssr/index.d.ts +2 -2
  53. package/dist/style.js +1 -1
  54. package/dist/types.d.ts +7 -1
  55. package/dist/types.d.ts.map +1 -1
  56. package/dist/utils/computeFileOffsets.d.ts.map +1 -1
  57. package/dist/utils/computeFileOffsets.js +34 -5
  58. package/dist/utils/computeFileOffsets.js.map +1 -1
  59. package/dist/utils/isGutterUtilityPath.d.ts +5 -0
  60. package/dist/utils/isGutterUtilityPath.d.ts.map +1 -0
  61. package/dist/utils/isGutterUtilityPath.js +12 -0
  62. package/dist/utils/isGutterUtilityPath.js.map +1 -0
  63. package/dist/worker/worker-portable.js +34 -5
  64. package/dist/worker/worker-portable.js.map +1 -1
  65. package/dist/worker/worker.js +34 -5
  66. package/dist/worker/worker.js.map +1 -1
  67. package/package.json +1 -1
@@ -1536,16 +1536,45 @@ function renderTwoFiles({ deletionFile, additionFile, deletionInfo, additionInfo
1536
1536
  //#region src/utils/computeFileOffsets.ts
1537
1537
  const LINE_FEED = 10;
1538
1538
  const CARRIAGE_RETURN = 13;
1539
+ const DENSE_LINE_BREAK_BLOCK_SIZE = 4;
1540
+ const DENSE_LINE_BREAK_BLOCK_SPAN = 40;
1539
1541
  /**
1540
1542
  * Computes line start offsets for a string.
1541
1543
  */
1542
1544
  function computeLineOffsets(contents) {
1543
1545
  const offsets = [0];
1544
- for (let i = 0; i < contents.length; i++) {
1545
- const char = contents.charCodeAt(i);
1546
- if (char === LINE_FEED || char === CARRIAGE_RETURN) {
1547
- if (char === CARRIAGE_RETURN && i + 1 < contents.length && contents.charCodeAt(i + 1) === LINE_FEED) i++;
1548
- offsets.push(i + 1);
1546
+ let carriageReturn = contents.indexOf("\r");
1547
+ let lineFeed = contents.indexOf("\n");
1548
+ let blockStart = 0;
1549
+ let blockBreaks = 0;
1550
+ while (carriageReturn !== -1 || lineFeed !== -1) {
1551
+ let nextOffset;
1552
+ if (carriageReturn !== -1 && (lineFeed === -1 || carriageReturn < lineFeed)) if (lineFeed === carriageReturn + 1) {
1553
+ nextOffset = lineFeed + 1;
1554
+ carriageReturn = contents.indexOf("\r", nextOffset);
1555
+ lineFeed = contents.indexOf("\n", nextOffset);
1556
+ } else {
1557
+ nextOffset = carriageReturn + 1;
1558
+ carriageReturn = contents.indexOf("\r", nextOffset);
1559
+ }
1560
+ else {
1561
+ nextOffset = lineFeed + 1;
1562
+ lineFeed = contents.indexOf("\n", nextOffset);
1563
+ }
1564
+ offsets.push(nextOffset);
1565
+ if (++blockBreaks === DENSE_LINE_BREAK_BLOCK_SIZE) {
1566
+ if (nextOffset - blockStart <= DENSE_LINE_BREAK_BLOCK_SPAN) {
1567
+ for (let i = nextOffset; i < contents.length; i++) {
1568
+ const char = contents.charCodeAt(i);
1569
+ if (char === LINE_FEED || char === CARRIAGE_RETURN) {
1570
+ if (char === CARRIAGE_RETURN && i + 1 < contents.length && contents.charCodeAt(i + 1) === LINE_FEED) i++;
1571
+ offsets.push(i + 1);
1572
+ }
1573
+ }
1574
+ return offsets;
1575
+ }
1576
+ blockStart = nextOffset;
1577
+ blockBreaks = 0;
1549
1578
  }
1550
1579
  }
1551
1580
  return offsets;