/** * This is a test file and a terminal color table program */ // ---------------------------------------------------------------------------- // Display table of the 256 type color console escape codes // ---------------------------------------------------------------------------- export enum Ground { Fore = 38, Back = 48, } const code = ( param: any, suffix: string = '', ): string => { if (Array.isArray(param)) { param = param.join(';'); } return ['\x1b[', param, suffix].join(''); }; const textFormat = (param: any): string => code(param, 'm'); const color256 = (value: number, ground: Ground): string => textFormat([ground, 5, value]); let colorTable = ''; const doubleBreaks = [15, 51, 87, 123, 159, 195, 231, 255]; [ 7, 15, 21, 27, 33, 39, 45, 51, 57, 63, 69, 75, 81, 87, 93, 99, 105, 111, 117, 123, 129, 135, 141, 147, 153, 159, 165, 171, 177, 183, 189, 195, 201, 207, 213, 219, 225, 231, 237, 243, 249, 255, ].forEach((line, n, breaks) => { const start = (n > 0) ? breaks[n - 1] + 1 : 0; const end = line + 1; let i = 0; for (i = start; i < end; i++) { colorTable += color256(i, Ground.Fore); colorTable += String(i).padStart(4, ' ').padEnd(5, ' '); colorTable += textFormat(''); } colorTable += ' '.repeat(5); for (i = start; i < end; i++) { colorTable += color256(i, Ground.Back); colorTable += String(i).padStart(4, ' ').padEnd(5, ' '); colorTable += textFormat(''); } colorTable += '\n'; if (doubleBreaks.includes(line)) { colorTable += '\n'; } }); console.log(colorTable); /** * Test code for highlighting */ const decimal: number[] = [0, 117]; const bigDecimal = 123456789123456789n; const octal: number[] = [0o15, 0o1]; const bigOctal = 0o777777777777n; const hexadecimal: number[] = [0x1123, 0x00111]; const bigHex = 0x123456789ABCDEFn; const binary: number[] = [0b11, 0b0011]; const bigBinary = 0b11101001010101010101n;