From 2c57b3219bfb70d669647f69da10afcf394dec84 Mon Sep 17 00:00:00 2001 From: Anthony Kim Date: Wed, 22 Oct 2025 09:47:33 -0700 Subject: [PATCH 1/4] Only show char codes for parsing data on trace --- src/common/InputHandler.ts | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/common/InputHandler.ts b/src/common/InputHandler.ts index 0e151173..9608af71 100644 --- a/src/common/InputHandler.ts +++ b/src/common/InputHandler.ts @@ -444,12 +444,11 @@ export class InputHandler extends Disposable implements IInputHandler { } // Log debug data, the log level gate is to prevent extra work in this hot path - if (this._logService.logLevel <= LogLevelEnum.DEBUG) { - this._logService.debug(`parsing data${typeof data === 'string' ? ` "${data}"` : ` "${Array.prototype.map.call(data, e => String.fromCharCode(e)).join('')}"`}`, typeof data === 'string' - ? data.split('').map(e => e.charCodeAt(0)) - : data - ); - } + this._logService.debug(`parsing data ${typeof data === 'string' ? ` "${data}"` : ` "${Array.prototype.map.call(data, e => String.fromCharCode(e)).join('')}"`}`); + this._logService.trace(`parsing data (codes)`, () => typeof data === 'string' + ? data.split('').map(e => e.charCodeAt(0)) + : Array.from(data) + ); // resize input buffer if needed if (this._parseBuffer.length < data.length) { @@ -606,7 +605,7 @@ export class InputHandler extends Disposable implements IInputHandler { // since an empty cell is only set by fullwidth chars bufferRow.addCodepointToCell(this._activeBuffer.x - offset, code, chWidth); - for (let delta = chWidth - oldWidth; --delta >= 0; ) { + for (let delta = chWidth - oldWidth; --delta >= 0;) { bufferRow.setCellFromCodepoint(this._activeBuffer.x++, 0, 0, curAttr); } continue; @@ -1622,7 +1621,7 @@ export class InputHandler extends Disposable implements IInputHandler { const text = bufferRow.getString(x); const data = new Uint32Array(text.length * length); let idata = 0; - for (let itext = 0; itext < text.length; ) { + for (let itext = 0; itext < text.length;) { const ch = text.codePointAt(itext) || 0; data[idata++] = ch; itext += ch > 0xffff ? 2 : 1; From c3bb36bad92d4148df5febc4a028b5516457f6a2 Mon Sep 17 00:00:00 2001 From: Anthony Kim Date: Wed, 22 Oct 2025 16:11:22 -0700 Subject: [PATCH 2/4] if trace, debug each AND remove array.from --- src/common/InputHandler.ts | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/common/InputHandler.ts b/src/common/InputHandler.ts index 9608af71..e935d918 100644 --- a/src/common/InputHandler.ts +++ b/src/common/InputHandler.ts @@ -444,11 +444,15 @@ export class InputHandler extends Disposable implements IInputHandler { } // Log debug data, the log level gate is to prevent extra work in this hot path - this._logService.debug(`parsing data ${typeof data === 'string' ? ` "${data}"` : ` "${Array.prototype.map.call(data, e => String.fromCharCode(e)).join('')}"`}`); - this._logService.trace(`parsing data (codes)`, () => typeof data === 'string' - ? data.split('').map(e => e.charCodeAt(0)) - : Array.from(data) - ); + if (this._logService.logLevel === LogLevelEnum.DEBUG) { + this._logService.debug(`parsing data ${typeof data === 'string' ? ` "${data}"` : ` "${Array.prototype.map.call(data, e => String.fromCharCode(e)).join('')}"`}`); + } + if (this._logService.logLevel === LogLevelEnum.TRACE) { + this._logService.trace(`parsing data (codes)`, () => typeof data === 'string' + ? data.split('').map(e => e.charCodeAt(0)) + : data + ); + } // resize input buffer if needed if (this._parseBuffer.length < data.length) { From 09e26980d30fb9b4c51dff0c6acc72c3cef8f027 Mon Sep 17 00:00:00 2001 From: Anthony Kim Date: Wed, 22 Oct 2025 16:23:35 -0700 Subject: [PATCH 3/4] I dont think we need () => in front of typeof data === 'string' --- src/common/InputHandler.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/common/InputHandler.ts b/src/common/InputHandler.ts index e935d918..b0f2b5fe 100644 --- a/src/common/InputHandler.ts +++ b/src/common/InputHandler.ts @@ -448,7 +448,7 @@ export class InputHandler extends Disposable implements IInputHandler { this._logService.debug(`parsing data ${typeof data === 'string' ? ` "${data}"` : ` "${Array.prototype.map.call(data, e => String.fromCharCode(e)).join('')}"`}`); } if (this._logService.logLevel === LogLevelEnum.TRACE) { - this._logService.trace(`parsing data (codes)`, () => typeof data === 'string' + this._logService.trace(`parsing data (codes)`, typeof data === 'string' ? data.split('').map(e => e.charCodeAt(0)) : data ); From 59241e467c456699992991170c04c0c40173daf3 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Wed, 22 Oct 2025 19:02:14 -0700 Subject: [PATCH 4/4] Update src/common/InputHandler.ts --- src/common/InputHandler.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/common/InputHandler.ts b/src/common/InputHandler.ts index b0f2b5fe..ca80a789 100644 --- a/src/common/InputHandler.ts +++ b/src/common/InputHandler.ts @@ -444,7 +444,7 @@ export class InputHandler extends Disposable implements IInputHandler { } // Log debug data, the log level gate is to prevent extra work in this hot path - if (this._logService.logLevel === LogLevelEnum.DEBUG) { + if (this._logService.logLevel <= LogLevelEnum.DEBUG) { this._logService.debug(`parsing data ${typeof data === 'string' ? ` "${data}"` : ` "${Array.prototype.map.call(data, e => String.fromCharCode(e)).join('')}"`}`); } if (this._logService.logLevel === LogLevelEnum.TRACE) {