@jrichman/ink 7.0.1-beta.9 → 7.1.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.
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-buffer.js","sourceRoot":"","sources":["../src/terminal-buffer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminal-buffer.js","sourceRoot":"","sources":["../src/terminal-buffer.ts"],"names":[],"mappings":"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"}
@@ -49,6 +49,9 @@ export declare class TerminalBufferWorker {
49
49
  private readonly animationController;
50
50
  private readonly primaryTerminalWriter;
51
51
  private readonly alternateTerminalWriter;
52
+ private readonly regionNodeCache;
53
+ private regionNodeCacheRoot?;
54
+ private shouldVerifyBackbufferBeforeFullRender;
52
55
  /**
53
56
  * Visible for testing.
54
57
  */
@@ -85,7 +88,7 @@ export declare class TerminalBufferWorker {
85
88
  col: number;
86
89
  }): boolean;
87
90
  resize(columns: number, rows: number): void;
88
- fullRender(): Promise<void>;
91
+ fullRender(verifyOnly?: boolean): Promise<void>;
89
92
  render(): Promise<void>;
90
93
  flushPendingRender(): Promise<void>;
91
94
  done(): void;
@@ -95,9 +98,15 @@ export declare class TerminalBufferWorker {
95
98
  private serializeCurrentRegions;
96
99
  private _render;
97
100
  private tickAnimation;
101
+ private handlePotentialBackbufferDirty;
102
+ private scheduleBackbufferVerification;
103
+ private computeExpectedBackbufferLength;
104
+ private backbufferLengthMatchesExpected;
98
105
  private computeExpectedBackbuffer;
99
106
  private checkBackbufferMatchesExpected;
100
107
  private composeScene;
108
+ private getScrollableBackbufferRange;
109
+ private getEarliestRenderableY;
101
110
  private composeToBackbuffer;
102
111
  /**
103
112
  * Recursively composites a region and its children onto the provided canvas.
@@ -120,6 +129,8 @@ export declare class TerminalBufferWorker {
120
129
  private syncCursor;
121
130
  private appendToBackbuffer;
122
131
  private updateTrackingMaps;
132
+ private invalidateRegionNodeCache;
133
+ private getRegionNodeCache;
123
134
  private findNodeForRegion;
124
135
  private processRegionForScroll;
125
136
  private logScene;
@@ -57,6 +57,9 @@ export class TerminalBufferWorker {
57
57
  animationController;
58
58
  primaryTerminalWriter;
59
59
  alternateTerminalWriter;
60
+ regionNodeCache = new Map();
61
+ regionNodeCacheRoot;
62
+ shouldVerifyBackbufferBeforeFullRender = false;
60
63
  /**
61
64
  * Visible for testing.
62
65
  */
@@ -311,6 +314,7 @@ export class TerminalBufferWorker {
311
314
  this.scrollOptimizer.resetTracking(id);
312
315
  },
313
316
  });
317
+ this.invalidateRegionNodeCache();
314
318
  // Track regionWasAtEnd for scrollbars
315
319
  for (const update of updates) {
316
320
  const region = this.sceneManager.getRegion(update.id);
@@ -344,21 +348,11 @@ export class TerminalBufferWorker {
344
348
  }
345
349
  }
346
350
  }
347
- if (isActuallyDirty &&
348
- !this.terminalWriter.backbufferDirtyCurrentFrame &&
349
- !this.terminalWriter.backbufferDirty &&
350
- !this.isAlternateBufferEnabled) {
351
- if (this.checkBackbufferMatchesExpected(cameraY)) {
352
- // False positive, do nothing.
353
- }
354
- else {
351
+ if (isActuallyDirty && !this.isAlternateBufferEnabled) {
352
+ this.handlePotentialBackbufferDirty(cameraY, () => {
355
353
  this.terminalWriter.backbufferDirty = true;
356
354
  this.terminalWriter.backbufferDirtyCurrentFrame = true;
357
- }
358
- }
359
- else if (isActuallyDirty && !this.isAlternateBufferEnabled) {
360
- this.terminalWriter.backbufferDirty = true;
361
- this.terminalWriter.backbufferDirtyCurrentFrame = true;
355
+ });
362
356
  }
363
357
  }
364
358
  const cursorChanged = cursorPosition !== previousCursorPosition &&
@@ -388,7 +382,7 @@ export class TerminalBufferWorker {
388
382
  this.resized = true;
389
383
  void this.render();
390
384
  }
391
- async fullRender() {
385
+ async fullRender(verifyOnly = false) {
392
386
  if (clearDebugLogPerFrame) {
393
387
  clearDebugLog();
394
388
  }
@@ -396,7 +390,28 @@ export class TerminalBufferWorker {
396
390
  clearTimeout(this.terminalWriter.fullRenderTimeout);
397
391
  this.terminalWriter.fullRenderTimeout = undefined;
398
392
  }
393
+ if (verifyOnly) {
394
+ if (!this.shouldVerifyBackbufferBeforeFullRender) {
395
+ return;
396
+ }
397
+ this.shouldVerifyBackbufferBeforeFullRender = false;
398
+ const rootRegion = this.sceneManager.getRootRegion();
399
+ const cameraY = rootRegion ? this.getCameraY(rootRegion) : 0;
400
+ if (this.checkBackbufferMatchesExpected(cameraY)) {
401
+ this.terminalWriter.backbufferDirty = false;
402
+ this.terminalWriter.backbufferDirtyCurrentFrame = false;
403
+ this.updateTrackingMaps(rootRegion, cameraY, true);
404
+ return;
405
+ }
406
+ this.terminalWriter.backbufferDirty = true;
407
+ }
408
+ else {
409
+ this.shouldVerifyBackbufferBeforeFullRender = false;
410
+ }
399
411
  if (!this.terminalWriter.backbufferDirty) {
412
+ if (verifyOnly) {
413
+ return;
414
+ }
400
415
  await this.render();
401
416
  return;
402
417
  }
@@ -433,7 +448,7 @@ export class TerminalBufferWorker {
433
448
  if (this.terminalWriter.fullRenderTimeout) {
434
449
  clearTimeout(this.terminalWriter.fullRenderTimeout);
435
450
  this.terminalWriter.fullRenderTimeout = undefined;
436
- await this.fullRender();
451
+ await this.fullRender(true);
437
452
  }
438
453
  }
439
454
  done() {
@@ -460,6 +475,7 @@ export class TerminalBufferWorker {
460
475
  this.sceneManager.regionWasAtEnd.clear();
461
476
  this.scrollOptimizer.maxRegionScrollTops.clear();
462
477
  this.scrollOptimizer.lastRegionScrollTops.clear();
478
+ this.invalidateRegionNodeCache();
463
479
  this.screen = [];
464
480
  this.backbuffer = [];
465
481
  this.forceNextRender = false;
@@ -584,24 +600,17 @@ export class TerminalBufferWorker {
584
600
  }
585
601
  }
586
602
  }
587
- if (isActuallyDirty &&
588
- !this.terminalWriter.backbufferDirtyCurrentFrame &&
589
- !this.terminalWriter.backbufferDirty) {
590
- const matches = this.checkBackbufferMatchesExpected(cameraY);
591
- if (matches) {
603
+ if (isActuallyDirty) {
604
+ this.handlePotentialBackbufferDirty(cameraY, () => {
605
+ this.terminalWriter.backbufferDirtyCurrentFrame = true;
606
+ }, () => {
592
607
  this.scrollOptimizer.setMaxPushed(rootRegion.id, cameraY);
593
608
  for (const region of this.sceneManager.regions.values()) {
594
609
  if (region.overflowToBackbuffer) {
595
610
  this.scrollOptimizer.setMaxPushed(region.id, region.scrollTop ?? 0);
596
611
  }
597
612
  }
598
- }
599
- else {
600
- this.terminalWriter.backbufferDirtyCurrentFrame = true;
601
- }
602
- }
603
- else if (isActuallyDirty) {
604
- this.terminalWriter.backbufferDirtyCurrentFrame = true;
613
+ });
605
614
  }
606
615
  }
607
616
  this.updateTrackingMaps(rootRegion, cameraY);
@@ -629,6 +638,56 @@ export class TerminalBufferWorker {
629
638
  this.animationController.stop();
630
639
  }
631
640
  }
641
+ handlePotentialBackbufferDirty(cameraY, markDirty, markVerifiedClean) {
642
+ const isAlreadyDirty = this.terminalWriter.backbufferDirtyCurrentFrame ||
643
+ this.terminalWriter.backbufferDirty;
644
+ if (isAlreadyDirty || !this.backbufferLengthMatchesExpected(cameraY)) {
645
+ markDirty();
646
+ return;
647
+ }
648
+ markVerifiedClean?.();
649
+ this.scheduleBackbufferVerification();
650
+ }
651
+ scheduleBackbufferVerification() {
652
+ this.shouldVerifyBackbufferBeforeFullRender = true;
653
+ if (this.terminalWriter.fullRenderTimeout) {
654
+ return;
655
+ }
656
+ this.terminalWriter.fullRenderTimeout = setTimeout(() => {
657
+ void this.fullRender(true);
658
+ }, this.backbufferUpdateDelay);
659
+ }
660
+ computeExpectedBackbufferLength(cameraY) {
661
+ const rootRegion = this.sceneManager.getRootRegion();
662
+ if (!rootRegion) {
663
+ return 0;
664
+ }
665
+ let expectedLength = Math.min(cameraY, this.maxScrollbackLength);
666
+ for (const region of this.sceneManager.regions.values()) {
667
+ if (region.overflowToBackbuffer && region.isScrollable) {
668
+ const node = this.findNodeForRegion(region.id);
669
+ const range = node
670
+ ? this.getScrollableBackbufferRange(node, region)
671
+ : undefined;
672
+ if (range && range.height > 0) {
673
+ expectedLength += range.height;
674
+ }
675
+ }
676
+ }
677
+ return expectedLength;
678
+ }
679
+ backbufferLengthMatchesExpected(cameraY) {
680
+ const expectedLength = this.computeExpectedBackbufferLength(cameraY);
681
+ const actualLength = this.terminalWriter.getBackbufferLength();
682
+ if (expectedLength > actualLength) {
683
+ return false;
684
+ }
685
+ if (actualLength > expectedLength &&
686
+ expectedLength < this.maxScrollbackLength) {
687
+ return false;
688
+ }
689
+ return true;
690
+ }
632
691
  computeExpectedBackbuffer(cameraY) {
633
692
  const rootRegion = this.sceneManager.getRootRegion();
634
693
  if (!rootRegion) {
@@ -636,26 +695,26 @@ export class TerminalBufferWorker {
636
695
  }
637
696
  const originalBackbuffer = this.backbuffer;
638
697
  this.backbuffer = [];
639
- const rootBackbufferHeight = Math.min(cameraY, this.maxScrollbackLength);
640
- const rootBackbufferOffset = Math.max(0, cameraY - this.maxScrollbackLength);
641
- this.composeToBackbuffer(this.sceneManager.root, rootRegion, rootBackbufferHeight, rootBackbufferOffset);
642
- for (const region of this.sceneManager.regions.values()) {
643
- if (region.overflowToBackbuffer && region.isScrollable) {
644
- const scrollTop = region.scrollTop ?? 0;
645
- const linesOffsetY = region.linesOffsetY ?? 0;
646
- const maxRequestedHistory = scrollTop - linesOffsetY;
647
- const actualHistoryToRender = Math.max(0, Math.min(maxRequestedHistory, this.maxScrollbackLength));
648
- const regionBackbufferHeight = actualHistoryToRender;
649
- const regionBackbufferOffset = Math.max(0, scrollTop - actualHistoryToRender);
650
- const node = this.findNodeForRegion(region.id);
651
- if (node && regionBackbufferHeight > 0) {
652
- this.composeToBackbuffer(node, region, regionBackbufferHeight, regionBackbufferOffset);
698
+ try {
699
+ const rootBackbufferHeight = Math.min(cameraY, this.maxScrollbackLength);
700
+ const rootBackbufferOffset = Math.max(0, cameraY - this.maxScrollbackLength);
701
+ this.composeToBackbuffer(this.sceneManager.root, rootRegion, rootBackbufferHeight, rootBackbufferOffset);
702
+ for (const region of this.sceneManager.regions.values()) {
703
+ if (region.overflowToBackbuffer && region.isScrollable) {
704
+ const node = this.findNodeForRegion(region.id);
705
+ const range = node
706
+ ? this.getScrollableBackbufferRange(node, region)
707
+ : undefined;
708
+ if (node && range && range.height > 0) {
709
+ this.composeToBackbuffer(node, region, range.height, range.offset);
710
+ }
653
711
  }
654
712
  }
713
+ return this.backbuffer;
714
+ }
715
+ finally {
716
+ this.backbuffer = originalBackbuffer;
655
717
  }
656
- const expected = this.backbuffer;
657
- this.backbuffer = originalBackbuffer;
658
- return expected;
659
718
  }
660
719
  checkBackbufferMatchesExpected(cameraY) {
661
720
  const expected = this.computeExpectedBackbuffer(cameraY);
@@ -699,15 +758,12 @@ export class TerminalBufferWorker {
699
758
  this.composeToBackbuffer(this.sceneManager.root, rootRegion, rootBackbufferHeight, rootBackbufferOffset);
700
759
  for (const region of this.sceneManager.regions.values()) {
701
760
  if (region.overflowToBackbuffer && region.isScrollable) {
702
- const scrollTop = region.scrollTop ?? 0;
703
- const linesOffsetY = region.linesOffsetY ?? 0;
704
- const maxRequestedHistory = scrollTop - linesOffsetY;
705
- const actualHistoryToRender = Math.max(0, Math.min(maxRequestedHistory, this.maxScrollbackLength));
706
- const regionBackbufferHeight = actualHistoryToRender;
707
- const regionBackbufferOffset = scrollTop - actualHistoryToRender;
708
761
  const node = this.findNodeForRegion(region.id);
709
- if (node && regionBackbufferHeight > 0) {
710
- this.composeToBackbuffer(node, region, regionBackbufferHeight, regionBackbufferOffset);
762
+ const range = node
763
+ ? this.getScrollableBackbufferRange(node, region)
764
+ : undefined;
765
+ if (node && range && range.height > 0) {
766
+ this.composeToBackbuffer(node, region, range.height, range.offset);
711
767
  }
712
768
  }
713
769
  }
@@ -720,6 +776,41 @@ export class TerminalBufferWorker {
720
776
  this.screen = canvas.getLines();
721
777
  this.resized = false;
722
778
  }
779
+ getScrollableBackbufferRange(node, region) {
780
+ const renderableStart = this.getEarliestRenderableY(node, region);
781
+ if (renderableStart === undefined) {
782
+ return undefined;
783
+ }
784
+ const scrollTop = region.scrollTop ?? 0;
785
+ const maxRequestedHistory = scrollTop - renderableStart;
786
+ const height = Math.max(0, Math.min(maxRequestedHistory, this.maxScrollbackLength));
787
+ return {
788
+ height,
789
+ offset: scrollTop - height,
790
+ };
791
+ }
792
+ getEarliestRenderableY(node, region) {
793
+ let earliest = region.lines.length > 0 ? (region.linesOffsetY ?? 0) : undefined;
794
+ for (const child of node.children) {
795
+ const childRegion = this.sceneManager.getRegion(child.id);
796
+ if (!childRegion) {
797
+ continue;
798
+ }
799
+ const childStart = this.getEarliestRenderableY(child, childRegion);
800
+ if (childStart === undefined) {
801
+ continue;
802
+ }
803
+ const childViewportStart = childRegion.isScrollable
804
+ ? Math.max(0, childStart - (childRegion.scrollTop ?? 0))
805
+ : childStart;
806
+ const childContentStart = childRegion.y + childViewportStart;
807
+ earliest =
808
+ earliest === undefined
809
+ ? childContentStart
810
+ : Math.min(earliest, childContentStart);
811
+ }
812
+ return earliest;
813
+ }
723
814
  composeToBackbuffer(node, region, height, offset) {
724
815
  const canvas = Canvas.create(this.columns, height);
725
816
  const originalScrollTop = region.scrollTop;
@@ -890,20 +981,32 @@ export class TerminalBufferWorker {
890
981
  }
891
982
  }
892
983
  }
893
- findNodeForRegion(id) {
894
- if (!this.sceneManager.root)
895
- return undefined;
984
+ invalidateRegionNodeCache() {
985
+ this.regionNodeCache.clear();
986
+ this.regionNodeCacheRoot = undefined;
987
+ }
988
+ getRegionNodeCache() {
989
+ const { root } = this.sceneManager;
990
+ if (!root) {
991
+ this.invalidateRegionNodeCache();
992
+ return this.regionNodeCache;
993
+ }
994
+ if (this.regionNodeCacheRoot === root) {
995
+ return this.regionNodeCache;
996
+ }
997
+ this.regionNodeCache.clear();
998
+ this.regionNodeCacheRoot = root;
896
999
  const visit = (node) => {
897
- if (node.id === id)
898
- return node;
1000
+ this.regionNodeCache.set(node.id, node);
899
1001
  for (const child of node.children) {
900
- const found = visit(child);
901
- if (found)
902
- return found;
1002
+ visit(child);
903
1003
  }
904
- return undefined;
905
1004
  };
906
- return visit(this.sceneManager.root);
1005
+ visit(root);
1006
+ return this.regionNodeCache;
1007
+ }
1008
+ findNodeForRegion(id) {
1009
+ return this.getRegionNodeCache().get(id);
907
1010
  }
908
1011
  processRegionForScroll(node, offsetX, offsetY, cameraY, scrolledToBackbuffer, compositor) {
909
1012
  const region = this.sceneManager.getRegion(node.id);