From 7447a8d08d9531b39add8bc86ef8dbe554dcef6d Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Sun, 9 Sep 2018 07:20:13 -0700 Subject: [PATCH] Rename setting to experimentalBufferLineImpl, expose in d.ts --- demo/client.ts | 2 +- src/Buffer.ts | 2 +- src/Terminal.ts | 4 ++-- src/Types.ts | 1 - typings/xterm.d.ts | 11 +++++++++++ 5 files changed, 15 insertions(+), 5 deletions(-) diff --git a/demo/client.ts b/demo/client.ts index 22095997..1765bdb3 100644 --- a/demo/client.ts +++ b/demo/client.ts @@ -209,7 +209,7 @@ function initOptions(term: TerminalType): void { fontWeight: ['normal', 'bold', '100', '200', '300', '400', '500', '600', '700', '800', '900'], fontWeightBold: ['normal', 'bold', '100', '200', '300', '400', '500', '600', '700', '800', '900'], rendererType: ['dom', 'canvas'], - bufferLineConstructor: ['JsArray', 'TypedArray'] + experimentalBufferLineImpl: ['JsArray', 'TypedArray'] }; const options = Object.keys((term)._core.options); const booleanOptions = []; diff --git a/src/Buffer.ts b/src/Buffer.ts index ee982564..d24b8b3b 100644 --- a/src/Buffer.ts +++ b/src/Buffer.ts @@ -126,7 +126,7 @@ export class Buffer implements IBuffer { * Clears the buffer to it's initial state, discarding all previous data. */ public clear(): void { - this.setBufferLineFactory(this._terminal.options.bufferLineConstructor); + this.setBufferLineFactory(this._terminal.options.experimentalBufferLineConstructor); this.ydisp = 0; this.ybase = 0; this.y = 0; diff --git a/src/Terminal.ts b/src/Terminal.ts index 2d935b57..c995af62 100644 --- a/src/Terminal.ts +++ b/src/Terminal.ts @@ -106,7 +106,7 @@ const DEFAULT_OPTIONS: ITerminalOptions = { theme: null, rightClickSelectsWord: Browser.isMac, rendererType: 'canvas', - bufferLineConstructor: 'JsArray' + experimentalBufferLineImpl: 'JsArray' }; export class Terminal extends EventEmitter implements ITerminal, IDisposable, IInputHandlingTerminal { @@ -493,7 +493,7 @@ export class Terminal extends EventEmitter implements ITerminal, IDisposable, II } break; case 'tabStopWidth': this.buffers.setupTabStops(); break; - case 'bufferLineConstructor': + case 'experimentalBufferLineImpl': this.buffers.normal.setBufferLineFactory(value); this.buffers.alt.setBufferLineFactory(value); break; diff --git a/src/Types.ts b/src/Types.ts index cdac9156..a64c2c45 100644 --- a/src/Types.ts +++ b/src/Types.ts @@ -263,7 +263,6 @@ export interface ITerminalOptions extends IPublicTerminalOptions { screenKeys?: boolean; termName?: string; useFlowControl?: boolean; - bufferLineConstructor?: string; } export interface IBuffer { diff --git a/typings/xterm.d.ts b/typings/xterm.d.ts index 80b41db5..33546206 100644 --- a/typings/xterm.d.ts +++ b/typings/xterm.d.ts @@ -99,6 +99,17 @@ declare module 'xterm' { */ experimentalCharAtlas?: 'none' | 'static' | 'dynamic'; + /** + * (EXPERIMENTAL) Defines which implementation to use for buffer lines. + * + * - 'JsArray': The default/stable implementation. + * - 'TypedArray': The new experimental implementation based on TypedArrays that is expected to + * significantly boost performance and memory consumption. Use at your own risk. + * + * This option will be removed in the future. + */ + experimentalBufferLineImpl?: 'JsArray' | 'TypedArray'; + /** * The font size used to render text. */