mirror of
https://github.com/wavetermdev/xterm.js.git
synced 2026-08-05 13:43:48 -07:00
Merge pull request #1477 from lgeiger/let-const
Prefer const vs let for variables that are only declared once
This commit is contained in:
+1
-1
@@ -161,7 +161,7 @@ export const wcwidth = (function(opts: {nul: number, control: number}): (ucs: nu
|
||||
if (num < 127) {
|
||||
return 1;
|
||||
}
|
||||
let t = table || init_table();
|
||||
const t = table || init_table();
|
||||
if (num < 65536) {
|
||||
return t[num >> 4] >> ((num & 15) << 1) & 3;
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ import * as chai from 'chai';
|
||||
|
||||
function r(a: number, b: number): string[] {
|
||||
let c = b - a;
|
||||
let arr = new Array(c);
|
||||
const arr = new Array(c);
|
||||
while (c--) {
|
||||
arr[c] = String.fromCharCode(--b);
|
||||
}
|
||||
@@ -42,7 +42,7 @@ class TestEscapeSequenceParser extends EscapeSequenceParser {
|
||||
}
|
||||
|
||||
// test object to collect parser actions and compare them with expected values
|
||||
let testTerminal: any = {
|
||||
const testTerminal: any = {
|
||||
calls: [],
|
||||
clear: function (): void {
|
||||
this.calls = [];
|
||||
@@ -89,7 +89,7 @@ class DcsTest implements IDcsHandler {
|
||||
}
|
||||
}
|
||||
|
||||
let states: number[] = [
|
||||
const states: number[] = [
|
||||
ParserState.GROUND,
|
||||
ParserState.ESCAPE,
|
||||
ParserState.ESCAPE_INTERMEDIATE,
|
||||
@@ -108,7 +108,7 @@ let states: number[] = [
|
||||
let state: any;
|
||||
|
||||
// parser with Uint8Array based transition table
|
||||
let parserUint = new TestEscapeSequenceParser(VT500_TRANSITION_TABLE);
|
||||
const parserUint = new TestEscapeSequenceParser(VT500_TRANSITION_TABLE);
|
||||
parserUint.setPrintHandler(testTerminal.print.bind(testTerminal));
|
||||
parserUint.setCsiHandlerFallback((collect: string, params: number[], flag: number) => {
|
||||
testTerminal.actionCSI(collect, params, String.fromCharCode(flag));
|
||||
@@ -126,14 +126,14 @@ parserUint.setOscHandlerFallback((identifier: number, data: string) => {
|
||||
parserUint.setDcsHandlerFallback(new DcsTest());
|
||||
|
||||
// array based transition table
|
||||
let VT500_TRANSITION_TABLE_ARRAY = new TransitionTable(VT500_TRANSITION_TABLE.table.length);
|
||||
const VT500_TRANSITION_TABLE_ARRAY = new TransitionTable(VT500_TRANSITION_TABLE.table.length);
|
||||
VT500_TRANSITION_TABLE_ARRAY.table = new Array(VT500_TRANSITION_TABLE.table.length);
|
||||
for (let i = 0; i < VT500_TRANSITION_TABLE.table.length; ++i) {
|
||||
VT500_TRANSITION_TABLE_ARRAY.table[i] = VT500_TRANSITION_TABLE.table[i];
|
||||
}
|
||||
|
||||
// parser with array based transition table
|
||||
let parserArray = new TestEscapeSequenceParser(VT500_TRANSITION_TABLE_ARRAY);
|
||||
const parserArray = new TestEscapeSequenceParser(VT500_TRANSITION_TABLE_ARRAY);
|
||||
parserArray.setPrintHandler(testTerminal.print.bind(testTerminal));
|
||||
parserArray.setCsiHandlerFallback((collect: string, params: number[], flag: number) => {
|
||||
testTerminal.actionCSI(collect, params, String.fromCharCode(flag));
|
||||
@@ -172,7 +172,7 @@ describe('EscapeSequenceParser', function (): void {
|
||||
chai.expect(p.transitions).equal(VT500_TRANSITION_TABLE);
|
||||
p = new EscapeSequenceParser(VT500_TRANSITION_TABLE);
|
||||
chai.expect(p.transitions).equal(VT500_TRANSITION_TABLE);
|
||||
let tansitions: TransitionTable = new TransitionTable(10);
|
||||
const tansitions: TransitionTable = new TransitionTable(10);
|
||||
p = new EscapeSequenceParser(tansitions);
|
||||
chai.expect(p.transitions).equal(tansitions);
|
||||
});
|
||||
@@ -205,7 +205,7 @@ describe('EscapeSequenceParser', function (): void {
|
||||
it('state GROUND execute action', function (): void {
|
||||
parser.reset();
|
||||
testTerminal.clear();
|
||||
let exes = r(0x00, 0x18);
|
||||
const exes = r(0x00, 0x18);
|
||||
exes.concat(['\x19']);
|
||||
exes.concat(r(0x1c, 0x20));
|
||||
for (let i = 0; i < exes.length; ++i) {
|
||||
@@ -220,7 +220,7 @@ describe('EscapeSequenceParser', function (): void {
|
||||
it('state GROUND print action', function (): void {
|
||||
parser.reset();
|
||||
testTerminal.clear();
|
||||
let printables = r(0x20, 0x7f); // NOTE: DEL excluded
|
||||
const printables = r(0x20, 0x7f); // NOTE: DEL excluded
|
||||
for (let i = 0; i < printables.length; ++i) {
|
||||
parser.currentState = ParserState.GROUND;
|
||||
parser.parse(printables[i]);
|
||||
@@ -231,13 +231,13 @@ describe('EscapeSequenceParser', function (): void {
|
||||
}
|
||||
});
|
||||
it('trans ANYWHERE --> GROUND with actions', function (): void {
|
||||
let exes = [
|
||||
const exes = [
|
||||
'\x18', '\x1a',
|
||||
'\x80', '\x81', '\x82', '\x83', '\x84', '\x85', '\x86', '\x87', '\x88',
|
||||
'\x89', '\x8a', '\x8b', '\x8c', '\x8d', '\x8e', '\x8f',
|
||||
'\x91', '\x92', '\x93', '\x94', '\x95', '\x96', '\x97', '\x99', '\x9a'
|
||||
];
|
||||
let exceptions = {
|
||||
const exceptions = {
|
||||
8: { '\x18': [], '\x1a': [] } // simply abort osc state
|
||||
};
|
||||
parser.reset();
|
||||
@@ -276,7 +276,7 @@ describe('EscapeSequenceParser', function (): void {
|
||||
it('state ESCAPE execute rules', function (): void {
|
||||
parser.reset();
|
||||
testTerminal.clear();
|
||||
let exes = r(0x00, 0x18);
|
||||
const exes = r(0x00, 0x18);
|
||||
exes.concat(['\x19']);
|
||||
exes.concat(r(0x1c, 0x20));
|
||||
for (let i = 0; i < exes.length; ++i) {
|
||||
@@ -301,7 +301,7 @@ describe('EscapeSequenceParser', function (): void {
|
||||
it('trans ESCAPE --> GROUND with ecs_dispatch action', function (): void {
|
||||
parser.reset();
|
||||
testTerminal.clear();
|
||||
let dispatches = r(0x30, 0x50);
|
||||
const dispatches = r(0x30, 0x50);
|
||||
dispatches.concat(r(0x51, 0x58));
|
||||
dispatches.concat(['\x59', '\x5a', '\x5c']);
|
||||
dispatches.concat(r(0x60, 0x7f));
|
||||
@@ -316,7 +316,7 @@ describe('EscapeSequenceParser', function (): void {
|
||||
});
|
||||
it('trans ESCAPE --> ESCAPE_INTERMEDIATE with collect action', function (): void {
|
||||
parser.reset();
|
||||
let collect = r(0x20, 0x30);
|
||||
const collect = r(0x20, 0x30);
|
||||
for (let i = 0; i < collect.length; ++i) {
|
||||
parser.currentState = ParserState.ESCAPE;
|
||||
parser.parse(collect[i]);
|
||||
@@ -328,7 +328,7 @@ describe('EscapeSequenceParser', function (): void {
|
||||
it('state ESCAPE_INTERMEDIATE execute rules', function (): void {
|
||||
parser.reset();
|
||||
testTerminal.clear();
|
||||
let exes = r(0x00, 0x18);
|
||||
const exes = r(0x00, 0x18);
|
||||
exes.concat(['\x19']);
|
||||
exes.concat(r(0x1c, 0x20));
|
||||
for (let i = 0; i < exes.length; ++i) {
|
||||
@@ -352,7 +352,7 @@ describe('EscapeSequenceParser', function (): void {
|
||||
});
|
||||
it('state ESCAPE_INTERMEDIATE collect action', function (): void {
|
||||
parser.reset();
|
||||
let collect = r(0x20, 0x30);
|
||||
const collect = r(0x20, 0x30);
|
||||
for (let i = 0; i < collect.length; ++i) {
|
||||
parser.currentState = ParserState.ESCAPE_INTERMEDIATE;
|
||||
parser.parse(collect[i]);
|
||||
@@ -364,7 +364,7 @@ describe('EscapeSequenceParser', function (): void {
|
||||
it('trans ESCAPE_INTERMEDIATE --> GROUND with esc_dispatch action', function (): void {
|
||||
parser.reset();
|
||||
testTerminal.clear();
|
||||
let collect = r(0x30, 0x7f);
|
||||
const collect = r(0x30, 0x7f);
|
||||
for (let i = 0; i < collect.length; ++i) {
|
||||
parser.currentState = ParserState.ESCAPE_INTERMEDIATE;
|
||||
parser.parse(collect[i]);
|
||||
@@ -404,7 +404,7 @@ describe('EscapeSequenceParser', function (): void {
|
||||
it('state CSI_ENTRY execute rules', function (): void {
|
||||
parser.reset();
|
||||
testTerminal.clear();
|
||||
let exes = r(0x00, 0x18);
|
||||
const exes = r(0x00, 0x18);
|
||||
exes.concat(['\x19']);
|
||||
exes.concat(r(0x1c, 0x20));
|
||||
for (let i = 0; i < exes.length; ++i) {
|
||||
@@ -428,7 +428,7 @@ describe('EscapeSequenceParser', function (): void {
|
||||
});
|
||||
it('trans CSI_ENTRY --> GROUND with csi_dispatch action', function (): void {
|
||||
parser.reset();
|
||||
let dispatches = r(0x40, 0x7f);
|
||||
const dispatches = r(0x40, 0x7f);
|
||||
for (let i = 0; i < dispatches.length; ++i) {
|
||||
parser.currentState = ParserState.CSI_ENTRY;
|
||||
parser.parse(dispatches[i]);
|
||||
@@ -440,8 +440,8 @@ describe('EscapeSequenceParser', function (): void {
|
||||
});
|
||||
it('trans CSI_ENTRY --> CSI_PARAM with param/collect actions', function (): void {
|
||||
parser.reset();
|
||||
let params = ['\x30', '\x31', '\x32', '\x33', '\x34', '\x35', '\x36', '\x37', '\x38', '\x39'];
|
||||
let collect = ['\x3c', '\x3d', '\x3e', '\x3f'];
|
||||
const params = ['\x30', '\x31', '\x32', '\x33', '\x34', '\x35', '\x36', '\x37', '\x38', '\x39'];
|
||||
const collect = ['\x3c', '\x3d', '\x3e', '\x3f'];
|
||||
for (let i = 0; i < params.length; ++i) {
|
||||
parser.currentState = ParserState.CSI_ENTRY;
|
||||
parser.parse(params[i]);
|
||||
@@ -465,7 +465,7 @@ describe('EscapeSequenceParser', function (): void {
|
||||
it('state CSI_PARAM execute rules', function (): void {
|
||||
parser.reset();
|
||||
testTerminal.clear();
|
||||
let exes = r(0x00, 0x18);
|
||||
const exes = r(0x00, 0x18);
|
||||
exes.concat(['\x19']);
|
||||
exes.concat(r(0x1c, 0x20));
|
||||
for (let i = 0; i < exes.length; ++i) {
|
||||
@@ -479,7 +479,7 @@ describe('EscapeSequenceParser', function (): void {
|
||||
});
|
||||
it('state CSI_PARAM param action', function (): void {
|
||||
parser.reset();
|
||||
let params = ['\x30', '\x31', '\x32', '\x33', '\x34', '\x35', '\x36', '\x37', '\x38', '\x39'];
|
||||
const params = ['\x30', '\x31', '\x32', '\x33', '\x34', '\x35', '\x36', '\x37', '\x38', '\x39'];
|
||||
for (let i = 0; i < params.length; ++i) {
|
||||
parser.currentState = ParserState.CSI_PARAM;
|
||||
parser.parse(params[i]);
|
||||
@@ -505,7 +505,7 @@ describe('EscapeSequenceParser', function (): void {
|
||||
});
|
||||
it('trans CSI_PARAM --> GROUND with csi_dispatch action', function (): void {
|
||||
parser.reset();
|
||||
let dispatches = r(0x40, 0x7f);
|
||||
const dispatches = r(0x40, 0x7f);
|
||||
for (let i = 0; i < dispatches.length; ++i) {
|
||||
parser.currentState = ParserState.CSI_PARAM;
|
||||
parser.params = [0, 1];
|
||||
@@ -518,7 +518,7 @@ describe('EscapeSequenceParser', function (): void {
|
||||
});
|
||||
it('trans CSI_ENTRY --> CSI_INTERMEDIATE with collect action', function (): void {
|
||||
parser.reset();
|
||||
let collect = r(0x20, 0x30);
|
||||
const collect = r(0x20, 0x30);
|
||||
for (let i = 0; i < collect.length; ++i) {
|
||||
parser.currentState = ParserState.CSI_ENTRY;
|
||||
parser.parse(collect[i]);
|
||||
@@ -529,7 +529,7 @@ describe('EscapeSequenceParser', function (): void {
|
||||
});
|
||||
it('trans CSI_PARAM --> CSI_INTERMEDIATE with collect action', function (): void {
|
||||
parser.reset();
|
||||
let collect = r(0x20, 0x30);
|
||||
const collect = r(0x20, 0x30);
|
||||
for (let i = 0; i < collect.length; ++i) {
|
||||
parser.currentState = ParserState.CSI_PARAM;
|
||||
parser.parse(collect[i]);
|
||||
@@ -541,7 +541,7 @@ describe('EscapeSequenceParser', function (): void {
|
||||
it('state CSI_INTERMEDIATE execute rules', function (): void {
|
||||
parser.reset();
|
||||
testTerminal.clear();
|
||||
let exes = r(0x00, 0x18);
|
||||
const exes = r(0x00, 0x18);
|
||||
exes.concat(['\x19']);
|
||||
exes.concat(r(0x1c, 0x20));
|
||||
for (let i = 0; i < exes.length; ++i) {
|
||||
@@ -555,7 +555,7 @@ describe('EscapeSequenceParser', function (): void {
|
||||
});
|
||||
it('state CSI_INTERMEDIATE collect', function (): void {
|
||||
parser.reset();
|
||||
let collect = r(0x20, 0x30);
|
||||
const collect = r(0x20, 0x30);
|
||||
for (let i = 0; i < collect.length; ++i) {
|
||||
parser.currentState = ParserState.CSI_INTERMEDIATE;
|
||||
parser.parse(collect[i]);
|
||||
@@ -576,7 +576,7 @@ describe('EscapeSequenceParser', function (): void {
|
||||
});
|
||||
it('trans CSI_INTERMEDIATE --> GROUND with csi_dispatch action', function (): void {
|
||||
parser.reset();
|
||||
let dispatches = r(0x40, 0x7f);
|
||||
const dispatches = r(0x40, 0x7f);
|
||||
for (let i = 0; i < dispatches.length; ++i) {
|
||||
parser.currentState = ParserState.CSI_INTERMEDIATE;
|
||||
parser.params = [0, 1];
|
||||
@@ -596,7 +596,7 @@ describe('EscapeSequenceParser', function (): void {
|
||||
});
|
||||
it('trans CSI_PARAM --> CSI_IGNORE', function (): void {
|
||||
parser.reset();
|
||||
let chars = ['\x3a', '\x3c', '\x3d', '\x3e', '\x3f'];
|
||||
const chars = ['\x3a', '\x3c', '\x3d', '\x3e', '\x3f'];
|
||||
for (let i = 0; i < chars.length; ++i) {
|
||||
parser.currentState = ParserState.CSI_PARAM;
|
||||
parser.parse('\x3b' + chars[i]);
|
||||
@@ -607,7 +607,7 @@ describe('EscapeSequenceParser', function (): void {
|
||||
});
|
||||
it('trans CSI_INTERMEDIATE --> CSI_IGNORE', function (): void {
|
||||
parser.reset();
|
||||
let chars = r(0x30, 0x40);
|
||||
const chars = r(0x30, 0x40);
|
||||
for (let i = 0; i < chars.length; ++i) {
|
||||
parser.currentState = ParserState.CSI_INTERMEDIATE;
|
||||
parser.parse(chars[i]);
|
||||
@@ -619,7 +619,7 @@ describe('EscapeSequenceParser', function (): void {
|
||||
it('state CSI_IGNORE execute rules', function (): void {
|
||||
parser.reset();
|
||||
testTerminal.clear();
|
||||
let exes = r(0x00, 0x18);
|
||||
const exes = r(0x00, 0x18);
|
||||
exes.concat(['\x19']);
|
||||
exes.concat(r(0x1c, 0x20));
|
||||
for (let i = 0; i < exes.length; ++i) {
|
||||
@@ -634,7 +634,7 @@ describe('EscapeSequenceParser', function (): void {
|
||||
it('state CSI_IGNORE ignore', function (): void {
|
||||
parser.reset();
|
||||
testTerminal.clear();
|
||||
let ignored = r(0x20, 0x40);
|
||||
const ignored = r(0x20, 0x40);
|
||||
ignored.concat(['\x7f']);
|
||||
for (let i = 0; i < ignored.length; ++i) {
|
||||
parser.currentState = ParserState.CSI_IGNORE;
|
||||
@@ -647,7 +647,7 @@ describe('EscapeSequenceParser', function (): void {
|
||||
});
|
||||
it('trans CSI_IGNORE --> GROUND', function (): void {
|
||||
parser.reset();
|
||||
let dispatches = r(0x40, 0x7f);
|
||||
const dispatches = r(0x40, 0x7f);
|
||||
for (let i = 0; i < dispatches.length; ++i) {
|
||||
parser.currentState = ParserState.CSI_IGNORE;
|
||||
parser.params = [0, 1];
|
||||
@@ -680,7 +680,7 @@ describe('EscapeSequenceParser', function (): void {
|
||||
});
|
||||
it('state SOS_PM_APC_STRING ignore rules', function (): void {
|
||||
parser.reset();
|
||||
let ignored = r(0x00, 0x18);
|
||||
const ignored = r(0x00, 0x18);
|
||||
ignored.concat(['\x19']);
|
||||
ignored.concat(r(0x1c, 0x20));
|
||||
ignored.concat(r(0x20, 0x80));
|
||||
@@ -707,7 +707,7 @@ describe('EscapeSequenceParser', function (): void {
|
||||
});
|
||||
it('state OSC_STRING ignore rules', function (): void {
|
||||
parser.reset();
|
||||
let ignored = [
|
||||
const ignored = [
|
||||
'\x00', '\x01', '\x02', '\x03', '\x04', '\x05', '\x06', /*'\x07',*/ '\x08',
|
||||
'\x09', '\x0a', '\x0b', '\x0c', '\x0d', '\x0e', '\x0f', '\x10', '\x11',
|
||||
'\x12', '\x13', '\x14', '\x15', '\x16', '\x17', '\x19', '\x1c', '\x1d', '\x1e', '\x1f'];
|
||||
@@ -721,7 +721,7 @@ describe('EscapeSequenceParser', function (): void {
|
||||
});
|
||||
it('state OSC_STRING put action', function (): void {
|
||||
parser.reset();
|
||||
let puts = r(0x20, 0x80);
|
||||
const puts = r(0x20, 0x80);
|
||||
for (let i = 0; i < puts.length; ++i) {
|
||||
parser.currentState = ParserState.OSC_STRING;
|
||||
parser.parse(puts[i]);
|
||||
@@ -746,7 +746,7 @@ describe('EscapeSequenceParser', function (): void {
|
||||
});
|
||||
it('state DCS_ENTRY ignore rules', function (): void {
|
||||
parser.reset();
|
||||
let ignored = [
|
||||
const ignored = [
|
||||
'\x00', '\x01', '\x02', '\x03', '\x04', '\x05', '\x06', '\x07', '\x08',
|
||||
'\x09', '\x0a', '\x0b', '\x0c', '\x0d', '\x0e', '\x0f', '\x10', '\x11',
|
||||
'\x12', '\x13', '\x14', '\x15', '\x16', '\x17', '\x19', '\x1c', '\x1d', '\x1e', '\x1f', '\x7f'];
|
||||
@@ -759,8 +759,8 @@ describe('EscapeSequenceParser', function (): void {
|
||||
});
|
||||
it('state DCS_ENTRY --> DCS_PARAM with param/collect actions', function (): void {
|
||||
parser.reset();
|
||||
let params = ['\x30', '\x31', '\x32', '\x33', '\x34', '\x35', '\x36', '\x37', '\x38', '\x39'];
|
||||
let collect = ['\x3c', '\x3d', '\x3e', '\x3f'];
|
||||
const params = ['\x30', '\x31', '\x32', '\x33', '\x34', '\x35', '\x36', '\x37', '\x38', '\x39'];
|
||||
const collect = ['\x3c', '\x3d', '\x3e', '\x3f'];
|
||||
for (let i = 0; i < params.length; ++i) {
|
||||
parser.currentState = ParserState.DCS_ENTRY;
|
||||
parser.parse(params[i]);
|
||||
@@ -783,7 +783,7 @@ describe('EscapeSequenceParser', function (): void {
|
||||
});
|
||||
it('state DCS_PARAM ignore rules', function (): void {
|
||||
parser.reset();
|
||||
let ignored = [
|
||||
const ignored = [
|
||||
'\x00', '\x01', '\x02', '\x03', '\x04', '\x05', '\x06', '\x07', '\x08',
|
||||
'\x09', '\x0a', '\x0b', '\x0c', '\x0d', '\x0e', '\x0f', '\x10', '\x11',
|
||||
'\x12', '\x13', '\x14', '\x15', '\x16', '\x17', '\x19', '\x1c', '\x1d', '\x1e', '\x1f', '\x7f'];
|
||||
@@ -796,7 +796,7 @@ describe('EscapeSequenceParser', function (): void {
|
||||
});
|
||||
it('state DCS_PARAM param action', function (): void {
|
||||
parser.reset();
|
||||
let params = ['\x30', '\x31', '\x32', '\x33', '\x34', '\x35', '\x36', '\x37', '\x38', '\x39'];
|
||||
const params = ['\x30', '\x31', '\x32', '\x33', '\x34', '\x35', '\x36', '\x37', '\x38', '\x39'];
|
||||
for (let i = 0; i < params.length; ++i) {
|
||||
parser.currentState = ParserState.DCS_PARAM;
|
||||
parser.parse(params[i]);
|
||||
@@ -819,7 +819,7 @@ describe('EscapeSequenceParser', function (): void {
|
||||
});
|
||||
it('trans DCS_PARAM --> DCS_IGNORE', function (): void {
|
||||
parser.reset();
|
||||
let chars = ['\x3a', '\x3c', '\x3d', '\x3e', '\x3f'];
|
||||
const chars = ['\x3a', '\x3c', '\x3d', '\x3e', '\x3f'];
|
||||
for (let i = 0; i < chars.length; ++i) {
|
||||
parser.currentState = ParserState.DCS_PARAM;
|
||||
parser.parse('\x3b' + chars[i]);
|
||||
@@ -830,7 +830,7 @@ describe('EscapeSequenceParser', function (): void {
|
||||
});
|
||||
it('trans DCS_INTERMEDIATE --> DCS_IGNORE', function (): void {
|
||||
parser.reset();
|
||||
let chars = r(0x30, 0x40);
|
||||
const chars = r(0x30, 0x40);
|
||||
for (let i = 0; i < chars.length; ++i) {
|
||||
parser.currentState = ParserState.DCS_INTERMEDIATE;
|
||||
parser.parse(chars[i]);
|
||||
@@ -840,7 +840,7 @@ describe('EscapeSequenceParser', function (): void {
|
||||
});
|
||||
it('state DCS_IGNORE ignore rules', function (): void {
|
||||
parser.reset();
|
||||
let ignored = [
|
||||
const ignored = [
|
||||
'\x00', '\x01', '\x02', '\x03', '\x04', '\x05', '\x06', '\x07', '\x08',
|
||||
'\x09', '\x0a', '\x0b', '\x0c', '\x0d', '\x0e', '\x0f', '\x10', '\x11',
|
||||
'\x12', '\x13', '\x14', '\x15', '\x16', '\x17', '\x19', '\x1c', '\x1d', '\x1e', '\x1f', '\x7f'];
|
||||
@@ -854,7 +854,7 @@ describe('EscapeSequenceParser', function (): void {
|
||||
});
|
||||
it('trans DCS_ENTRY --> DCS_INTERMEDIATE with collect action', function (): void {
|
||||
parser.reset();
|
||||
let collect = r(0x20, 0x30);
|
||||
const collect = r(0x20, 0x30);
|
||||
for (let i = 0; i < collect.length; ++i) {
|
||||
parser.currentState = ParserState.DCS_ENTRY;
|
||||
parser.parse(collect[i]);
|
||||
@@ -865,7 +865,7 @@ describe('EscapeSequenceParser', function (): void {
|
||||
});
|
||||
it('trans DCS_PARAM --> DCS_INTERMEDIATE with collect action', function (): void {
|
||||
parser.reset();
|
||||
let collect = r(0x20, 0x30);
|
||||
const collect = r(0x20, 0x30);
|
||||
for (let i = 0; i < collect.length; ++i) {
|
||||
parser.currentState = ParserState.DCS_PARAM;
|
||||
parser.parse(collect[i]);
|
||||
@@ -876,7 +876,7 @@ describe('EscapeSequenceParser', function (): void {
|
||||
});
|
||||
it('state DCS_INTERMEDIATE ignore rules', function (): void {
|
||||
parser.reset();
|
||||
let ignored = [
|
||||
const ignored = [
|
||||
'\x00', '\x01', '\x02', '\x03', '\x04', '\x05', '\x06', '\x07', '\x08',
|
||||
'\x09', '\x0a', '\x0b', '\x0c', '\x0d', '\x0e', '\x0f', '\x10', '\x11',
|
||||
'\x12', '\x13', '\x14', '\x15', '\x16', '\x17', '\x19', '\x1c', '\x1d', '\x1e', '\x1f', '\x7f'];
|
||||
@@ -889,7 +889,7 @@ describe('EscapeSequenceParser', function (): void {
|
||||
});
|
||||
it('state DCS_INTERMEDIATE collect action', function (): void {
|
||||
parser.reset();
|
||||
let collect = r(0x20, 0x30);
|
||||
const collect = r(0x20, 0x30);
|
||||
for (let i = 0; i < collect.length; ++i) {
|
||||
parser.currentState = ParserState.DCS_INTERMEDIATE;
|
||||
parser.parse(collect[i]);
|
||||
@@ -900,7 +900,7 @@ describe('EscapeSequenceParser', function (): void {
|
||||
});
|
||||
it('trans DCS_INTERMEDIATE --> DCS_IGNORE', function (): void {
|
||||
parser.reset();
|
||||
let chars = r(0x30, 0x40);
|
||||
const chars = r(0x30, 0x40);
|
||||
for (let i = 0; i < chars.length; ++i) {
|
||||
parser.currentState = ParserState.DCS_INTERMEDIATE;
|
||||
parser.parse('\x20' + chars[i]);
|
||||
@@ -912,7 +912,7 @@ describe('EscapeSequenceParser', function (): void {
|
||||
it('trans DCS_ENTRY --> DCS_PASSTHROUGH with hook', function (): void {
|
||||
parser.reset();
|
||||
testTerminal.clear();
|
||||
let collect = r(0x40, 0x7f);
|
||||
const collect = r(0x40, 0x7f);
|
||||
for (let i = 0; i < collect.length; ++i) {
|
||||
parser.currentState = ParserState.DCS_ENTRY;
|
||||
parser.parse(collect[i]);
|
||||
@@ -925,7 +925,7 @@ describe('EscapeSequenceParser', function (): void {
|
||||
it('trans DCS_PARAM --> DCS_PASSTHROUGH with hook', function (): void {
|
||||
parser.reset();
|
||||
testTerminal.clear();
|
||||
let collect = r(0x40, 0x7f);
|
||||
const collect = r(0x40, 0x7f);
|
||||
for (let i = 0; i < collect.length; ++i) {
|
||||
parser.currentState = ParserState.DCS_PARAM;
|
||||
parser.parse(collect[i]);
|
||||
@@ -938,7 +938,7 @@ describe('EscapeSequenceParser', function (): void {
|
||||
it('trans DCS_INTERMEDIATE --> DCS_PASSTHROUGH with hook', function (): void {
|
||||
parser.reset();
|
||||
testTerminal.clear();
|
||||
let collect = r(0x40, 0x7f);
|
||||
const collect = r(0x40, 0x7f);
|
||||
for (let i = 0; i < collect.length; ++i) {
|
||||
parser.currentState = ParserState.DCS_INTERMEDIATE;
|
||||
parser.parse(collect[i]);
|
||||
@@ -951,7 +951,7 @@ describe('EscapeSequenceParser', function (): void {
|
||||
it('state DCS_PASSTHROUGH put action', function (): void {
|
||||
parser.reset();
|
||||
testTerminal.clear();
|
||||
let puts = r(0x00, 0x18);
|
||||
const puts = r(0x00, 0x18);
|
||||
puts.concat(['\x19']);
|
||||
puts.concat(r(0x1c, 0x20));
|
||||
puts.concat(r(0x20, 0x7f));
|
||||
|
||||
@@ -12,7 +12,7 @@ import { ParserState, ParserAction, IParsingState, IDcsHandler, IEscapeSequenceP
|
||||
*/
|
||||
function r(low: number, high: number): number[] {
|
||||
let c = high - low;
|
||||
let arr = new Array(c);
|
||||
const arr = new Array(c);
|
||||
while (c--) {
|
||||
arr[c] = --high;
|
||||
}
|
||||
@@ -62,8 +62,8 @@ export class TransitionTable {
|
||||
/**
|
||||
* Default definitions for the VT500_TRANSITION_TABLE.
|
||||
*/
|
||||
let PRINTABLES = r(0x20, 0x7f);
|
||||
let EXECUTABLES = r(0x00, 0x18);
|
||||
const PRINTABLES = r(0x20, 0x7f);
|
||||
const EXECUTABLES = r(0x00, 0x18);
|
||||
EXECUTABLES.push(0x19);
|
||||
EXECUTABLES.concat(r(0x1c, 0x20));
|
||||
const DEFAULT_TRANSITION = ParserAction.ERROR << 4 | ParserState.GROUND;
|
||||
@@ -73,9 +73,9 @@ const DEFAULT_TRANSITION = ParserAction.ERROR << 4 | ParserState.GROUND;
|
||||
* Taken from https://vt100.net/emu/dec_ansi_parser.
|
||||
*/
|
||||
export const VT500_TRANSITION_TABLE = (function (): TransitionTable {
|
||||
let table: TransitionTable = new TransitionTable(4095);
|
||||
const table: TransitionTable = new TransitionTable(4095);
|
||||
|
||||
let states: number[] = r(ParserState.GROUND, ParserState.DCS_PASSTHROUGH + 1);
|
||||
const states: number[] = r(ParserState.GROUND, ParserState.DCS_PASSTHROUGH + 1);
|
||||
let state: any;
|
||||
|
||||
// table with default transition [any] --> DEFAULT_TRANSITION
|
||||
@@ -421,7 +421,7 @@ export class EscapeSequenceParser implements IEscapeSequenceParser {
|
||||
}
|
||||
// if we end up here a real error happened
|
||||
if (error) {
|
||||
let inject: IParsingState = this._errorHandler(
|
||||
const inject: IParsingState = this._errorHandler(
|
||||
{
|
||||
position: i,
|
||||
code,
|
||||
@@ -499,15 +499,15 @@ export class EscapeSequenceParser implements IEscapeSequenceParser {
|
||||
if (osc && code !== 0x18 && code !== 0x1a) {
|
||||
// NOTE: OSC subparsing is not part of the original parser
|
||||
// we do basic identifier parsing here to offer a jump table for OSC as well
|
||||
let idx = osc.indexOf(';');
|
||||
const idx = osc.indexOf(';');
|
||||
if (idx === -1) {
|
||||
this._oscHandlerFb(-1, osc); // this is an error (malformed OSC)
|
||||
} else {
|
||||
// Note: NaN is not handled here
|
||||
// either catch it with the fallback handler
|
||||
// or with an explicit NaN OSC handler
|
||||
let identifier = parseInt(osc.substring(0, idx));
|
||||
let content = osc.substring(idx + 1);
|
||||
const identifier = parseInt(osc.substring(0, idx));
|
||||
const content = osc.substring(idx + 1);
|
||||
callback = this._oscHandlers[identifier];
|
||||
if (callback) callback(content);
|
||||
else this._oscHandlerFb(identifier, content);
|
||||
|
||||
+2
-2
@@ -44,7 +44,7 @@ export class EventEmitter implements IEventEmitter, IDisposable {
|
||||
return;
|
||||
}
|
||||
|
||||
let obj = this._events[type];
|
||||
const obj = this._events[type];
|
||||
let i = obj.length;
|
||||
|
||||
while (i--) {
|
||||
@@ -65,7 +65,7 @@ export class EventEmitter implements IEventEmitter, IDisposable {
|
||||
if (!this._events[type]) {
|
||||
return;
|
||||
}
|
||||
let obj = this._events[type];
|
||||
const obj = this._events[type];
|
||||
for (let i = 0; i < obj.length; i++) {
|
||||
obj[i].apply(this, args);
|
||||
}
|
||||
|
||||
@@ -9,10 +9,10 @@ import { MockInputHandlingTerminal } from './utils/TestUtils.test';
|
||||
|
||||
describe('InputHandler', () => {
|
||||
describe('save and restore cursor', () => {
|
||||
let terminal = new MockInputHandlingTerminal();
|
||||
const terminal = new MockInputHandlingTerminal();
|
||||
terminal.buffer.x = 1;
|
||||
terminal.buffer.y = 2;
|
||||
let inputHandler = new InputHandler(terminal);
|
||||
const inputHandler = new InputHandler(terminal);
|
||||
// Save cursor position
|
||||
inputHandler.saveCursor([]);
|
||||
assert.equal(terminal.buffer.x, 1);
|
||||
@@ -27,8 +27,8 @@ describe('InputHandler', () => {
|
||||
});
|
||||
describe('setCursorStyle', () => {
|
||||
it('should call Terminal.setOption with correct params', () => {
|
||||
let terminal = new MockInputHandlingTerminal();
|
||||
let inputHandler = new InputHandler(terminal);
|
||||
const terminal = new MockInputHandlingTerminal();
|
||||
const inputHandler = new InputHandler(terminal);
|
||||
const collect = ' ';
|
||||
|
||||
inputHandler.setCursorStyle([0], collect);
|
||||
@@ -68,10 +68,10 @@ describe('InputHandler', () => {
|
||||
});
|
||||
describe('setMode', () => {
|
||||
it('should toggle Terminal.bracketedPasteMode', () => {
|
||||
let terminal = new MockInputHandlingTerminal();
|
||||
const terminal = new MockInputHandlingTerminal();
|
||||
const collect = '?';
|
||||
terminal.bracketedPasteMode = false;
|
||||
let inputHandler = new InputHandler(terminal);
|
||||
const inputHandler = new InputHandler(terminal);
|
||||
// Set bracketed paste mode
|
||||
inputHandler.setMode([2004], collect);
|
||||
assert.equal(terminal.bracketedPasteMode, true);
|
||||
|
||||
+7
-7
@@ -70,7 +70,7 @@ class DECRQSS implements IDcsHandler {
|
||||
case '"p': // DECSCL
|
||||
return this._terminal.send(`${C0.ESC}P1$r61"p${C0.ESC}\\`);
|
||||
case 'r': // DECSTBM
|
||||
let pt = '' + (this._terminal.buffer.scrollTop + 1) +
|
||||
const pt = '' + (this._terminal.buffer.scrollTop + 1) +
|
||||
';' + (this._terminal.buffer.scrollBottom + 1) + 'r';
|
||||
return this._terminal.send(`${C0.ESC}P1$r${pt}${C0.ESC}\\`);
|
||||
case 'm': // SGR
|
||||
@@ -259,7 +259,7 @@ export class InputHandler implements IInputHandler {
|
||||
this._parser.setEscHandler('~', () => this.setgLevel(1));
|
||||
this._parser.setEscHandler('%@', () => this.selectDefaultCharset());
|
||||
this._parser.setEscHandler('%G', () => this.selectDefaultCharset());
|
||||
for (let flag in CHARSETS) {
|
||||
for (const flag in CHARSETS) {
|
||||
this._parser.setEscHandler('(' + flag, () => this.selectCharset('(' + flag));
|
||||
this._parser.setEscHandler(')' + flag, () => this.selectCharset(')' + flag));
|
||||
this._parser.setEscHandler('*' + flag, () => this.selectCharset('*' + flag));
|
||||
@@ -416,7 +416,7 @@ export class InputHandler implements IInputHandler {
|
||||
for (let moves = 0; moves < chWidth; ++moves) {
|
||||
// remove last cell
|
||||
// if it's width is 0, we have to adjust the second last cell as well
|
||||
let removed = bufferRow.pop();
|
||||
const removed = bufferRow.pop();
|
||||
if (removed[CHAR_DATA_WIDTH_INDEX] === 0
|
||||
&& bufferRow[this._terminal.cols - 2]
|
||||
&& bufferRow[this._terminal.cols - 2][CHAR_DATA_WIDTH_INDEX] === 2) {
|
||||
@@ -786,10 +786,10 @@ export class InputHandler implements IInputHandler {
|
||||
// make buffer local for faster access
|
||||
const buffer = this._terminal.buffer;
|
||||
|
||||
let row: number = buffer.y + buffer.ybase;
|
||||
const row: number = buffer.y + buffer.ybase;
|
||||
|
||||
let scrollBottomRowsOffset = this._terminal.rows - 1 - buffer.scrollBottom;
|
||||
let scrollBottomAbsolute = this._terminal.rows - 1 + buffer.ybase - scrollBottomRowsOffset + 1;
|
||||
const scrollBottomRowsOffset = this._terminal.rows - 1 - buffer.scrollBottom;
|
||||
const scrollBottomAbsolute = this._terminal.rows - 1 + buffer.ybase - scrollBottomRowsOffset + 1;
|
||||
while (param--) {
|
||||
// test: echo -e '\e[44m\e[1L\e[0m'
|
||||
// blankLine(true) - xterm/linux behavior
|
||||
@@ -1107,7 +1107,7 @@ export class InputHandler implements IInputHandler {
|
||||
* http://vt100.net/annarbor/aaa-ug/section6.html
|
||||
*/
|
||||
public tabClear(params: number[]): void {
|
||||
let param = params[0];
|
||||
const param = params[0];
|
||||
if (param <= 0) {
|
||||
delete this._terminal.buffer.tabs[this._terminal.buffer.x];
|
||||
} else if (param === 3) {
|
||||
|
||||
@@ -47,7 +47,7 @@ describe('Linkifier', () => {
|
||||
});
|
||||
|
||||
function stringToRow(text: string): LineData {
|
||||
let result: LineData = [];
|
||||
const result: LineData = [];
|
||||
for (let i = 0; i < text.length; i++) {
|
||||
result.push([0, text.charAt(i), 1, text.charCodeAt(i)]);
|
||||
}
|
||||
|
||||
+2
-2
@@ -199,11 +199,11 @@ export class Linkifier extends EventEmitter implements ILinkifier {
|
||||
*/
|
||||
private _doLinkifyRow(rowIndex: number, text: string, matcher: ILinkMatcher, offset: number = 0): void {
|
||||
// Find the first match
|
||||
let match = text.match(matcher.regex);
|
||||
const match = text.match(matcher.regex);
|
||||
if (!match || match.length === 0) {
|
||||
return;
|
||||
}
|
||||
let uri = match[typeof matcher.matchIndex !== 'number' ? 0 : matcher.matchIndex];
|
||||
const uri = match[typeof matcher.matchIndex !== 'number' ? 0 : matcher.matchIndex];
|
||||
|
||||
// Get index, match.index is for the outer match which includes negated chars
|
||||
const index = text.indexOf(uri);
|
||||
|
||||
@@ -51,7 +51,7 @@ describe('SelectionManager', () => {
|
||||
});
|
||||
|
||||
function stringToRow(text: string): LineData {
|
||||
let result: LineData = [];
|
||||
const result: LineData = [];
|
||||
for (let i = 0; i < text.length; i++) {
|
||||
result.push([0, text.charAt(i), 1, text.charCodeAt(i)]);
|
||||
}
|
||||
|
||||
@@ -179,7 +179,7 @@ export class SelectionManager extends EventEmitter implements ISelectionManager
|
||||
|
||||
// Get first row
|
||||
const startRowEndCol = start[1] === end[1] ? end[0] : null;
|
||||
let result: string[] = [];
|
||||
const result: string[] = [];
|
||||
result.push(this._buffer.translateBufferLineToString(start[1], true, start[0], startRowEndCol));
|
||||
|
||||
// Get middle rows
|
||||
@@ -586,7 +586,7 @@ export class SelectionManager extends EventEmitter implements ISelectionManager
|
||||
* @param event The mouseup event.
|
||||
*/
|
||||
private _onMouseUp(event: MouseEvent): void {
|
||||
let timeElapsed = event.timeStamp - this._mouseDownTimeStamp;
|
||||
const timeElapsed = event.timeStamp - this._mouseDownTimeStamp;
|
||||
|
||||
this._removeMouseDownListeners();
|
||||
|
||||
|
||||
+13
-13
@@ -24,8 +24,8 @@ let primitivePty: any;
|
||||
function ptyWriteRead(data: string, cb: (result: string) => void): void {
|
||||
fs.writeSync(primitivePty.slave, data);
|
||||
setTimeout(() => {
|
||||
let b = new Buffer(64000);
|
||||
let bytes = fs.readSync(primitivePty.master, b, 0, 64000, null);
|
||||
const b = new Buffer(64000);
|
||||
const bytes = fs.readSync(primitivePty.master, b, 0, 64000, null);
|
||||
cb(b.toString('utf8', 0, bytes));
|
||||
});
|
||||
}
|
||||
@@ -45,7 +45,7 @@ function formatError(input: string, output: string, expected: string): string {
|
||||
return '\x1b[33m' + (' ' + counter).slice(-2) + color + s;
|
||||
};
|
||||
}
|
||||
let line80 = '12345678901234567890123456789012345678901234567890123456789012345678901234567890';
|
||||
const line80 = '12345678901234567890123456789012345678901234567890123456789012345678901234567890';
|
||||
let s = '';
|
||||
s += '\n\x1b[34m' + JSON.stringify(input);
|
||||
s += '\n\x1b[33m ' + line80 + '\n';
|
||||
@@ -74,11 +74,11 @@ function terminalToString(term: Terminal): string {
|
||||
|
||||
// Skip tests on Windows since pty.open isn't supported
|
||||
if (os.platform() !== 'win32') {
|
||||
let CONSOLE_LOG = console.log;
|
||||
const CONSOLE_LOG = console.log;
|
||||
|
||||
// expect files need terminal at 80x25!
|
||||
let COLS = 80;
|
||||
let ROWS = 25;
|
||||
const COLS = 80;
|
||||
const ROWS = 25;
|
||||
|
||||
/** some helpers for pty interaction */
|
||||
// we need a pty in between to get the termios decorations
|
||||
@@ -99,9 +99,9 @@ if (os.platform() !== 'win32') {
|
||||
|
||||
// omit stack trace for escape sequence files
|
||||
Error.stackTraceLimit = 0;
|
||||
let files = glob.sync('**/escape_sequence_files/*.in', { cwd: path.join(__dirname, '..')});
|
||||
const files = glob.sync('**/escape_sequence_files/*.in', { cwd: path.join(__dirname, '..')});
|
||||
// only successful tests for now
|
||||
let skip = [
|
||||
const skip = [
|
||||
10, 16, 17, 19, 32, 33, 34, 35, 36, 39,
|
||||
40, 42, 43, 44, 45, 46, 47, 48, 49, 50,
|
||||
51, 52, 54, 55, 56, 57, 58, 59, 60, 61,
|
||||
@@ -118,7 +118,7 @@ if (os.platform() !== 'win32') {
|
||||
((filename: string) => {
|
||||
it(filename.split('/').slice(-1)[0], done => {
|
||||
ptyReset(() => {
|
||||
let inFile = fs.readFileSync(filename, 'utf8');
|
||||
const inFile = fs.readFileSync(filename, 'utf8');
|
||||
ptyWriteRead(inFile, fromPty => {
|
||||
// uncomment this to get log from terminal
|
||||
// console.log = function(){};
|
||||
@@ -127,12 +127,12 @@ if (os.platform() !== 'win32') {
|
||||
xterm.writeBuffer.push(fromPty);
|
||||
xterm._innerWrite();
|
||||
|
||||
let fromEmulator = terminalToString(xterm);
|
||||
const fromEmulator = terminalToString(xterm);
|
||||
console.log = CONSOLE_LOG;
|
||||
let expected = fs.readFileSync(filename.split('.')[0] + '.text', 'utf8');
|
||||
const expected = fs.readFileSync(filename.split('.')[0] + '.text', 'utf8');
|
||||
// Some of the tests have whitespace on the right of lines, we trim all the linex
|
||||
// from xterm.js so ignore this for now at least.
|
||||
let expectedRightTrimmed = expected.split('\n').map(l => l.replace(/\s+$/, '')).join('\n');
|
||||
const expectedRightTrimmed = expected.split('\n').map(l => l.replace(/\s+$/, '')).join('\n');
|
||||
if (fromEmulator !== expectedRightTrimmed) {
|
||||
// uncomment to get noisy output
|
||||
throw new Error(formatError(inFile, fromEmulator, expected));
|
||||
@@ -155,7 +155,7 @@ describe('typings', () => {
|
||||
tsc += '.cmd';
|
||||
}
|
||||
const fixtureDir = path.join(__dirname, '..', 'fixtures', 'typings-test');
|
||||
let result = cp.spawnSync(tsc, { cwd: fixtureDir });
|
||||
const result = cp.spawnSync(tsc, { cwd: fixtureDir });
|
||||
assert.equal(result.status, 0, `build did not succeed:\nstdout: ${result.stdout.toString()}\nstderr: ${result.stderr.toString()}\n`);
|
||||
// Clean up
|
||||
fs.unlinkSync(path.join(fixtureDir, 'typings-test.js'));
|
||||
|
||||
+31
-31
@@ -77,13 +77,13 @@ describe('term.js addons', () => {
|
||||
});
|
||||
|
||||
describe('attachCustomKeyEventHandler', () => {
|
||||
let evKeyDown = <KeyboardEvent>{
|
||||
const evKeyDown = <KeyboardEvent>{
|
||||
preventDefault: () => {},
|
||||
stopPropagation: () => {},
|
||||
type: 'keydown',
|
||||
keyCode: 77
|
||||
};
|
||||
let evKeyPress = <KeyboardEvent>{
|
||||
const evKeyPress = <KeyboardEvent>{
|
||||
preventDefault: () => {},
|
||||
stopPropagation: () => {},
|
||||
type: 'keypress',
|
||||
@@ -131,7 +131,7 @@ describe('term.js addons', () => {
|
||||
|
||||
describe('clear', () => {
|
||||
it('should clear a buffer equal to rows', () => {
|
||||
let promptLine = term.buffer.lines.get(term.buffer.ybase + term.buffer.y);
|
||||
const promptLine = term.buffer.lines.get(term.buffer.ybase + term.buffer.y);
|
||||
term.clear();
|
||||
assert.equal(term.buffer.y, 0);
|
||||
assert.equal(term.buffer.ybase, 0);
|
||||
@@ -148,7 +148,7 @@ describe('term.js addons', () => {
|
||||
term.write('test\n');
|
||||
}
|
||||
|
||||
let promptLine = term.buffer.lines.get(term.buffer.ybase + term.buffer.y);
|
||||
const promptLine = term.buffer.lines.get(term.buffer.ybase + term.buffer.y);
|
||||
term.clear();
|
||||
assert.equal(term.buffer.y, 0);
|
||||
assert.equal(term.buffer.ybase, 0);
|
||||
@@ -160,7 +160,7 @@ describe('term.js addons', () => {
|
||||
}
|
||||
});
|
||||
it('should not break the prompt when cleared twice', () => {
|
||||
let promptLine = term.buffer.lines.get(term.buffer.ybase + term.buffer.y);
|
||||
const promptLine = term.buffer.lines.get(term.buffer.ybase + term.buffer.y);
|
||||
term.clear();
|
||||
term.clear();
|
||||
assert.equal(term.buffer.y, 0);
|
||||
@@ -302,7 +302,7 @@ describe('term.js addons', () => {
|
||||
(<any>term)._evaluateKeyEscapeSequence = () => {
|
||||
return { key: 'a' };
|
||||
};
|
||||
let event = <KeyboardEvent>{
|
||||
const event = <KeyboardEvent>{
|
||||
type: 'keydown',
|
||||
keyCode: 0,
|
||||
preventDefault: () => {},
|
||||
@@ -322,7 +322,7 @@ describe('term.js addons', () => {
|
||||
for (let i = 0; i < term.rows * 3; i++) {
|
||||
term.writeln('test');
|
||||
}
|
||||
let startYDisp = (term.rows * 2) + 1;
|
||||
const startYDisp = (term.rows * 2) + 1;
|
||||
term.attachCustomKeyEventHandler(() => {
|
||||
return false;
|
||||
});
|
||||
@@ -784,11 +784,11 @@ describe('term.js addons', () => {
|
||||
});
|
||||
|
||||
it('should emit key with alt + key on keyPress', (done) => {
|
||||
let keys = ['@', '@', '\\', '\\', '|', '|'];
|
||||
const keys = ['@', '@', '\\', '\\', '|', '|'];
|
||||
|
||||
term.on('keypress', (key) => {
|
||||
if (key) {
|
||||
let index = keys.indexOf(key);
|
||||
const index = keys.indexOf(key);
|
||||
assert(index !== -1, 'Emitted wrong key: ' + key);
|
||||
keys.splice(index, 1);
|
||||
}
|
||||
@@ -850,11 +850,11 @@ describe('term.js addons', () => {
|
||||
});
|
||||
|
||||
it('should emit key with alt + ctrl + key on keyPress', (done) => {
|
||||
let keys = ['@', '@', '\\', '\\', '|', '|'];
|
||||
const keys = ['@', '@', '\\', '\\', '|', '|'];
|
||||
|
||||
term.on('keypress', (key) => {
|
||||
if (key) {
|
||||
let index = keys.indexOf(key);
|
||||
const index = keys.indexOf(key);
|
||||
assert(index !== -1, 'Emitted wrong key: ' + key);
|
||||
keys.splice(index, 1);
|
||||
}
|
||||
@@ -895,10 +895,10 @@ describe('term.js addons', () => {
|
||||
describe('unicode - surrogates', () => {
|
||||
it('2 characters per cell', function (): void {
|
||||
this.timeout(10000); // This is needed because istanbul patches code and slows it down
|
||||
let high = String.fromCharCode(0xD800);
|
||||
const high = String.fromCharCode(0xD800);
|
||||
for (let i = 0xDC00; i <= 0xDCFF; ++i) {
|
||||
term.write(high + String.fromCharCode(i));
|
||||
let tchar = term.buffer.lines.get(0)[0];
|
||||
const tchar = term.buffer.lines.get(0)[0];
|
||||
expect(tchar[CHAR_DATA_CHAR_INDEX]).eql(high + String.fromCharCode(i));
|
||||
expect(tchar[CHAR_DATA_CHAR_INDEX].length).eql(2);
|
||||
expect(tchar[CHAR_DATA_WIDTH_INDEX]).eql(1);
|
||||
@@ -907,7 +907,7 @@ describe('term.js addons', () => {
|
||||
}
|
||||
});
|
||||
it('2 characters at last cell', () => {
|
||||
let high = String.fromCharCode(0xD800);
|
||||
const high = String.fromCharCode(0xD800);
|
||||
for (let i = 0xDC00; i <= 0xDCFF; ++i) {
|
||||
term.buffer.x = term.cols - 1;
|
||||
term.write(high + String.fromCharCode(i));
|
||||
@@ -918,7 +918,7 @@ describe('term.js addons', () => {
|
||||
}
|
||||
});
|
||||
it('2 characters per cell over line end with autowrap', () => {
|
||||
let high = String.fromCharCode(0xD800);
|
||||
const high = String.fromCharCode(0xD800);
|
||||
for (let i = 0xDC00; i <= 0xDCFF; ++i) {
|
||||
term.buffer.x = term.cols - 1;
|
||||
term.wraparoundMode = true;
|
||||
@@ -931,7 +931,7 @@ describe('term.js addons', () => {
|
||||
}
|
||||
});
|
||||
it('2 characters per cell over line end without autowrap', () => {
|
||||
let high = String.fromCharCode(0xD800);
|
||||
const high = String.fromCharCode(0xD800);
|
||||
for (let i = 0xDC00; i <= 0xDCFF; ++i) {
|
||||
term.buffer.x = term.cols - 1;
|
||||
term.wraparoundMode = false;
|
||||
@@ -944,11 +944,11 @@ describe('term.js addons', () => {
|
||||
}
|
||||
});
|
||||
it('splitted surrogates', () => {
|
||||
let high = String.fromCharCode(0xD800);
|
||||
const high = String.fromCharCode(0xD800);
|
||||
for (let i = 0xDC00; i <= 0xDCFF; ++i) {
|
||||
term.write(high);
|
||||
term.write(String.fromCharCode(i));
|
||||
let tchar = term.buffer.lines.get(0)[0];
|
||||
const tchar = term.buffer.lines.get(0)[0];
|
||||
expect(tchar[CHAR_DATA_CHAR_INDEX]).eql(high + String.fromCharCode(i));
|
||||
expect(tchar[CHAR_DATA_CHAR_INDEX].length).eql(2);
|
||||
expect(tchar[CHAR_DATA_WIDTH_INDEX]).eql(1);
|
||||
@@ -979,12 +979,12 @@ describe('term.js addons', () => {
|
||||
term.wraparoundMode = true;
|
||||
term.write(Array(100).join('e\u0301'));
|
||||
for (let i = 0; i < term.cols; ++i) {
|
||||
let tchar = term.buffer.lines.get(0)[i];
|
||||
const tchar = term.buffer.lines.get(0)[i];
|
||||
expect(tchar[CHAR_DATA_CHAR_INDEX]).eql('e\u0301');
|
||||
expect(tchar[CHAR_DATA_CHAR_INDEX].length).eql(2);
|
||||
expect(tchar[CHAR_DATA_WIDTH_INDEX]).eql(1);
|
||||
}
|
||||
let tchar = term.buffer.lines.get(1)[0];
|
||||
const tchar = term.buffer.lines.get(1)[0];
|
||||
expect(tchar[CHAR_DATA_CHAR_INDEX]).eql('e\u0301');
|
||||
expect(tchar[CHAR_DATA_CHAR_INDEX].length).eql(2);
|
||||
expect(tchar[CHAR_DATA_WIDTH_INDEX]).eql(1);
|
||||
@@ -993,12 +993,12 @@ describe('term.js addons', () => {
|
||||
term.wraparoundMode = true;
|
||||
term.write(Array(100).join('\uD800\uDC00\u0301'));
|
||||
for (let i = 0; i < term.cols; ++i) {
|
||||
let tchar = term.buffer.lines.get(0)[i];
|
||||
const tchar = term.buffer.lines.get(0)[i];
|
||||
expect(tchar[CHAR_DATA_CHAR_INDEX]).eql('\uD800\uDC00\u0301');
|
||||
expect(tchar[CHAR_DATA_CHAR_INDEX].length).eql(3);
|
||||
expect(tchar[CHAR_DATA_WIDTH_INDEX]).eql(1);
|
||||
}
|
||||
let tchar = term.buffer.lines.get(1)[0];
|
||||
const tchar = term.buffer.lines.get(1)[0];
|
||||
expect(tchar[CHAR_DATA_CHAR_INDEX]).eql('\uD800\uDC00\u0301');
|
||||
expect(tchar[CHAR_DATA_CHAR_INDEX].length).eql(3);
|
||||
expect(tchar[CHAR_DATA_WIDTH_INDEX]).eql(1);
|
||||
@@ -1021,7 +1021,7 @@ describe('term.js addons', () => {
|
||||
term.wraparoundMode = true;
|
||||
term.write(Array(50).join('¥'));
|
||||
for (let i = 0; i < term.cols; ++i) {
|
||||
let tchar = term.buffer.lines.get(0)[i];
|
||||
const tchar = term.buffer.lines.get(0)[i];
|
||||
if (i % 2) {
|
||||
expect(tchar[CHAR_DATA_CHAR_INDEX]).eql('');
|
||||
expect(tchar[CHAR_DATA_CHAR_INDEX].length).eql(0);
|
||||
@@ -1032,7 +1032,7 @@ describe('term.js addons', () => {
|
||||
expect(tchar[CHAR_DATA_WIDTH_INDEX]).eql(2);
|
||||
}
|
||||
}
|
||||
let tchar = term.buffer.lines.get(1)[0];
|
||||
const tchar = term.buffer.lines.get(1)[0];
|
||||
expect(tchar[CHAR_DATA_CHAR_INDEX]).eql('¥');
|
||||
expect(tchar[CHAR_DATA_CHAR_INDEX].length).eql(1);
|
||||
expect(tchar[CHAR_DATA_WIDTH_INDEX]).eql(2);
|
||||
@@ -1042,7 +1042,7 @@ describe('term.js addons', () => {
|
||||
term.buffer.x = 1;
|
||||
term.write(Array(50).join('¥'));
|
||||
for (let i = 1; i < term.cols - 1; ++i) {
|
||||
let tchar = term.buffer.lines.get(0)[i];
|
||||
const tchar = term.buffer.lines.get(0)[i];
|
||||
if (!(i % 2)) {
|
||||
expect(tchar[CHAR_DATA_CHAR_INDEX]).eql('');
|
||||
expect(tchar[CHAR_DATA_CHAR_INDEX].length).eql(0);
|
||||
@@ -1067,7 +1067,7 @@ describe('term.js addons', () => {
|
||||
term.buffer.x = 1;
|
||||
term.write(Array(50).join('¥\u0301'));
|
||||
for (let i = 1; i < term.cols - 1; ++i) {
|
||||
let tchar = term.buffer.lines.get(0)[i];
|
||||
const tchar = term.buffer.lines.get(0)[i];
|
||||
if (!(i % 2)) {
|
||||
expect(tchar[CHAR_DATA_CHAR_INDEX]).eql('');
|
||||
expect(tchar[CHAR_DATA_CHAR_INDEX].length).eql(0);
|
||||
@@ -1091,7 +1091,7 @@ describe('term.js addons', () => {
|
||||
term.wraparoundMode = true;
|
||||
term.write(Array(50).join('¥\u0301'));
|
||||
for (let i = 0; i < term.cols; ++i) {
|
||||
let tchar = term.buffer.lines.get(0)[i];
|
||||
const tchar = term.buffer.lines.get(0)[i];
|
||||
if (i % 2) {
|
||||
expect(tchar[CHAR_DATA_CHAR_INDEX]).eql('');
|
||||
expect(tchar[CHAR_DATA_CHAR_INDEX].length).eql(0);
|
||||
@@ -1102,7 +1102,7 @@ describe('term.js addons', () => {
|
||||
expect(tchar[CHAR_DATA_WIDTH_INDEX]).eql(2);
|
||||
}
|
||||
}
|
||||
let tchar = term.buffer.lines.get(1)[0];
|
||||
const tchar = term.buffer.lines.get(1)[0];
|
||||
expect(tchar[CHAR_DATA_CHAR_INDEX]).eql('¥\u0301');
|
||||
expect(tchar[CHAR_DATA_CHAR_INDEX].length).eql(2);
|
||||
expect(tchar[CHAR_DATA_WIDTH_INDEX]).eql(2);
|
||||
@@ -1112,7 +1112,7 @@ describe('term.js addons', () => {
|
||||
term.buffer.x = 1;
|
||||
term.write(Array(50).join('\ud843\ude6d\u0301'));
|
||||
for (let i = 1; i < term.cols - 1; ++i) {
|
||||
let tchar = term.buffer.lines.get(0)[i];
|
||||
const tchar = term.buffer.lines.get(0)[i];
|
||||
if (!(i % 2)) {
|
||||
expect(tchar[CHAR_DATA_CHAR_INDEX]).eql('');
|
||||
expect(tchar[CHAR_DATA_CHAR_INDEX].length).eql(0);
|
||||
@@ -1136,7 +1136,7 @@ describe('term.js addons', () => {
|
||||
term.wraparoundMode = true;
|
||||
term.write(Array(50).join('\ud843\ude6d\u0301'));
|
||||
for (let i = 0; i < term.cols; ++i) {
|
||||
let tchar = term.buffer.lines.get(0)[i];
|
||||
const tchar = term.buffer.lines.get(0)[i];
|
||||
if (i % 2) {
|
||||
expect(tchar[CHAR_DATA_CHAR_INDEX]).eql('');
|
||||
expect(tchar[CHAR_DATA_CHAR_INDEX].length).eql(0);
|
||||
@@ -1147,7 +1147,7 @@ describe('term.js addons', () => {
|
||||
expect(tchar[CHAR_DATA_WIDTH_INDEX]).eql(2);
|
||||
}
|
||||
}
|
||||
let tchar = term.buffer.lines.get(1)[0];
|
||||
const tchar = term.buffer.lines.get(1)[0];
|
||||
expect(tchar[CHAR_DATA_CHAR_INDEX]).eql('\ud843\ude6d\u0301');
|
||||
expect(tchar[CHAR_DATA_CHAR_INDEX].length).eql(3);
|
||||
expect(tchar[CHAR_DATA_WIDTH_INDEX]).eql(2);
|
||||
|
||||
+3
-3
@@ -827,7 +827,7 @@ export class Terminal extends EventEmitter implements ITerminal, IDisposable, II
|
||||
// ^[[M 3<^[[M@4<^[[M@5<^[[M@6<^[[M@7<^[[M#7<
|
||||
function sendMove(ev: MouseEvent): void {
|
||||
let button = pressed;
|
||||
let pos = self.mouseHelper.getRawByteCoords(ev, self.screenElement, self.charMeasure, self.options.lineHeight, self.cols, self.rows);
|
||||
const pos = self.mouseHelper.getRawByteCoords(ev, self.screenElement, self.charMeasure, self.options.lineHeight, self.cols, self.rows);
|
||||
if (!pos) return;
|
||||
|
||||
// buttons marked as motions
|
||||
@@ -938,7 +938,7 @@ export class Terminal extends EventEmitter implements ITerminal, IDisposable, II
|
||||
return;
|
||||
}
|
||||
|
||||
let data: number[] = [];
|
||||
const data: number[] = [];
|
||||
|
||||
encode(data, button);
|
||||
encode(data, pos.x);
|
||||
@@ -1145,7 +1145,7 @@ export class Terminal extends EventEmitter implements ITerminal, IDisposable, II
|
||||
public scroll(isWrapped?: boolean): void {
|
||||
const newLine = this.blankLine(undefined, isWrapped);
|
||||
const topRow = this.buffer.ybase + this.buffer.scrollTop;
|
||||
let bottomRow = this.buffer.ybase + this.buffer.scrollBottom;
|
||||
const bottomRow = this.buffer.ybase + this.buffer.scrollBottom;
|
||||
|
||||
if (this.buffer.scrollTop === 0) {
|
||||
// Determine whether the buffer is going to be trimmed after insertion.
|
||||
|
||||
+1
-1
@@ -180,7 +180,7 @@ export class Viewport implements IViewport {
|
||||
* @param ev The touch event.
|
||||
*/
|
||||
public onTouchMove(ev: TouchEvent): void {
|
||||
let deltaY = this._lastTouchY - ev.touches[0].pageY;
|
||||
const deltaY = this._lastTouchY - ev.touches[0].pageY;
|
||||
this._lastTouchY = ev.touches[0].pageY;
|
||||
if (deltaY === 0) {
|
||||
return;
|
||||
|
||||
@@ -51,7 +51,7 @@ export function attach(term: Terminal, socket: WebSocket, bidirectional: boolean
|
||||
str = myTextDecoder.decode(ev.data);
|
||||
displayData(str);
|
||||
} else {
|
||||
let fileReader = new FileReader();
|
||||
const fileReader = new FileReader();
|
||||
|
||||
fileReader.addEventListener('load', () => {
|
||||
str = myTextDecoder.decode(this.result);
|
||||
|
||||
@@ -34,8 +34,8 @@ describe('webLinks addon', () => {
|
||||
|
||||
const row = ' http://foo.com/a~b#c~d?e~f ';
|
||||
|
||||
let match = row.match(term.regex);
|
||||
let uri = match[term.options.matchIndex];
|
||||
const match = row.match(term.regex);
|
||||
const uri = match[term.options.matchIndex];
|
||||
|
||||
assert.equal(uri, 'http://foo.com/a~b#c~d?e~f');
|
||||
});
|
||||
|
||||
@@ -28,7 +28,7 @@ export class AltClickHandler {
|
||||
this._startCol = this._terminal.buffer.x;
|
||||
this._startRow = this._terminal.buffer.y;
|
||||
|
||||
let coordinates = this._terminal.mouseHelper.getCoords(
|
||||
const coordinates = this._terminal.mouseHelper.getCoords(
|
||||
this._mouseEvent,
|
||||
this._terminal.element,
|
||||
this._terminal.charMeasure,
|
||||
@@ -89,10 +89,10 @@ export class AltClickHandler {
|
||||
* ignoring wrapped rows
|
||||
*/
|
||||
private _moveToRequestedRow(): string {
|
||||
let startRow = this._startRow - this._wrappedRowsForRow(this._startRow);
|
||||
let endRow = this._endRow - this._wrappedRowsForRow(this._endRow);
|
||||
const startRow = this._startRow - this._wrappedRowsForRow(this._startRow);
|
||||
const endRow = this._endRow - this._wrappedRowsForRow(this._endRow);
|
||||
|
||||
let rowsToMove = Math.abs(startRow - endRow) - this._wrappedRowsCount();
|
||||
const rowsToMove = Math.abs(startRow - endRow) - this._wrappedRowsCount();
|
||||
|
||||
return repeat(rowsToMove, this._sequence(this._verticalDirection()));
|
||||
}
|
||||
@@ -108,8 +108,8 @@ export class AltClickHandler {
|
||||
startRow = this._startRow;
|
||||
}
|
||||
|
||||
let endRow = this._endRow;
|
||||
let direction = this._horizontalDirection();
|
||||
const endRow = this._endRow;
|
||||
const direction = this._horizontalDirection();
|
||||
|
||||
return repeat(this._bufferLine(
|
||||
this._startCol, startRow, this._endCol, endRow,
|
||||
@@ -118,7 +118,7 @@ export class AltClickHandler {
|
||||
}
|
||||
|
||||
private _moveHorizontallyOnly(): string {
|
||||
let direction = this._horizontalDirection();
|
||||
const direction = this._horizontalDirection();
|
||||
return repeat(Math.abs(this._startCol - this._endCol), this._sequence(direction));
|
||||
}
|
||||
|
||||
@@ -132,11 +132,11 @@ export class AltClickHandler {
|
||||
*/
|
||||
private _wrappedRowsCount(): number {
|
||||
let wrappedRows = 0;
|
||||
let startRow = this._startRow - this._wrappedRowsForRow(this._startRow);
|
||||
let endRow = this._endRow - this._wrappedRowsForRow(this._endRow);
|
||||
const startRow = this._startRow - this._wrappedRowsForRow(this._startRow);
|
||||
const endRow = this._endRow - this._wrappedRowsForRow(this._endRow);
|
||||
|
||||
for (let i = 0; i < Math.abs(startRow - endRow); i++) {
|
||||
let direction = this._verticalDirection() === Direction.UP ? -1 : 1;
|
||||
const direction = this._verticalDirection() === Direction.UP ? -1 : 1;
|
||||
|
||||
if ((<any>this._lines.get(startRow + (direction * i))).isWrapped) {
|
||||
wrappedRows++;
|
||||
|
||||
@@ -58,7 +58,7 @@ export function pasteHandler(ev: ClipboardEvent, term: ITerminal): void {
|
||||
|
||||
let text: string;
|
||||
|
||||
let dispatchPaste = function(text: string): void {
|
||||
const dispatchPaste = function(text: string): void {
|
||||
text = prepareTextForTerminal(text);
|
||||
text = bracketTextForPaste(text, term.bracketedPasteMode);
|
||||
term.handler(text);
|
||||
|
||||
@@ -33,7 +33,7 @@ describe('ColorManager', () => {
|
||||
|
||||
describe('constructor', () => {
|
||||
it('should fill all colors with values', () => {
|
||||
for (let key of Object.keys(cm.colors)) {
|
||||
for (const key of Object.keys(cm.colors)) {
|
||||
if (key !== 'ansi') {
|
||||
// A #rrggbb or rgba(...)
|
||||
assert.ok(cm.colors[key].css.length >= 7);
|
||||
|
||||
@@ -42,7 +42,7 @@ export const DEFAULT_ANSI_COLORS = (() => {
|
||||
|
||||
// Fill in the remaining 240 ANSI colors.
|
||||
// Generate colors (16-231)
|
||||
let v = [0x00, 0x5f, 0x87, 0xaf, 0xd7, 0xff];
|
||||
const v = [0x00, 0x5f, 0x87, 0xaf, 0xd7, 0xff];
|
||||
for (let i = 0; i < 216; i++) {
|
||||
const r = v[(i / 36) % 6 | 0];
|
||||
const g = v[(i / 6) % 6 | 0];
|
||||
@@ -75,7 +75,7 @@ function fromHex(css: string): IColor {
|
||||
}
|
||||
|
||||
function toPaddedHex(c: number): string {
|
||||
let s = c.toString(16);
|
||||
const s = c.toString(16);
|
||||
return s.length < 2 ? '0' + s : s;
|
||||
}
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user