@floegence/floeterm-terminal-web 0.5.23 → 0.6.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.
- package/README.md +21 -1
- package/dist/core/PagedTerminalOutputCoordinator.js +3 -4
- package/dist/core/PagedTerminalOutputCoordinator.js.map +1 -1
- package/dist/core/TerminalCore.d.ts +3 -0
- package/dist/core/TerminalCore.d.ts.map +1 -1
- package/dist/core/TerminalCore.js +121 -35
- package/dist/core/TerminalCore.js.map +1 -1
- package/dist/core/TerminalInputBridge.d.ts +17 -7
- package/dist/core/TerminalInputBridge.d.ts.map +1 -1
- package/dist/core/TerminalInputBridge.js +78 -73
- package/dist/core/TerminalInputBridge.js.map +1 -1
- package/dist/core/TerminalOutputPipeline.js +2 -2
- package/dist/core/TerminalOutputPipeline.js.map +1 -1
- package/dist/entries/live.d.ts +7 -0
- package/dist/entries/live.d.ts.map +1 -0
- package/dist/entries/live.js +4 -0
- package/dist/entries/live.js.map +1 -0
- package/dist/fabric/BeamtermFabricRenderer.d.ts +11 -4
- package/dist/fabric/BeamtermFabricRenderer.d.ts.map +1 -1
- package/dist/fabric/BeamtermFabricRenderer.js +259 -47
- package/dist/fabric/BeamtermFabricRenderer.js.map +1 -1
- package/dist/fabric/TerminalFabricCoordinator.d.ts +1 -1
- package/dist/fabric/TerminalFabricCoordinator.d.ts.map +1 -1
- package/dist/fabric/TerminalFabricCoordinator.js +4 -7
- package/dist/fabric/TerminalFabricCoordinator.js.map +1 -1
- package/dist/fabric/TerminalLiveFabric.d.ts +3 -43
- package/dist/fabric/TerminalLiveFabric.d.ts.map +1 -1
- package/dist/fabric/TerminalLiveFabric.js +3 -97
- package/dist/fabric/TerminalLiveFabric.js.map +1 -1
- package/dist/fabric/types.d.ts +41 -3
- package/dist/fabric/types.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internal/BeamtermResourceLoader.d.ts +1 -1
- package/dist/internal/BeamtermResourceLoader.d.ts.map +1 -1
- package/dist/internal/BeamtermResourceLoader.js +1 -1
- package/dist/internal/BeamtermResourceLoader.js.map +1 -1
- package/dist/internal/SequenceBuffer.d.ts +7 -11
- package/dist/internal/SequenceBuffer.d.ts.map +1 -1
- package/dist/internal/SequenceBuffer.js +52 -103
- package/dist/internal/SequenceBuffer.js.map +1 -1
- package/dist/live/client.d.ts +62 -0
- package/dist/live/client.d.ts.map +1 -0
- package/dist/live/client.js +326 -0
- package/dist/live/client.js.map +1 -0
- package/dist/live/codec.d.ts +97 -0
- package/dist/live/codec.d.ts.map +1 -0
- package/dist/live/codec.js +386 -0
- package/dist/live/codec.js.map +1 -0
- package/dist/live/transport.d.ts +37 -0
- package/dist/live/transport.d.ts.map +1 -0
- package/dist/live/transport.js +194 -0
- package/dist/live/transport.js.map +1 -0
- package/dist/manager/TerminalInstanceController.d.ts +11 -0
- package/dist/manager/TerminalInstanceController.d.ts.map +1 -1
- package/dist/manager/TerminalInstanceController.js +265 -38
- package/dist/manager/TerminalInstanceController.js.map +1 -1
- package/dist/types.d.ts +41 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +6 -2
package/README.md
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Framework-neutral ghostty-web (xterm.js API-compatible) integration with terminal core, session, and data flow utilities.
|
|
4
4
|
|
|
5
|
+
The WebGL2 backend is the exact version of `@floegence/beamterm-renderer` declared by this package. Renderer initialization failures are explicit and retry the same backend; terminal-web never silently falls back to a second renderer.
|
|
6
|
+
|
|
5
7
|
## Install
|
|
6
8
|
|
|
7
9
|
```bash
|
|
@@ -190,6 +192,24 @@ core.setFixedDimensions(null);
|
|
|
190
192
|
core.forceResize();
|
|
191
193
|
```
|
|
192
194
|
|
|
195
|
+
Interactive views of one shared PTY can keep independent viewport measurements while rendering the server-confirmed terminal grid:
|
|
196
|
+
|
|
197
|
+
```ts
|
|
198
|
+
const controller = createTerminalInstance({
|
|
199
|
+
sessionId,
|
|
200
|
+
transport,
|
|
201
|
+
eventSource,
|
|
202
|
+
isActive: true,
|
|
203
|
+
config: {
|
|
204
|
+
responsive: {
|
|
205
|
+
reportHostDimensionsWithFixedGrid: true,
|
|
206
|
+
},
|
|
207
|
+
},
|
|
208
|
+
});
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
The live transport applies `ATTACHED`, `GEOMETRY_CHANGED`, `RESIZE_APPLIED`, and `OUTPUT_BATCH` geometry monotonically. Container resize notifications still report each view's own capacity to the server.
|
|
212
|
+
|
|
193
213
|
Hosts with overlay scrollbars can remove the default ghostty-web scrollbar reserve:
|
|
194
214
|
|
|
195
215
|
```ts
|
|
@@ -216,7 +236,7 @@ With `copyOnSelect: false`, `TerminalCore` keeps selection explicit:
|
|
|
216
236
|
|
|
217
237
|
- `core.hasSelection()` reports whether the terminal currently owns a copyable selection.
|
|
218
238
|
- `core.copySelection()` writes the current terminal selection to the clipboard.
|
|
219
|
-
- `Cmd+C` / `Ctrl+C` only
|
|
239
|
+
- `Cmd+C` / `Ctrl+C` copies only when the terminal currently has a selection. Without a selection, `Ctrl+C` remains terminal input and produces the standard interrupt control byte; `Cmd+C` is not converted into terminal input.
|
|
220
240
|
|
|
221
241
|
The managed controller exposes the same helpers through `controller.actions`.
|
|
222
242
|
|
|
@@ -3,7 +3,7 @@ const DEFAULT_POLICY = {
|
|
|
3
3
|
maxRetainedLiveChunks: 2048,
|
|
4
4
|
maxRetainedLiveBytes: 8 * 1024 * 1024,
|
|
5
5
|
retryDelaysMs: [250, 1000, 4000],
|
|
6
|
-
maxWriteBatchBytes:
|
|
6
|
+
maxWriteBatchBytes: 512 * 1024,
|
|
7
7
|
};
|
|
8
8
|
const DEFAULT_PREPARED_HISTORY_MAX_BYTES = 32 * 1024 * 1024;
|
|
9
9
|
const normalizePositiveInteger = (value, fallback) => (typeof value === 'number' && Number.isSafeInteger(value) && value > 0
|
|
@@ -347,6 +347,7 @@ class PagedTerminalOutputCoordinator {
|
|
|
347
347
|
this.emitState();
|
|
348
348
|
this.setState('live');
|
|
349
349
|
this.drainRetainedLive();
|
|
350
|
+
await this.writeChain;
|
|
350
351
|
return;
|
|
351
352
|
}
|
|
352
353
|
await this.runRecovery();
|
|
@@ -737,6 +738,7 @@ class PagedTerminalOutputCoordinator {
|
|
|
737
738
|
this.setState('live');
|
|
738
739
|
this.recoveryRunning = false;
|
|
739
740
|
this.drainRetainedLive();
|
|
741
|
+
await this.writeChain;
|
|
740
742
|
}
|
|
741
743
|
catch (error) {
|
|
742
744
|
if (!this.isRecoveryCurrent(generation, recoverySerial, controller))
|
|
@@ -951,9 +953,6 @@ class PagedTerminalOutputCoordinator {
|
|
|
951
953
|
return;
|
|
952
954
|
this.liveWriteScheduled = true;
|
|
953
955
|
this.writeChain = this.writeChain.then(async () => {
|
|
954
|
-
if (!this.isCurrent(generation))
|
|
955
|
-
return;
|
|
956
|
-
await Promise.resolve();
|
|
957
956
|
if (!this.isCurrent(generation))
|
|
958
957
|
return;
|
|
959
958
|
const pending = this.pendingLiveWrites.splice(0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PagedTerminalOutputCoordinator.js","sourceRoot":"","sources":["../../src/core/PagedTerminalOutputCoordinator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PagedTerminalOutputCoordinator.js","sourceRoot":"","sources":["../../src/core/PagedTerminalOutputCoordinator.ts"],"names":[],"mappings":"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"}
|
|
@@ -102,6 +102,7 @@ export declare class TerminalCore {
|
|
|
102
102
|
private patchSelectionManagerRenderingBehavior;
|
|
103
103
|
private attachFabricRenderer;
|
|
104
104
|
private scheduleFabricRendererAttach;
|
|
105
|
+
private handleRendererFailure;
|
|
105
106
|
private setupInputBridge;
|
|
106
107
|
private waitForDOMAndFonts;
|
|
107
108
|
private waitForTerminalFontReady;
|
|
@@ -122,6 +123,8 @@ export declare class TerminalCore {
|
|
|
122
123
|
startHistoryReplay(duration?: number): void;
|
|
123
124
|
endHistoryReplay(): void;
|
|
124
125
|
write(data: string | Uint8Array, callback?: () => void): void;
|
|
126
|
+
writeFrame(data: string | Uint8Array, callback?: () => void): void;
|
|
127
|
+
private writeWithRenderMode;
|
|
125
128
|
writeHistory(data: string | Uint8Array, callback?: () => void): void;
|
|
126
129
|
clear(): void;
|
|
127
130
|
serialize(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TerminalCore.d.ts","sourceRoot":"","sources":["../../src/core/TerminalCore.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TerminalCore.d.ts","sourceRoot":"","sources":["../../src/core/TerminalCore.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { filterXtermAutoResponses } from '../utils/xtermAutoResponseFilter.js';
|
|
2
2
|
import { createConsoleLogger, noopLogger } from '../utils/logger.js';
|
|
3
|
-
import { cursorToFabricCursor,
|
|
3
|
+
import { cursorToFabricCursor, renderReasonFromForce, terminalLiveFabric, themeToFabricTheme, } from '../fabric/TerminalLiveFabric.js';
|
|
4
4
|
import { terminalFabricCoordinator } from '../fabric/TerminalFabricCoordinator.js';
|
|
5
5
|
import { TerminalState, } from '../types.js';
|
|
6
6
|
import { terminalInitializationScheduler, } from '../internal/TerminalInitializationScheduler.js';
|
|
@@ -605,21 +605,27 @@ export class TerminalCore {
|
|
|
605
605
|
}
|
|
606
606
|
await waitWithAbort(this.waitForDOMAndFonts(), signal);
|
|
607
607
|
await waitWithAbort(this.ensureContainerReady(), signal);
|
|
608
|
-
this.ensurePresentationHosts();
|
|
608
|
+
const renderHost = this.ensurePresentationHosts();
|
|
609
609
|
this.applyPresentationScaleStyles();
|
|
610
610
|
this.installDemandRenderPatchBeforeOpen();
|
|
611
|
-
this.terminal.open(
|
|
612
|
-
this.
|
|
611
|
+
this.terminal.open(renderHost);
|
|
612
|
+
if (this.config.rendererType === 'webgl') {
|
|
613
|
+
const canvas = this.terminal
|
|
614
|
+
.renderer?.getCanvas?.();
|
|
615
|
+
if (canvas)
|
|
616
|
+
canvas.style.opacity = '0';
|
|
617
|
+
}
|
|
618
|
+
this.mountInputElement(renderHost);
|
|
613
619
|
this.stopGhosttyRenderLoop();
|
|
614
620
|
this.patchDemandRenderTriggersAfterOpen();
|
|
615
621
|
this.patchSelectionManagerClipboardBehavior();
|
|
616
622
|
this.patchSelectionManagerRenderingBehavior();
|
|
617
|
-
this.setupInputBridge();
|
|
623
|
+
this.setupInputBridge(renderHost);
|
|
618
624
|
this.applyRegisteredLinkProviders();
|
|
619
625
|
void this.refreshFontMetricsAfterLoad('open');
|
|
620
626
|
}
|
|
621
|
-
mountInputElement() {
|
|
622
|
-
const input = resolveTerminalInputElement(
|
|
627
|
+
mountInputElement(renderHost) {
|
|
628
|
+
const input = resolveTerminalInputElement(renderHost);
|
|
623
629
|
if (!input) {
|
|
624
630
|
throw new Error('ghostty-web terminal input element was not created');
|
|
625
631
|
}
|
|
@@ -1045,7 +1051,7 @@ export class TerminalCore {
|
|
|
1045
1051
|
if (!fabricRenderer?.isActive()) {
|
|
1046
1052
|
return false;
|
|
1047
1053
|
}
|
|
1048
|
-
fabricRenderer.writeRow(
|
|
1054
|
+
fabricRenderer.writeRow(renderer, row, cells, cols, this.resolveFabricRowRenderHints(renderer));
|
|
1049
1055
|
return true;
|
|
1050
1056
|
}
|
|
1051
1057
|
resolveFabricRowRenderHints(renderer) {
|
|
@@ -1133,7 +1139,10 @@ export class TerminalCore {
|
|
|
1133
1139
|
}
|
|
1134
1140
|
ensurePresentationHosts() {
|
|
1135
1141
|
if (this.viewportHost && this.renderHost) {
|
|
1136
|
-
return;
|
|
1142
|
+
return this.renderHost;
|
|
1143
|
+
}
|
|
1144
|
+
if (this.viewportHost || this.renderHost) {
|
|
1145
|
+
throw new Error('Terminal presentation host state is inconsistent');
|
|
1137
1146
|
}
|
|
1138
1147
|
const viewportHost = document.createElement('div');
|
|
1139
1148
|
viewportHost.style.position = 'relative';
|
|
@@ -1150,6 +1159,7 @@ export class TerminalCore {
|
|
|
1150
1159
|
this.container.replaceChildren(viewportHost);
|
|
1151
1160
|
this.viewportHost = viewportHost;
|
|
1152
1161
|
this.renderHost = renderHost;
|
|
1162
|
+
return renderHost;
|
|
1153
1163
|
}
|
|
1154
1164
|
applyPresentationScaleStyles() {
|
|
1155
1165
|
const renderHost = this.renderHost;
|
|
@@ -1225,6 +1235,7 @@ export class TerminalCore {
|
|
|
1225
1235
|
forwardWheel: event => {
|
|
1226
1236
|
this.container.dispatchEvent(new WheelEvent(event.type, event));
|
|
1227
1237
|
},
|
|
1238
|
+
onRendererError: error => this.handleRendererFailure(error),
|
|
1228
1239
|
});
|
|
1229
1240
|
this.fabricView.renderer.setAppearance({ theme, fontFamily, fontSize });
|
|
1230
1241
|
this.performResize('force');
|
|
@@ -1248,7 +1259,7 @@ export class TerminalCore {
|
|
|
1248
1259
|
if (this.isDisposed || seq !== this.fabricAttachSeq) {
|
|
1249
1260
|
return;
|
|
1250
1261
|
}
|
|
1251
|
-
this.
|
|
1262
|
+
this.handleRendererFailure(error);
|
|
1252
1263
|
});
|
|
1253
1264
|
};
|
|
1254
1265
|
this.cancelFabricAttachSchedule = scheduleUiTurn(() => {
|
|
@@ -1259,16 +1270,33 @@ export class TerminalCore {
|
|
|
1259
1270
|
this.cancelFabricAttachSchedule = scheduleUiTurn(attach);
|
|
1260
1271
|
});
|
|
1261
1272
|
}
|
|
1262
|
-
|
|
1273
|
+
handleRendererFailure(value) {
|
|
1274
|
+
if (this.isDisposed)
|
|
1275
|
+
return;
|
|
1276
|
+
const error = value instanceof Error ? value : new Error(String(value));
|
|
1277
|
+
this.cancelDemandRender();
|
|
1278
|
+
this.logger.error('[TerminalCore] Beamterm WebGL2 renderer failed', { error });
|
|
1279
|
+
this.setState(TerminalState.ERROR);
|
|
1280
|
+
this.eventHandlers.onError?.(error);
|
|
1281
|
+
}
|
|
1282
|
+
setupInputBridge(inputHost) {
|
|
1263
1283
|
this.disposeInputBridge();
|
|
1264
1284
|
const input = this.inputElement;
|
|
1265
1285
|
if (!input) {
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1286
|
+
throw new Error('Terminal input element was not mounted');
|
|
1287
|
+
}
|
|
1288
|
+
this.inputBridge = new TerminalInputBridge({
|
|
1289
|
+
inputHost,
|
|
1290
|
+
inputElement: input,
|
|
1291
|
+
onData: (data) => {
|
|
1292
|
+
getPerfProbe()?.onTerminalInput?.(data.length);
|
|
1293
|
+
this.eventHandlers.onData?.(data);
|
|
1294
|
+
},
|
|
1295
|
+
logger: this.logger,
|
|
1296
|
+
hasSelection: () => this.hasSelection(),
|
|
1297
|
+
copySelection: (source, clipboardData) => this.performSelectionCopy(source, clipboardData),
|
|
1298
|
+
syncInputGeometry: () => this.syncImeInputAnchor(),
|
|
1299
|
+
});
|
|
1272
1300
|
this.syncImeInputAnchor();
|
|
1273
1301
|
if (this.isContainerFocused()) {
|
|
1274
1302
|
this.scheduleInputSurfaceRefocus();
|
|
@@ -1377,6 +1405,7 @@ export class TerminalCore {
|
|
|
1377
1405
|
return;
|
|
1378
1406
|
}
|
|
1379
1407
|
}
|
|
1408
|
+
getPerfProbe()?.onTerminalInput?.(filtered.length);
|
|
1380
1409
|
this.eventHandlers.onData?.(filtered);
|
|
1381
1410
|
});
|
|
1382
1411
|
this.trackTerminalEventDisposable(disposable);
|
|
@@ -1542,15 +1571,33 @@ export class TerminalCore {
|
|
|
1542
1571
|
const startSeq = this.resizeNotifySeq;
|
|
1543
1572
|
const before = this.lastNotifiedSize;
|
|
1544
1573
|
const changed = this.terminal.cols !== dims.cols || this.terminal.rows !== dims.rows;
|
|
1545
|
-
|
|
1546
|
-
|
|
1574
|
+
const reportHostDimensions = this.responsive.reportHostDimensionsWithFixedGrid;
|
|
1575
|
+
const previousSuppression = this.suppressResizeNotifications;
|
|
1576
|
+
if (reportHostDimensions && changed) {
|
|
1577
|
+
this.suppressResizeNotifications = true;
|
|
1578
|
+
}
|
|
1579
|
+
try {
|
|
1580
|
+
if (changed) {
|
|
1547
1581
|
this.terminal.resize(dims.cols, dims.rows);
|
|
1548
|
-
this.resizeFabricToHost();
|
|
1549
|
-
this.syncImeInputAnchor();
|
|
1550
1582
|
}
|
|
1551
|
-
|
|
1552
|
-
|
|
1583
|
+
this.resizeFabricToHost();
|
|
1584
|
+
this.syncImeInputAnchor();
|
|
1585
|
+
}
|
|
1586
|
+
catch (error) {
|
|
1587
|
+
this.logger.debug('[TerminalCore] Fixed-dimension resize failed', { error });
|
|
1588
|
+
}
|
|
1589
|
+
finally {
|
|
1590
|
+
this.suppressResizeNotifications = previousSuppression;
|
|
1591
|
+
}
|
|
1592
|
+
if (reportHostDimensions) {
|
|
1593
|
+
const hostDimensions = this.proposeFitDimensions();
|
|
1594
|
+
if (!hostDimensions) {
|
|
1595
|
+
return;
|
|
1553
1596
|
}
|
|
1597
|
+
const force = reason === 'focus' && this.responsive.emitResizeOnFocus
|
|
1598
|
+
&& Boolean(before) && before.cols === hostDimensions.cols && before.rows === hostDimensions.rows;
|
|
1599
|
+
this.emitResize(hostDimensions, { source: 'core', force });
|
|
1600
|
+
return;
|
|
1554
1601
|
}
|
|
1555
1602
|
// Some ghostty-web builds may not emit onResize for programmatic resize().
|
|
1556
1603
|
if (this.resizeNotifySeq !== startSeq) {
|
|
@@ -1637,27 +1684,56 @@ export class TerminalCore {
|
|
|
1637
1684
|
this.isReplayingHistory = false;
|
|
1638
1685
|
}
|
|
1639
1686
|
write(data, callback) {
|
|
1687
|
+
this.writeWithRenderMode(data, callback, false);
|
|
1688
|
+
}
|
|
1689
|
+
writeFrame(data, callback) {
|
|
1690
|
+
this.writeWithRenderMode(data, callback, true);
|
|
1691
|
+
}
|
|
1692
|
+
writeWithRenderMode(data, callback, renderInCurrentFrame) {
|
|
1640
1693
|
if (!this.terminal || !this.isReady()) {
|
|
1641
1694
|
callback?.();
|
|
1642
1695
|
return;
|
|
1643
1696
|
}
|
|
1644
1697
|
try {
|
|
1645
|
-
|
|
1698
|
+
const probe = getPerfProbe();
|
|
1699
|
+
probe?.onTerminalWrite?.(typeof data === 'string' ? data.length : data.byteLength);
|
|
1700
|
+
const profileStartedAt = performance.now();
|
|
1701
|
+
let snapshotMs = 0;
|
|
1702
|
+
let parseMs = 0;
|
|
1703
|
+
const beforeSnapshotStartedAt = performance.now();
|
|
1646
1704
|
const beforeWrite = this.captureRenderSnapshot();
|
|
1705
|
+
snapshotMs += performance.now() - beforeSnapshotStartedAt;
|
|
1647
1706
|
const shouldForce = this.needsFullRenderOnNextWrite;
|
|
1648
|
-
|
|
1649
|
-
|
|
1650
|
-
|
|
1651
|
-
|
|
1652
|
-
|
|
1653
|
-
|
|
1707
|
+
const render = () => {
|
|
1708
|
+
const afterSnapshotStartedAt = performance.now();
|
|
1709
|
+
const shouldForceAfterWrite = shouldForce || this.shouldForceFullRenderAfterWrite(beforeWrite);
|
|
1710
|
+
snapshotMs += performance.now() - afterSnapshotStartedAt;
|
|
1711
|
+
if (shouldForceAfterWrite) {
|
|
1712
|
+
this.needsFullRenderOnNextWrite = false;
|
|
1713
|
+
}
|
|
1714
|
+
if (renderInCurrentFrame) {
|
|
1715
|
+
this.cancelDemandRender();
|
|
1716
|
+
this.renderDemandFrame(shouldForceAfterWrite);
|
|
1717
|
+
}
|
|
1718
|
+
else {
|
|
1654
1719
|
this.requestDemandRender(shouldForceAfterWrite);
|
|
1655
|
-
|
|
1720
|
+
}
|
|
1721
|
+
callback?.();
|
|
1722
|
+
probe?.onTerminalWriteProfile?.({
|
|
1723
|
+
totalMs: performance.now() - profileStartedAt,
|
|
1724
|
+
parseMs,
|
|
1725
|
+
snapshotMs,
|
|
1656
1726
|
});
|
|
1727
|
+
};
|
|
1728
|
+
const parseStartedAt = performance.now();
|
|
1729
|
+
if (callback || shouldForce) {
|
|
1730
|
+
this.terminal.write(data, render);
|
|
1731
|
+
parseMs += performance.now() - parseStartedAt;
|
|
1657
1732
|
return;
|
|
1658
1733
|
}
|
|
1659
1734
|
this.terminal.write(data);
|
|
1660
|
-
|
|
1735
|
+
parseMs += performance.now() - parseStartedAt;
|
|
1736
|
+
render();
|
|
1661
1737
|
}
|
|
1662
1738
|
catch (error) {
|
|
1663
1739
|
this.logger.error('[TerminalCore] Write failed', { error });
|
|
@@ -1732,6 +1808,7 @@ export class TerminalCore {
|
|
|
1732
1808
|
return false;
|
|
1733
1809
|
}
|
|
1734
1810
|
this.startHistoryReplay();
|
|
1811
|
+
this.needsFullRenderOnNextWrite = true;
|
|
1735
1812
|
return new Promise(resolve => {
|
|
1736
1813
|
this.write(snapshot.data, () => {
|
|
1737
1814
|
this.endHistoryReplay();
|
|
@@ -1974,6 +2051,7 @@ export class TerminalCore {
|
|
|
1974
2051
|
terminal.input(text, true);
|
|
1975
2052
|
return;
|
|
1976
2053
|
}
|
|
2054
|
+
getPerfProbe()?.onTerminalInput?.(text.length);
|
|
1977
2055
|
this.eventHandlers.onData?.(text);
|
|
1978
2056
|
},
|
|
1979
2057
|
};
|
|
@@ -2498,7 +2576,7 @@ export class TerminalCore {
|
|
|
2498
2576
|
forceResize() {
|
|
2499
2577
|
this.flushPendingPresentationScale();
|
|
2500
2578
|
this.performResize('force');
|
|
2501
|
-
this.
|
|
2579
|
+
this.requestDemandRender(true);
|
|
2502
2580
|
}
|
|
2503
2581
|
setFixedDimensions(dimensions) {
|
|
2504
2582
|
const next = normalizeTerminalDimensions(dimensions);
|
|
@@ -2726,6 +2804,7 @@ export class TerminalCore {
|
|
|
2726
2804
|
fitOnFocus: Boolean(raw.fitOnFocus),
|
|
2727
2805
|
emitResizeOnFocus: Boolean(raw.emitResizeOnFocus),
|
|
2728
2806
|
notifyResizeOnlyWhenFocused: Boolean(raw.notifyResizeOnlyWhenFocused),
|
|
2807
|
+
reportHostDimensionsWithFixedGrid: Boolean(raw.reportHostDimensionsWithFixedGrid),
|
|
2729
2808
|
};
|
|
2730
2809
|
}
|
|
2731
2810
|
static normalizeClipboardConfig(value) {
|
|
@@ -2868,7 +2947,12 @@ export class TerminalCore {
|
|
|
2868
2947
|
if (!host) {
|
|
2869
2948
|
return;
|
|
2870
2949
|
}
|
|
2871
|
-
|
|
2950
|
+
const width = host.clientWidth;
|
|
2951
|
+
const height = host.clientHeight;
|
|
2952
|
+
if (width <= 0 || height <= 0) {
|
|
2953
|
+
return;
|
|
2954
|
+
}
|
|
2955
|
+
this.fabricView?.renderer.resize(width, height);
|
|
2872
2956
|
this.syncGhosttyInputGeometryToFabric();
|
|
2873
2957
|
}
|
|
2874
2958
|
isFabricRendererActive() {
|
|
@@ -2926,7 +3010,9 @@ export class TerminalCore {
|
|
|
2926
3010
|
terminalAny.cursorMoveEmitter?.fire?.();
|
|
2927
3011
|
}
|
|
2928
3012
|
this.syncImeInputAnchor();
|
|
2929
|
-
|
|
3013
|
+
const durationMs = performance.now() - startedAt;
|
|
3014
|
+
getPerfProbe()?.onTerminalRender?.(durationMs);
|
|
3015
|
+
this.eventHandlers.onRender?.(durationMs);
|
|
2930
3016
|
}
|
|
2931
3017
|
catch (error) {
|
|
2932
3018
|
this.logger.debug('[TerminalCore] Force render failed', { error });
|