Play with colors, add hecto highlighting fix
All checks were successful
timw4mail/scroll/pipeline/head This commit looks good
All checks were successful
timw4mail/scroll/pipeline/head This commit looks good
This commit is contained in:
parent
ea00f76a62
commit
0c13942aae
120
demo/colors.ts
120
demo/colors.ts
@ -1,92 +1,72 @@
|
|||||||
/**
|
/**
|
||||||
* This is a test file and a terminal color table program
|
* This is a test file and a terminal color table program
|
||||||
*/
|
*/
|
||||||
|
import Ansi, { Ground } from '../src/common/ansi.ts';
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// Display table of the 256 type color console escape codes
|
// Display table of the 256 type color console escape codes
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
function print16colorTable(): void {
|
||||||
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 = '';
|
let colorTable = '';
|
||||||
|
|
||||||
|
[30, 90].forEach((start) => {
|
||||||
|
let i = 0;
|
||||||
|
let end = start + 8;
|
||||||
|
for (i = start; i < end; i++) {
|
||||||
|
colorTable += Ansi.color(i);
|
||||||
|
colorTable += String(i).padStart(3, ' ').padEnd(4, ' ');
|
||||||
|
colorTable += Ansi.ResetFormatting;
|
||||||
|
}
|
||||||
|
|
||||||
|
colorTable += ' '.repeat(5);
|
||||||
|
|
||||||
|
start += 10;
|
||||||
|
end += 10;
|
||||||
|
for (i = start; i < end; i++) {
|
||||||
|
colorTable += Ansi.color(i);
|
||||||
|
colorTable += String(i).padStart(4, ' ').padEnd(5, ' ');
|
||||||
|
colorTable += Ansi.ResetFormatting;
|
||||||
|
}
|
||||||
|
|
||||||
|
colorTable += '\n';
|
||||||
|
});
|
||||||
|
|
||||||
|
colorTable += '\n';
|
||||||
|
|
||||||
|
console.log(colorTable);
|
||||||
|
}
|
||||||
|
function print256colorTable(): void {
|
||||||
|
let colorTable = '';
|
||||||
|
// deno-fmt-ignore
|
||||||
|
const breaks = [
|
||||||
|
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,
|
||||||
|
];
|
||||||
const doubleBreaks = [15, 51, 87, 123, 159, 195, 231, 255];
|
const doubleBreaks = [15, 51, 87, 123, 159, 195, 231, 255];
|
||||||
[
|
|
||||||
7,
|
breaks.forEach((line, n) => {
|
||||||
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 start = (n > 0) ? breaks[n - 1] + 1 : 0;
|
||||||
const end = line + 1;
|
const end = line + 1;
|
||||||
|
|
||||||
let i = 0;
|
let i = 0;
|
||||||
|
|
||||||
for (i = start; i < end; i++) {
|
for (i = start; i < end; i++) {
|
||||||
colorTable += color256(i, Ground.Fore);
|
colorTable += Ansi.color256(i, Ground.Fore);
|
||||||
colorTable += String(i).padStart(4, ' ').padEnd(5, ' ');
|
colorTable += String(i).padStart(4, ' ').padEnd(5, ' ');
|
||||||
colorTable += textFormat('');
|
colorTable += Ansi.ResetFormatting;
|
||||||
}
|
}
|
||||||
|
|
||||||
colorTable += ' '.repeat(5);
|
colorTable += ' '.repeat(5);
|
||||||
|
|
||||||
for (i = start; i < end; i++) {
|
for (i = start; i < end; i++) {
|
||||||
colorTable += color256(i, Ground.Back);
|
colorTable += Ansi.color256(i, Ground.Back);
|
||||||
colorTable += String(i).padStart(4, ' ').padEnd(5, ' ');
|
colorTable += String(i).padStart(4, ' ').padEnd(5, ' ');
|
||||||
colorTable += textFormat('');
|
colorTable += Ansi.ResetFormatting;
|
||||||
}
|
}
|
||||||
|
|
||||||
colorTable += '\n';
|
colorTable += '\n';
|
||||||
@ -97,6 +77,10 @@ const doubleBreaks = [15, 51, 87, 123, 159, 195, 231, 255];
|
|||||||
});
|
});
|
||||||
|
|
||||||
console.log(colorTable);
|
console.log(colorTable);
|
||||||
|
}
|
||||||
|
|
||||||
|
print16colorTable();
|
||||||
|
print256colorTable();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test code for highlighting
|
* Test code for highlighting
|
||||||
|
@ -246,15 +246,8 @@ export class Row {
|
|||||||
syntax: FileType,
|
syntax: FileType,
|
||||||
startWithComment: boolean,
|
startWithComment: boolean,
|
||||||
): boolean {
|
): boolean {
|
||||||
// Check for the end of a multiline comment
|
|
||||||
// if we are currently in one
|
|
||||||
if (this.isHighlighted && word.isNone()) {
|
if (this.isHighlighted && word.isNone()) {
|
||||||
const lastHl = this.hl[this.hl.length - 1];
|
return false;
|
||||||
return lastHl === HighlightType.MultiLineComment &&
|
|
||||||
syntax.hasMultilineComments() &&
|
|
||||||
this.size > 1 &&
|
|
||||||
substr(this.toString(), this.size - 2) ===
|
|
||||||
syntax.multiLineCommentEnd.unwrap();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this.hl = [];
|
this.hl = [];
|
||||||
|
Loading…
Reference in New Issue
Block a user