From 1dce76dbbb02ee562ec7517b513b00cd3242a28e Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Thu, 25 Jan 2018 12:17:56 -0800 Subject: [PATCH] Add curly to tslint, fix errors Fixes #1248 --- src/CharWidth.ts | 34 ++++++++++++++++++++++------------ src/InputHandler.ts | 3 ++- src/Parser.ts | 3 ++- src/SelectionManager.ts | 3 ++- src/Terminal.ts | 14 ++++++++------ tslint.json | 4 ++++ 6 files changed, 40 insertions(+), 21 deletions(-) diff --git a/src/CharWidth.ts b/src/CharWidth.ts index d296b435..512ed5f0 100644 --- a/src/CharWidth.ts +++ b/src/CharWidth.ts @@ -63,28 +63,33 @@ export const wcwidth = (function(opts: {nul: number, control: number}): (ucs: nu let min = 0; let max = data.length - 1; let mid; - if (ucs < data[0][0] || ucs > data[max][1]) + if (ucs < data[0][0] || ucs > data[max][1]) { return false; + } while (max >= min) { mid = (min + max) >> 1; - if (ucs > data[mid][1]) + if (ucs > data[mid][1]) { min = mid + 1; - else if (ucs < data[mid][0]) + } else if (ucs < data[mid][0]) { max = mid - 1; - else + } else { return true; + } } return false; } function wcwidthBMP(ucs: number): number { // test for 8-bit control characters - if (ucs === 0) + if (ucs === 0) { return opts.nul; - if (ucs < 32 || (ucs >= 0x7f && ucs < 0xa0)) + } + if (ucs < 32 || (ucs >= 0x7f && ucs < 0xa0)) { return opts.control; + } // binary search in table of non-spacing characters - if (bisearch(ucs, COMBINING_BMP)) + if (bisearch(ucs, COMBINING_BMP)) { return 0; + } // if we arrive here, ucs is not a combining or C0/C1 control character if (isWideBMP(ucs)) { return 2; @@ -106,8 +111,9 @@ export const wcwidth = (function(opts: {nul: number, control: number}): (ucs: nu (ucs >= 0xffe0 && ucs <= 0xffe6))); } function wcwidthHigh(ucs: number): 0 | 1 | 2 { - if (bisearch(ucs, COMBINING_HIGH)) + if (bisearch(ucs, COMBINING_HIGH)) { return 0; + } if ((ucs >= 0x20000 && ucs <= 0x2fffd) || (ucs >= 0x30000 && ucs <= 0x3fffd)) { return 2; } @@ -128,8 +134,9 @@ export const wcwidth = (function(opts: {nul: number, control: number}): (ucs: nu for (let i = 0; i < CONTAINERSIZE; ++i) { let num = 0; let pos = CODEPOINTS_PER_ITEM; - while (pos--) + while (pos--) { num = (num << 2) | wcwidthBMP(CODEPOINTS_PER_ITEM * i + pos); + } table[i] = num; } return table; @@ -148,13 +155,16 @@ export const wcwidth = (function(opts: {nul: number, control: number}): (ucs: nu // ==> n = n & 3 e.g. 000000000000000000000000000000XX return function (num: number): number { num = num | 0; // get asm.js like optimization under V8 - if (num < 32) + if (num < 32) { return control | 0; - if (num < 127) + } + if (num < 127) { return 1; + } let t = table || init_table(); - if (num < 65536) + if (num < 65536) { return t[num >> 4] >> ((num & 15) << 1) & 3; + } // do a full search for high codepoints return wcwidthHigh(num); }; diff --git a/src/InputHandler.ts b/src/InputHandler.ts index f71117f8..9cdaddaa 100644 --- a/src/InputHandler.ts +++ b/src/InputHandler.ts @@ -69,8 +69,9 @@ export class InputHandler implements IInputHandler { (this._terminal.buffer.lines.get(this._terminal.buffer.y)).isWrapped = true; } } else { - if (chWidth === 2) // FIXME: check for xterm behavior + if (chWidth === 2) { // FIXME: check for xterm behavior return; + } } } row = this._terminal.buffer.y + this._terminal.buffer.ybase; diff --git a/src/Parser.ts b/src/Parser.ts index 3ac03e4f..03b4a39e 100644 --- a/src/Parser.ts +++ b/src/Parser.ts @@ -224,8 +224,9 @@ export class Parser { ch += data.charAt(this._position + 1); } // surrogate low - already handled above - if (0xDC00 <= code && code <= 0xDFFF) + if (0xDC00 <= code && code <= 0xDFFF) { continue; + } switch (this._state) { case ParserState.NORMAL: diff --git a/src/SelectionManager.ts b/src/SelectionManager.ts index 10612c5c..383427b9 100644 --- a/src/SelectionManager.ts +++ b/src/SelectionManager.ts @@ -538,8 +538,9 @@ export class SelectionManager extends EventEmitter implements ISelectionManager private _onMouseUp(event: MouseEvent): void { this._removeMouseDownListeners(); - if (this.hasSelection) + if (this.hasSelection) { this._terminal.emit('selection'); + } } private _onBufferActivate(e: {activeBuffer: IBuffer, inactiveBuffer: IBuffer}): void { diff --git a/src/Terminal.ts b/src/Terminal.ts index 5536cf03..a894f8c0 100644 --- a/src/Terminal.ts +++ b/src/Terminal.ts @@ -1580,21 +1580,23 @@ export class Terminal extends EventEmitter implements ITerminal, IInputHandlingT break; case 36: // home - if (modifiers) + if (modifiers) { result.key = C0.ESC + '[1;' + (modifiers + 1) + 'H'; - else if (this.applicationCursor) + } else if (this.applicationCursor) { result.key = C0.ESC + 'OH'; - else + } else { result.key = C0.ESC + '[H'; + } break; case 35: // end - if (modifiers) + if (modifiers) { result.key = C0.ESC + '[1;' + (modifiers + 1) + 'F'; - else if (this.applicationCursor) + } else if (this.applicationCursor) { result.key = C0.ESC + 'OF'; - else + } else { result.key = C0.ESC + '[F'; + } break; case 33: // page up diff --git a/tslint.json b/tslint.json index f6ad759a..37ede7fe 100644 --- a/tslint.json +++ b/tslint.json @@ -9,6 +9,10 @@ true, "check-space" ], + "curly": [ + true, + "ignore-same-line" + ], "indent": [ true, "spaces"