@pierre/diffs 1.4.3 → 1.5.0

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 (58) hide show
  1. package/dist/components/CodeView.d.ts +2 -4
  2. package/dist/components/CodeView.d.ts.map +1 -1
  3. package/dist/components/CodeView.js +23 -12
  4. package/dist/components/CodeView.js.map +1 -1
  5. package/dist/components/File.d.ts +2 -0
  6. package/dist/components/File.d.ts.map +1 -1
  7. package/dist/components/File.js +6 -0
  8. package/dist/components/File.js.map +1 -1
  9. package/dist/components/FileDiff.d.ts +18 -1
  10. package/dist/components/FileDiff.d.ts.map +1 -1
  11. package/dist/components/FileDiff.js +47 -15
  12. package/dist/components/FileDiff.js.map +1 -1
  13. package/dist/components/VirtualizedFile.d.ts.map +1 -1
  14. package/dist/components/VirtualizedFile.js +11 -11
  15. package/dist/components/VirtualizedFile.js.map +1 -1
  16. package/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
  17. package/dist/components/VirtualizedFileDiff.js +18 -17
  18. package/dist/components/VirtualizedFileDiff.js.map +1 -1
  19. package/dist/constants.d.ts +1 -3
  20. package/dist/constants.d.ts.map +1 -1
  21. package/dist/constants.js +1 -3
  22. package/dist/constants.js.map +1 -1
  23. package/dist/editor/editor.d.ts.map +1 -1
  24. package/dist/editor/editor.js +18 -5
  25. package/dist/editor/editor.js.map +1 -1
  26. package/dist/index.d.ts +2 -2
  27. package/dist/index.js +2 -2
  28. package/dist/react/utils/useFileDiffInstance.d.ts.map +1 -1
  29. package/dist/react/utils/useFileDiffInstance.js +47 -11
  30. package/dist/react/utils/useFileDiffInstance.js.map +1 -1
  31. package/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
  32. package/dist/renderers/DiffHunksRenderer.js +20 -13
  33. package/dist/renderers/DiffHunksRenderer.js.map +1 -1
  34. package/dist/renderers/FileRenderer.d.ts.map +1 -1
  35. package/dist/renderers/FileRenderer.js +30 -11
  36. package/dist/renderers/FileRenderer.js.map +1 -1
  37. package/dist/sprite.d.ts +2 -2
  38. package/dist/sprite.d.ts.map +1 -1
  39. package/dist/sprite.js +57 -0
  40. package/dist/sprite.js.map +1 -1
  41. package/dist/utils/editSessionHunks.d.ts +5 -4
  42. package/dist/utils/editSessionHunks.d.ts.map +1 -1
  43. package/dist/utils/editSessionHunks.js +32 -9
  44. package/dist/utils/editSessionHunks.js.map +1 -1
  45. package/dist/utils/parsePatchFiles.d.ts.map +1 -1
  46. package/dist/utils/parsePatchFiles.js +21 -13
  47. package/dist/utils/parsePatchFiles.js.map +1 -1
  48. package/dist/utils/parseQuotedDiffFileName.d.ts +8 -0
  49. package/dist/utils/parseQuotedDiffFileName.d.ts.map +1 -0
  50. package/dist/utils/parseQuotedDiffFileName.js +54 -0
  51. package/dist/utils/parseQuotedDiffFileName.js.map +1 -0
  52. package/dist/utils/realignChangeContent.d.ts +13 -10
  53. package/dist/utils/realignChangeContent.d.ts.map +1 -1
  54. package/dist/utils/realignChangeContent.js +23 -19
  55. package/dist/utils/realignChangeContent.js.map +1 -1
  56. package/dist/worker/worker-portable.js.map +1 -1
  57. package/dist/worker/worker.js.map +1 -1
  58. package/package.json +1 -1
@@ -268,10 +268,8 @@ declare class CodeView<LAnnotation = undefined, Caret = undefined> {
268
268
  clearSelectedLines(options?: SelectionWriteOptions): void;
269
269
  getItem(itemId: string): CodeViewItem<LAnnotation> | undefined;
270
270
  /**
271
- * Get the live editor for an item currently in edit mode. Use this to drive
272
- * editor APIs CodeView does not wrap (applyEdits, undo, setMarkers, …).
273
- * Returns undefined once the item's session ends (edit off or removal); a
274
- * collapsed item keeps its suspended editor.
271
+ * Returns the editor while this item is being edited. Partial diffs get an
272
+ * editor after their files load; scrolling away or collapsing keeps it.
275
273
  */
276
274
  getEditor(itemId: string): CodeViewEditor<LAnnotation, Caret> | undefined;
277
275
  updateItem(input: CodeViewItem<LAnnotation>): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"CodeView.d.ts","names":[],"sources":["../../src/components/CodeView.ts"],"mappings":"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"}
1
+ {"version":3,"file":"CodeView.d.ts","names":[],"sources":["../../src/components/CodeView.ts"],"mappings":"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"}
@@ -405,25 +405,30 @@ var CodeView = class CodeView {
405
405
  this.clearReadySubscription();
406
406
  this.restoreScrollInteractions();
407
407
  this.cleanAllRenderedItems();
408
+ const { items: discardedItems } = this;
408
409
  const teardownSessions = [...this.itemEditors.values()].map((record) => {
409
410
  const item = this.idToItem.get(record.state.id);
410
411
  if (item != null) record.state.removedItem = item.item;
411
- return {
412
- record,
413
- instance: item?.instance
414
- };
412
+ return record;
415
413
  });
416
414
  this.itemEditors.clear();
417
415
  this.attachedEditors.clear();
418
416
  this.selectedLines = null;
419
- this.items.length = 0;
417
+ this.items = [];
420
418
  this.idToItem.clear();
421
419
  this.instanceToItem.clear();
422
420
  let failed = false;
423
421
  let failure;
424
- for (const { record, instance } of teardownSessions) try {
422
+ for (const record of teardownSessions) try {
425
423
  record.editor.cleanUp("discard");
426
- instance?.cleanUp();
424
+ } catch (error) {
425
+ if (!failed) {
426
+ failed = true;
427
+ failure = error;
428
+ }
429
+ }
430
+ for (const item of discardedItems) try {
431
+ item.instance.cleanUp();
427
432
  } catch (error) {
428
433
  if (!failed) {
429
434
  failed = true;
@@ -613,10 +618,8 @@ var CodeView = class CodeView {
613
618
  return this.idToItem.get(itemId)?.item;
614
619
  }
615
620
  /**
616
- * Get the live editor for an item currently in edit mode. Use this to drive
617
- * editor APIs CodeView does not wrap (applyEdits, undo, setMarkers, …).
618
- * Returns undefined once the item's session ends (edit off or removal); a
619
- * collapsed item keeps its suspended editor.
621
+ * Returns the editor while this item is being edited. Partial diffs get an
622
+ * editor after their files load; scrolling away or collapsing keeps it.
620
623
  */
621
624
  getEditor(itemId) {
622
625
  return this.itemEditors.get(itemId)?.editor;
@@ -691,7 +694,11 @@ var CodeView = class CodeView {
691
694
  let removedItemsById;
692
695
  if (this.items.length === 0) this.appendItemsInternal(items);
693
696
  else if (!this.tryAppendItems(items)) removedItemsById = this.reconcileItems(items);
694
- this.syncItemEditors(removedItemsById);
697
+ try {
698
+ this.syncItemEditors(removedItemsById);
699
+ } finally {
700
+ for (const removedItem of removedItemsById?.values() ?? []) removedItem.instance.cleanUp();
701
+ }
695
702
  this.syncSelection();
696
703
  }
697
704
  /**
@@ -966,6 +973,10 @@ var CodeView = class CodeView {
966
973
  const record = this.itemEditors.get(id);
967
974
  let createdEditor;
968
975
  try {
976
+ if (record == null && item.type === "diff" && !item.instance.__canAttachEditor()) {
977
+ item.instance.__prepareForEditing();
978
+ return;
979
+ }
969
980
  if (record == null) {
970
981
  assertEditorFactory(createEditor);
971
982
  const state = getItemOptionsState(item.instance.options);