From 46b0857ef6c7d85420160ca8b19cef63f7336896 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Mon, 4 Sep 2017 14:13:41 -0700 Subject: [PATCH] Resolve TODOs --- src/Linkifier.ts | 7 +++++-- src/renderer/BaseRenderLayer.ts | 3 --- src/renderer/Renderer.ts | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Linkifier.ts b/src/Linkifier.ts index d3150b4f..e04ad767 100644 --- a/src/Linkifier.ts +++ b/src/Linkifier.ts @@ -77,7 +77,6 @@ export class Linkifier { // Clear out any existing links this._mouseZoneManager.clearAll(); - // TODO: Cancel any validation callbacks if (this._rowsTimeoutId) { clearTimeout(this._rowsTimeoutId); @@ -91,6 +90,7 @@ export class Linkifier { * @param end The row to end at. */ private _linkifyRows(start: number, end: number): void { + this._rowsTimeoutId = null; for (let i = start; i <= end; i++) { this._linkifyRow(i); } @@ -220,8 +220,11 @@ export class Linkifier { // Ensure the link is valid before registering if (matcher.validationCallback) { matcher.validationCallback(text, isValid => { + // Discard link if the line has already changed + if (this._rowsTimeoutId) { + return; + } if (isValid) { - // TODO: Discard link if the line has already changed? this._addLink(offset + index, rowIndex, uri, matcher); } }); diff --git a/src/renderer/BaseRenderLayer.ts b/src/renderer/BaseRenderLayer.ts index 462c4eca..08a229ed 100644 --- a/src/renderer/BaseRenderLayer.ts +++ b/src/renderer/BaseRenderLayer.ts @@ -14,8 +14,6 @@ export abstract class BaseRenderLayer implements IRenderLayer { private scaledLineHeight: number; private scaledLineDrawY: number; - // TODO: This should be shared between terminals, but not for static as some - // terminals may have different styles private _charAtlas: HTMLCanvasElement | ImageBitmap; constructor( @@ -32,7 +30,6 @@ export abstract class BaseRenderLayer implements IRenderLayer { container.appendChild(this._canvas); } - // TODO: Should this do anything? public onOptionsChanged(terminal: ITerminal): void {} public onBlur(terminal: ITerminal): void {} public onFocus(terminal: ITerminal): void {} diff --git a/src/renderer/Renderer.ts b/src/renderer/Renderer.ts index 66fa6a15..a6d679a2 100644 --- a/src/renderer/Renderer.ts +++ b/src/renderer/Renderer.ts @@ -33,13 +33,13 @@ export class Renderer implements IRenderer { public setTheme(theme: ITheme): IColorSet { this._colorManager.setTheme(theme); + // Clear layers and force a full render this._renderLayers.forEach(l => { l.onThemeChanged(this._terminal, this._colorManager.colors); l.reset(this._terminal); }); - // TODO: This is currently done for every single terminal, but it's static so it's wasting time this._terminal.refresh(0, this._terminal.rows - 1); return this._colorManager.colors;