parse8BitSgrColour function
Implementation
int parse8BitSgrColour(int colNum, Terminal terminal) {
// https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit
switch (colNum) {
case 0:
return terminal.theme.black;
case 1:
return terminal.theme.red;
case 2:
return terminal.theme.green;
case 3:
return terminal.theme.yellow;
case 4:
return terminal.theme.blue;
case 5:
return terminal.theme.magenta;
case 6:
return terminal.theme.cyan;
case 7:
return terminal.theme.white;
case 8:
return terminal.theme.brightBlack;
case 9:
return terminal.theme.brightRed;
case 10:
return terminal.theme.brightGreen;
case 11:
return terminal.theme.brightYellow;
case 12:
return terminal.theme.brightBlue;
case 13:
return terminal.theme.brightMagenta;
case 14:
return terminal.theme.brightCyan;
case 15:
return terminal.theme.white;
}
if (colNum < 232) {
var r = 0;
var g = 0;
var b = 0;
final index = colNum - 16;
for (var i = 0; i < index; i++) {
if (b == 0) {
b = 95;
} else if (b < 255) {
b += 40;
} else {
b = 0;
if (g == 0) {
g = 95;
} else if (g < 255) {
g += 40;
} else {
g = 0;
if (r == 0) {
r = 95;
} else if (r < 255) {
r += 40;
} else {
break;
}
}
}
}
return TerminalColor.fromARGB(0xff, r, g, b);
}
return grayscaleColors[colNum.clamp(232, 255)]!;
}