@jrichman/ink 7.0.0-beta → 7.0.0-beta.2
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/build/components/StaticRender.d.ts +39 -2
- package/build/components/StaticRender.js +67 -10
- package/build/components/StaticRender.js.map +1 -1
- package/build/dom.d.ts +2 -4
- package/build/dom.js +20 -24
- package/build/dom.js.map +1 -1
- package/build/output.js +24 -55
- package/build/output.js.map +1 -1
- package/build/reconciler.js +0 -2
- package/build/reconciler.js.map +1 -1
- package/build/render-node-to-output.js +20 -57
- package/build/render-node-to-output.js.map +1 -1
- package/build/render-sticky.d.ts +13 -0
- package/build/render-sticky.js +92 -80
- package/build/render-sticky.js.map +1 -1
- package/build/render-text-node.js +6 -6
- package/build/render-text-node.js.map +1 -1
- package/build/squash-text-nodes.js +6 -15
- package/build/squash-text-nodes.js.map +1 -1
- package/build/styled-line.d.ts +0 -1
- package/build/styled-line.js +17 -55
- package/build/styled-line.js.map +1 -1
- package/build/terminal-buffer.d.ts +0 -1
- package/build/terminal-buffer.js +47 -157
- package/build/terminal-buffer.js.map +1 -1
- package/build/tokenize.d.ts +0 -18
- package/build/tokenize.js +1 -182
- package/build/tokenize.js.map +1 -1
- package/build/worker/render-worker.d.ts +1 -1
- package/build/worker/render-worker.js +2 -2
- package/build/worker/render-worker.js.map +1 -1
- package/build/worker/scene-manager.d.ts +1 -1
- package/build/worker/scene-manager.js +16 -6
- package/build/worker/scene-manager.js.map +1 -1
- package/build/worker/terminal-writer.js +12 -3
- package/build/worker/terminal-writer.js.map +1 -1
- package/build/worker/worker-entry.js +2 -1
- package/build/worker/worker-entry.js.map +1 -1
- package/package.json +3 -3
- package/readme.md +8 -27
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"squash-text-nodes.js","sourceRoot":"","sources":["../src/squash-text-nodes.ts"],"names":[],"mappings":"AAKA,gFAAgF;AAChF,4EAA4E;AAC5E,qEAAqE;AACrE,EAAE;AACF,kGAAkG;AAClG,wFAAwF;AACxF,MAAM,eAAe,GAAG,CAAC,IAAgB,EAAU,EAAE;IACpD,MAAM,GAAG,GAAkB,IAAI,GAAG,EAAE,CAAC;IACrC,MAAM,SAAS,GAAG,EAAC,OAAO,EAAE,CAAC,EAAC,CAAC;IAE/B,OAAO,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;AACrD,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACrC,IAAgB,EAChB,GAAkB,EAClB,SAA4B,EACnB,EAAE;IACX,IAAI,IAAI,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"squash-text-nodes.js","sourceRoot":"","sources":["../src/squash-text-nodes.ts"],"names":[],"mappings":"AAKA,gFAAgF;AAChF,4EAA4E;AAC5E,qEAAqE;AACrE,EAAE;AACF,kGAAkG;AAClG,wFAAwF;AACxF,MAAM,eAAe,GAAG,CAAC,IAAgB,EAAU,EAAE;IACpD,MAAM,GAAG,GAAkB,IAAI,GAAG,EAAE,CAAC;IACrC,MAAM,SAAS,GAAG,EAAC,OAAO,EAAE,CAAC,EAAC,CAAC;IAE/B,OAAO,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;AACrD,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACrC,IAAgB,EAChB,GAAkB,EAClB,SAA4B,EACnB,EAAE;IACX,IAAI,IAAI,GAAG,EAAE,CAAC;IAEd,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAEzC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC7B,SAAS;QACV,CAAC;QAED,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC;QAEtC,IAAI,SAAS,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YACpC,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC;YAC/B,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE;gBAClB,KAAK,EAAE,WAAW;gBAClB,GAAG,EAAE,WAAW,GAAG,QAAQ,CAAC,MAAM;aAClC,CAAC,CAAC;YACH,SAAS,CAAC,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC;QACtC,CAAC;aAAM,CAAC;YACP,IACC,SAAS,CAAC,QAAQ,KAAK,UAAU;gBACjC,SAAS,CAAC,QAAQ,KAAK,kBAAkB,EACxC,CAAC;gBACF,QAAQ,GAAG,sBAAsB,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;gBAC7D,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE;oBAClB,KAAK,EAAE,WAAW;oBAClB,GAAG,EAAE,SAAS,CAAC,OAAO;iBACtB,CAAC,CAAC;YACJ,CAAC;YAED,oFAAoF;YACpF,iFAAiF;YACjF,IACC,QAAQ,CAAC,MAAM,GAAG,CAAC;gBACnB,OAAO,SAAS,CAAC,kBAAkB,KAAK,UAAU,EACjD,CAAC;gBACF,QAAQ,GAAG,SAAS,CAAC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC1D,CAAC;QACF,CAAC;QAED,IAAI,IAAI,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
package/build/styled-line.d.ts
CHANGED
|
@@ -33,7 +33,6 @@ export declare class StyledLine {
|
|
|
33
33
|
setInverted(index: number, inverted: boolean): void;
|
|
34
34
|
setBackgroundColor(index: number, color: string | undefined): void;
|
|
35
35
|
setForegroundColor(index: number, color: string | undefined): void;
|
|
36
|
-
replaceAt(index: number, chars: StyledLine): void;
|
|
37
36
|
setChar(index: number, value: string, formatFlags: number, fgColor?: string, bgColor?: string, link?: string): void;
|
|
38
37
|
pushChar(value: string, formatFlags: number, fgColor?: string, bgColor?: string, link?: string): void;
|
|
39
38
|
clone(): StyledLine;
|
package/build/styled-line.js
CHANGED
|
@@ -15,6 +15,12 @@ function hasAnyStyles(formatFlags, fgColor, bgColor, link) {
|
|
|
15
15
|
function spanHasStyles(span) {
|
|
16
16
|
return hasAnyStyles(span.formatFlags, span.fgColor, span.bgColor, span.link);
|
|
17
17
|
}
|
|
18
|
+
function spanHasStylesMatch(span, formatFlags, fgColor, bgColor, link) {
|
|
19
|
+
return (span.formatFlags === formatFlags &&
|
|
20
|
+
span.fgColor === fgColor &&
|
|
21
|
+
span.bgColor === bgColor &&
|
|
22
|
+
span.link === link);
|
|
23
|
+
}
|
|
18
24
|
function spansHaveStyles(spans) {
|
|
19
25
|
if (!spans)
|
|
20
26
|
return false;
|
|
@@ -213,25 +219,6 @@ export class StyledLine {
|
|
|
213
219
|
}
|
|
214
220
|
this._spansDirty = true;
|
|
215
221
|
}
|
|
216
|
-
replaceAt(index, chars) {
|
|
217
|
-
if (chars.length === 0 || index >= this.length)
|
|
218
|
-
return;
|
|
219
|
-
this.ensureInitialized();
|
|
220
|
-
chars.ensureInitialized();
|
|
221
|
-
const start = Math.max(0, index);
|
|
222
|
-
const end = Math.min(this.length, start + chars.length);
|
|
223
|
-
const replacementLen = end - start;
|
|
224
|
-
const slicedChars = chars.length > replacementLen ? chars.slice(0, replacementLen) : chars;
|
|
225
|
-
const left = this.slice(0, start);
|
|
226
|
-
const right = this.slice(end);
|
|
227
|
-
const combined = left.combine(slicedChars, right);
|
|
228
|
-
this.length = combined.length;
|
|
229
|
-
this.text = combined.text;
|
|
230
|
-
this.charData = combined.charData;
|
|
231
|
-
this.spans = combined.spans;
|
|
232
|
-
this._spansDirty = combined._spansDirty;
|
|
233
|
-
this._cachedTrimmedLength = undefined;
|
|
234
|
-
}
|
|
235
222
|
// eslint-disable-next-line max-params
|
|
236
223
|
setChar(index, value, formatFlags, fgColor, bgColor, link) {
|
|
237
224
|
if (index < 0 || index >= this.length)
|
|
@@ -292,20 +279,14 @@ export class StyledLine {
|
|
|
292
279
|
currentOffset += s.length;
|
|
293
280
|
}
|
|
294
281
|
if (span) {
|
|
295
|
-
const isMatch = span
|
|
296
|
-
span.fgColor === fgColor &&
|
|
297
|
-
span.bgColor === bgColor &&
|
|
298
|
-
span.link === link;
|
|
282
|
+
const isMatch = spanHasStylesMatch(span, cleanFormatFlags, fgColor, bgColor, link);
|
|
299
283
|
if (isMatch) {
|
|
300
284
|
return; // Style already matches, no need to touch spans
|
|
301
285
|
}
|
|
302
286
|
// If it's the very first character of the span, check if we can merge with the previous span
|
|
303
287
|
if (index === currentOffset && spanIndex > 0) {
|
|
304
288
|
const prevSpan = this.spans[spanIndex - 1];
|
|
305
|
-
const prevMatch = prevSpan
|
|
306
|
-
prevSpan.fgColor === fgColor &&
|
|
307
|
-
prevSpan.bgColor === bgColor &&
|
|
308
|
-
prevSpan.link === link;
|
|
289
|
+
const prevMatch = spanHasStylesMatch(prevSpan, cleanFormatFlags, fgColor, bgColor, link);
|
|
309
290
|
if (prevMatch) {
|
|
310
291
|
prevSpan.length += 1;
|
|
311
292
|
if (span.length === 1) {
|
|
@@ -322,10 +303,7 @@ export class StyledLine {
|
|
|
322
303
|
if (index === currentOffset + span.length - 1 &&
|
|
323
304
|
spanIndex < this.spans.length - 1) {
|
|
324
305
|
const nextSpan = this.spans[spanIndex + 1];
|
|
325
|
-
const nextMatch = nextSpan
|
|
326
|
-
nextSpan.fgColor === fgColor &&
|
|
327
|
-
nextSpan.bgColor === bgColor &&
|
|
328
|
-
nextSpan.link === link;
|
|
306
|
+
const nextMatch = spanHasStylesMatch(nextSpan, cleanFormatFlags, fgColor, bgColor, link);
|
|
329
307
|
if (nextMatch) {
|
|
330
308
|
nextSpan.length += 1;
|
|
331
309
|
if (span.length === 1) {
|
|
@@ -520,27 +498,18 @@ export class StyledLine {
|
|
|
520
498
|
return result;
|
|
521
499
|
}
|
|
522
500
|
getTrimmedLength() {
|
|
523
|
-
if (this.
|
|
524
|
-
return this._cachedTrimmedLength;
|
|
525
|
-
}
|
|
526
|
-
if (this.length === 0) {
|
|
527
|
-
this._cachedTrimmedLength = 0;
|
|
501
|
+
if (this.length === 0)
|
|
528
502
|
return 0;
|
|
529
|
-
|
|
530
|
-
if (this.text === undefined) {
|
|
531
|
-
this._cachedTrimmedLength = 0;
|
|
503
|
+
if (this.text === undefined)
|
|
532
504
|
return 0;
|
|
533
|
-
}
|
|
534
505
|
this.ensureSpansMerged();
|
|
535
506
|
let currentIdx = this.length - 1;
|
|
536
|
-
let trimmedLength = 0;
|
|
537
507
|
if (this.spans) {
|
|
538
508
|
for (let s = this.spans.length - 1; s >= 0; s--) {
|
|
539
509
|
const span = this.spans[s];
|
|
540
510
|
const hasStyles = spanHasStyles(span);
|
|
541
511
|
if (hasStyles) {
|
|
542
|
-
|
|
543
|
-
break;
|
|
512
|
+
return currentIdx + 1;
|
|
544
513
|
}
|
|
545
514
|
for (let i = 0; i < span.length; i++) {
|
|
546
515
|
if (this.charData) {
|
|
@@ -549,18 +518,14 @@ export class StyledLine {
|
|
|
549
518
|
? this.charData[currentIdx + 1] & OFFSET_MASK
|
|
550
519
|
: this.text.length;
|
|
551
520
|
if (end - start !== 1 || this.text[start] !== ' ') {
|
|
552
|
-
|
|
553
|
-
break;
|
|
521
|
+
return currentIdx + 1;
|
|
554
522
|
}
|
|
555
523
|
}
|
|
556
524
|
else if (this.text[currentIdx] !== ' ') {
|
|
557
|
-
|
|
558
|
-
break;
|
|
525
|
+
return currentIdx + 1;
|
|
559
526
|
}
|
|
560
527
|
currentIdx--;
|
|
561
528
|
}
|
|
562
|
-
if (trimmedLength > 0)
|
|
563
|
-
break;
|
|
564
529
|
}
|
|
565
530
|
}
|
|
566
531
|
else {
|
|
@@ -571,19 +536,16 @@ export class StyledLine {
|
|
|
571
536
|
? this.charData[currentIdx + 1] & OFFSET_MASK
|
|
572
537
|
: this.text.length;
|
|
573
538
|
if (end - start !== 1 || this.text[start] !== ' ') {
|
|
574
|
-
|
|
575
|
-
break;
|
|
539
|
+
return currentIdx + 1;
|
|
576
540
|
}
|
|
577
541
|
}
|
|
578
542
|
else if (this.text[currentIdx] !== ' ') {
|
|
579
|
-
|
|
580
|
-
break;
|
|
543
|
+
return currentIdx + 1;
|
|
581
544
|
}
|
|
582
545
|
currentIdx--;
|
|
583
546
|
}
|
|
584
547
|
}
|
|
585
|
-
|
|
586
|
-
return trimmedLength;
|
|
548
|
+
return 0;
|
|
587
549
|
}
|
|
588
550
|
trimEnd() {
|
|
589
551
|
const trimmedLength = this.getTrimmedLength();
|
package/build/styled-line.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styled-line.js","sourceRoot":"","sources":["../src/styled-line.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"styled-line.js","sourceRoot":"","sources":["../src/styled-line.ts"],"names":[],"mappings":"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"}
|
package/build/terminal-buffer.js
CHANGED
|
@@ -11,9 +11,8 @@ import { StyledLine } from './styled-line.js';
|
|
|
11
11
|
import { Serializer } from './serialization.js';
|
|
12
12
|
import { TerminalBufferWorker } from './worker/render-worker.js';
|
|
13
13
|
import { linesEqual } from './worker/terminal-writer.js';
|
|
14
|
-
import { flattenRegion, regionLayoutProperties, copyRegionProperty, treesEqual,
|
|
14
|
+
import { flattenRegion, regionLayoutProperties, copyRegionProperty, treesEqual, } from './output.js';
|
|
15
15
|
const debugEdits = false;
|
|
16
|
-
const emptyStyledLine = new StyledLine();
|
|
17
16
|
export default class TerminalBuffer {
|
|
18
17
|
get lines() {
|
|
19
18
|
if (this._cachedLines) {
|
|
@@ -211,44 +210,18 @@ export default class TerminalBuffer {
|
|
|
211
210
|
const currentRegionsMap = new Map();
|
|
212
211
|
const nodeIdToElement = new Map();
|
|
213
212
|
const updates = [];
|
|
214
|
-
|
|
215
|
-
if (this.lastTree) {
|
|
216
|
-
const populateLastNodes = (n) => {
|
|
217
|
-
lastRegionNodes.set(n.id, n);
|
|
218
|
-
for (const c of n.children)
|
|
219
|
-
populateLastNodes(c);
|
|
220
|
-
};
|
|
221
|
-
populateLastNodes(this.lastTree);
|
|
222
|
-
}
|
|
213
|
+
// Traverse tree to collect all current regions and build structure
|
|
223
214
|
const buildTree = (r) => {
|
|
224
215
|
currentRegionsMap.set(r.id, r);
|
|
216
|
+
// Populate nodeIdToElement map
|
|
225
217
|
if (r.nodeId !== undefined && r.node !== undefined) {
|
|
226
218
|
nodeIdToElement.set(r.nodeId, r.node);
|
|
227
219
|
}
|
|
220
|
+
// Diff this region
|
|
228
221
|
const update = this.diffRegion(r, nodeIdToElement);
|
|
229
222
|
if (update) {
|
|
230
223
|
updates.push(update);
|
|
231
224
|
}
|
|
232
|
-
// Fast path for unchanged cached static render regions and their subtrees
|
|
233
|
-
if (!update) {
|
|
234
|
-
const isCurrentRef = r instanceof RegionReference;
|
|
235
|
-
const lastRegion = this.lastRegions.get(r.id);
|
|
236
|
-
const isLastRef = lastRegion instanceof RegionReference;
|
|
237
|
-
if (isCurrentRef && isLastRef && r.target === lastRegion.target) {
|
|
238
|
-
const cachedNode = lastRegionNodes.get(r.id);
|
|
239
|
-
if (cachedNode) {
|
|
240
|
-
const populateDescendants = (n) => {
|
|
241
|
-
for (const c of n.children) {
|
|
242
|
-
const descRegion = this.lastRegions.get(c.id);
|
|
243
|
-
currentRegionsMap.set(c.id, descRegion);
|
|
244
|
-
populateDescendants(c);
|
|
245
|
-
}
|
|
246
|
-
};
|
|
247
|
-
populateDescendants(cachedNode);
|
|
248
|
-
return cachedNode;
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
225
|
return {
|
|
253
226
|
id: r.id,
|
|
254
227
|
children: r.children.map(child => buildTree(child)),
|
|
@@ -257,12 +230,6 @@ export default class TerminalBuffer {
|
|
|
257
230
|
const tree = buildTree(root);
|
|
258
231
|
const treeChanged = !this.lastTree || !treesEqual(this.lastTree, tree);
|
|
259
232
|
this.lastTree = tree;
|
|
260
|
-
const deletedIds = [];
|
|
261
|
-
for (const id of this.lastRegions.keys()) {
|
|
262
|
-
if (!currentRegionsMap.has(id)) {
|
|
263
|
-
deletedIds.push(id);
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
233
|
// Update local state to current frame
|
|
267
234
|
this.lastRegions = currentRegionsMap;
|
|
268
235
|
const cursorChanged = cursorPosition !== this.lastCursorPosition &&
|
|
@@ -276,7 +243,7 @@ export default class TerminalBuffer {
|
|
|
276
243
|
this.optionsChanged ||
|
|
277
244
|
treeChanged) {
|
|
278
245
|
this.optionsChanged = false;
|
|
279
|
-
this.sendEdits(tree, updates, cursorPosition
|
|
246
|
+
this.sendEdits(tree, updates, cursorPosition);
|
|
280
247
|
return true;
|
|
281
248
|
}
|
|
282
249
|
return false;
|
|
@@ -383,13 +350,6 @@ export default class TerminalBuffer {
|
|
|
383
350
|
}
|
|
384
351
|
}
|
|
385
352
|
}
|
|
386
|
-
buildCachedRegionNode(region, currentRegionsMap) {
|
|
387
|
-
currentRegionsMap.set(region.id, region);
|
|
388
|
-
return {
|
|
389
|
-
id: region.id,
|
|
390
|
-
children: region.children.map(child => this.buildCachedRegionNode(child, currentRegionsMap)),
|
|
391
|
-
};
|
|
392
|
-
}
|
|
393
353
|
diffRegion(current, nodeIdToElement) {
|
|
394
354
|
const last = this.lastRegions.get(current.id);
|
|
395
355
|
const update = { id: current.id };
|
|
@@ -424,108 +384,14 @@ export default class TerminalBuffer {
|
|
|
424
384
|
};
|
|
425
385
|
return update;
|
|
426
386
|
}
|
|
427
|
-
const isCurrentRef = current instanceof RegionReference;
|
|
428
|
-
const isLastRef = last instanceof RegionReference;
|
|
429
|
-
if (isCurrentRef &&
|
|
430
|
-
isLastRef &&
|
|
431
|
-
current.target === last.target &&
|
|
432
|
-
current.x === last.x &&
|
|
433
|
-
current.y === last.y &&
|
|
434
|
-
current.overflowToBackbuffer === last.overflowToBackbuffer &&
|
|
435
|
-
current.lines === last.lines &&
|
|
436
|
-
current.linesOffsetY === last.linesOffsetY) {
|
|
437
|
-
return undefined;
|
|
438
|
-
}
|
|
439
387
|
// Check properties
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
update.y = current.y;
|
|
446
|
-
hasChanges = true;
|
|
447
|
-
}
|
|
448
|
-
if (current.width !== last.width) {
|
|
449
|
-
update.width = current.width;
|
|
450
|
-
hasChanges = true;
|
|
451
|
-
}
|
|
452
|
-
if (current.height !== last.height) {
|
|
453
|
-
update.height = current.height;
|
|
454
|
-
hasChanges = true;
|
|
455
|
-
}
|
|
456
|
-
if (current.scrollTop !== last.scrollTop) {
|
|
457
|
-
update.scrollTop = current.scrollTop;
|
|
458
|
-
hasChanges = true;
|
|
459
|
-
}
|
|
460
|
-
if (current.scrollLeft !== last.scrollLeft) {
|
|
461
|
-
update.scrollLeft = current.scrollLeft;
|
|
462
|
-
hasChanges = true;
|
|
463
|
-
}
|
|
464
|
-
if (current.scrollHeight !== last.scrollHeight) {
|
|
465
|
-
update.scrollHeight = current.scrollHeight;
|
|
466
|
-
hasChanges = true;
|
|
467
|
-
}
|
|
468
|
-
if (current.scrollWidth !== last.scrollWidth) {
|
|
469
|
-
update.scrollWidth = current.scrollWidth;
|
|
470
|
-
hasChanges = true;
|
|
471
|
-
}
|
|
472
|
-
if (current.isScrollable !== last.isScrollable) {
|
|
473
|
-
update.isScrollable = current.isScrollable;
|
|
474
|
-
hasChanges = true;
|
|
475
|
-
}
|
|
476
|
-
if (current.isVerticallyScrollable !== last.isVerticallyScrollable) {
|
|
477
|
-
update.isVerticallyScrollable = current.isVerticallyScrollable;
|
|
478
|
-
hasChanges = true;
|
|
479
|
-
}
|
|
480
|
-
if (current.isHorizontallyScrollable !== last.isHorizontallyScrollable) {
|
|
481
|
-
update.isHorizontallyScrollable = current.isHorizontallyScrollable;
|
|
482
|
-
hasChanges = true;
|
|
483
|
-
}
|
|
484
|
-
if (current.scrollbarVisible !== last.scrollbarVisible) {
|
|
485
|
-
update.scrollbarVisible = current.scrollbarVisible;
|
|
486
|
-
hasChanges = true;
|
|
487
|
-
}
|
|
488
|
-
if (current.overflowToBackbuffer !== last.overflowToBackbuffer) {
|
|
489
|
-
update.overflowToBackbuffer = current.overflowToBackbuffer;
|
|
490
|
-
hasChanges = true;
|
|
491
|
-
}
|
|
492
|
-
if (current.marginRight !== last.marginRight) {
|
|
493
|
-
update.marginRight = current.marginRight;
|
|
494
|
-
hasChanges = true;
|
|
495
|
-
}
|
|
496
|
-
if (current.marginBottom !== last.marginBottom) {
|
|
497
|
-
update.marginBottom = current.marginBottom;
|
|
498
|
-
hasChanges = true;
|
|
499
|
-
}
|
|
500
|
-
if (current.scrollbarThumbColor !== last.scrollbarThumbColor) {
|
|
501
|
-
update.scrollbarThumbColor = current.scrollbarThumbColor;
|
|
502
|
-
hasChanges = true;
|
|
503
|
-
}
|
|
504
|
-
if (current.backgroundColor !== last.backgroundColor) {
|
|
505
|
-
update.backgroundColor = current.backgroundColor;
|
|
506
|
-
hasChanges = true;
|
|
507
|
-
}
|
|
508
|
-
if (current.opaque !== last.opaque) {
|
|
509
|
-
update.opaque = current.opaque;
|
|
510
|
-
hasChanges = true;
|
|
511
|
-
}
|
|
512
|
-
if (current.borderTop !== last.borderTop) {
|
|
513
|
-
update.borderTop = current.borderTop;
|
|
514
|
-
hasChanges = true;
|
|
515
|
-
}
|
|
516
|
-
if (current.borderBottom !== last.borderBottom) {
|
|
517
|
-
update.borderBottom = current.borderBottom;
|
|
518
|
-
hasChanges = true;
|
|
519
|
-
}
|
|
520
|
-
if (current.linesOffsetY !== last.linesOffsetY) {
|
|
521
|
-
update.linesOffsetY = current.linesOffsetY;
|
|
522
|
-
hasChanges = true;
|
|
388
|
+
for (const key of regionLayoutProperties) {
|
|
389
|
+
if (current[key] !== last[key]) {
|
|
390
|
+
copyRegionProperty(update, current, key);
|
|
391
|
+
hasChanges = true;
|
|
392
|
+
}
|
|
523
393
|
}
|
|
524
|
-
|
|
525
|
-
// or we can rely on the fact they are rebuilt every frame.
|
|
526
|
-
// Let's just resend if length differs or assume they might change.
|
|
527
|
-
// To be safe and simple: always send sticky headers if they exist or existed.
|
|
528
|
-
if (current.stickyHeaders.length > 0 || last.stickyHeaders.length > 0) {
|
|
394
|
+
if (!stickyHeadersEqual(current.stickyHeaders, last.stickyHeaders)) {
|
|
529
395
|
update.stickyHeaders = current.stickyHeaders.map(h => ({
|
|
530
396
|
...h,
|
|
531
397
|
node: undefined,
|
|
@@ -615,25 +481,18 @@ export default class TerminalBuffer {
|
|
|
615
481
|
if (chunkStart === -1) {
|
|
616
482
|
chunkStart = y;
|
|
617
483
|
}
|
|
618
|
-
|
|
619
|
-
// However, if newLine is genuinely undefined and we're pushing it into chunkLines,
|
|
620
|
-
// the serializer handles undefined elements by treating them as empty. Let's cast to
|
|
621
|
-
// any to bypass TS error or use a shared empty StyledLine.
|
|
622
|
-
// For now, since chunkLines is StyledLine[], we can push an empty one if we don't have it.
|
|
623
|
-
// Actually, we can push newLine as it is if we allow undefined in the type, but since
|
|
624
|
-
// it's defined as StyledLine[], we'll use a shared empty instance to avoid allocating.
|
|
625
|
-
chunkLines.push(newLine ?? emptyStyledLine);
|
|
484
|
+
chunkLines.push(newLine ?? new StyledLine());
|
|
626
485
|
if (debugEdits) {
|
|
627
|
-
chunkSource.push(oldLine ??
|
|
486
|
+
chunkSource.push(oldLine ?? new StyledLine());
|
|
628
487
|
}
|
|
629
488
|
}
|
|
630
489
|
}
|
|
631
490
|
flushChunk();
|
|
632
491
|
return updates;
|
|
633
492
|
}
|
|
634
|
-
sendEdits(tree, updates, cursorPosition
|
|
493
|
+
sendEdits(tree, updates, cursorPosition) {
|
|
635
494
|
if (this.workerInstance) {
|
|
636
|
-
this.workerInstance.update(tree, updates, cursorPosition
|
|
495
|
+
this.workerInstance.update(tree, updates, cursorPosition);
|
|
637
496
|
}
|
|
638
497
|
else if (this.worker?.connected) {
|
|
639
498
|
try {
|
|
@@ -642,7 +501,6 @@ export default class TerminalBuffer {
|
|
|
642
501
|
tree,
|
|
643
502
|
updates,
|
|
644
503
|
cursorPosition,
|
|
645
|
-
deletedIds,
|
|
646
504
|
});
|
|
647
505
|
}
|
|
648
506
|
catch (error) {
|
|
@@ -651,4 +509,36 @@ export default class TerminalBuffer {
|
|
|
651
509
|
}
|
|
652
510
|
}
|
|
653
511
|
}
|
|
512
|
+
function stickyHeadersEqual(a, b) {
|
|
513
|
+
if (a.length !== b.length)
|
|
514
|
+
return false;
|
|
515
|
+
for (let i = 0; i < a.length; i++) {
|
|
516
|
+
const ha = a[i];
|
|
517
|
+
const hb = b[i];
|
|
518
|
+
if (ha.nodeId !== hb.nodeId ||
|
|
519
|
+
ha.x !== hb.x ||
|
|
520
|
+
ha.y !== hb.y ||
|
|
521
|
+
ha.naturalRow !== hb.naturalRow ||
|
|
522
|
+
ha.startRow !== hb.startRow ||
|
|
523
|
+
ha.endRow !== hb.endRow ||
|
|
524
|
+
ha.scrollContainerId !== hb.scrollContainerId ||
|
|
525
|
+
ha.isStuckOnly !== hb.isStuckOnly ||
|
|
526
|
+
ha.type !== hb.type ||
|
|
527
|
+
ha.maxStuckY !== hb.maxStuckY ||
|
|
528
|
+
ha.minStuckY !== hb.minStuckY ||
|
|
529
|
+
ha.relativeX !== hb.relativeX ||
|
|
530
|
+
ha.relativeY !== hb.relativeY ||
|
|
531
|
+
ha.height !== hb.height ||
|
|
532
|
+
ha.parentRelativeTop !== hb.parentRelativeTop ||
|
|
533
|
+
ha.parentHeight !== hb.parentHeight ||
|
|
534
|
+
ha.parentBorderTop !== hb.parentBorderTop ||
|
|
535
|
+
ha.parentBorderBottom !== hb.parentBorderBottom ||
|
|
536
|
+
ha.lines !== hb.lines ||
|
|
537
|
+
ha.stuckLines !== hb.stuckLines ||
|
|
538
|
+
ha.styledOutput !== hb.styledOutput) {
|
|
539
|
+
return false;
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
return true;
|
|
543
|
+
}
|
|
654
544
|
//# sourceMappingURL=terminal-buffer.js.map
|