std.io.tty: Add missing colors to Color enum
Also make colors not bold by default, that's what .bold is for.
This commit is contained in:
@@ -34,11 +34,22 @@ pub fn detectConfig(file: File) Config {
|
||||
}
|
||||
|
||||
pub const Color = enum {
|
||||
black,
|
||||
red,
|
||||
green,
|
||||
yellow,
|
||||
blue,
|
||||
magenta,
|
||||
cyan,
|
||||
white,
|
||||
bright_black,
|
||||
bright_red,
|
||||
bright_green,
|
||||
bright_yellow,
|
||||
bright_blue,
|
||||
bright_magenta,
|
||||
bright_cyan,
|
||||
bright_white,
|
||||
dim,
|
||||
bold,
|
||||
reset,
|
||||
@@ -61,11 +72,22 @@ pub const Config = union(enum) {
|
||||
.no_color => return,
|
||||
.escape_codes => {
|
||||
const color_string = switch (color) {
|
||||
.red => "\x1b[31;1m",
|
||||
.green => "\x1b[32;1m",
|
||||
.yellow => "\x1b[33;1m",
|
||||
.cyan => "\x1b[36;1m",
|
||||
.white => "\x1b[37;1m",
|
||||
.black => "\x1b[30m",
|
||||
.red => "\x1b[31m",
|
||||
.green => "\x1b[32m",
|
||||
.yellow => "\x1b[33m",
|
||||
.blue => "\x1b[34m",
|
||||
.magenta => "\x1b[35m",
|
||||
.cyan => "\x1b[36m",
|
||||
.white => "\x1b[37m",
|
||||
.bright_black => "\x1b[90m",
|
||||
.bright_red => "\x1b[91m",
|
||||
.bright_green => "\x1b[92m",
|
||||
.bright_yellow => "\x1b[93m",
|
||||
.bright_blue => "\x1b[94m",
|
||||
.bright_magenta => "\x1b[95m",
|
||||
.bright_cyan => "\x1b[96m",
|
||||
.bright_white => "\x1b[97m",
|
||||
.bold => "\x1b[1m",
|
||||
.dim => "\x1b[2m",
|
||||
.reset => "\x1b[0m",
|
||||
@@ -74,11 +96,24 @@ pub const Config = union(enum) {
|
||||
},
|
||||
.windows_api => |ctx| if (native_os == .windows) {
|
||||
const attributes = switch (color) {
|
||||
.red => windows.FOREGROUND_RED | windows.FOREGROUND_INTENSITY,
|
||||
.green => windows.FOREGROUND_GREEN | windows.FOREGROUND_INTENSITY,
|
||||
.yellow => windows.FOREGROUND_RED | windows.FOREGROUND_GREEN | windows.FOREGROUND_INTENSITY,
|
||||
.cyan => windows.FOREGROUND_GREEN | windows.FOREGROUND_BLUE | windows.FOREGROUND_INTENSITY,
|
||||
.white, .bold => windows.FOREGROUND_RED | windows.FOREGROUND_GREEN | windows.FOREGROUND_BLUE | windows.FOREGROUND_INTENSITY,
|
||||
.black => 0,
|
||||
.red => windows.FOREGROUND_RED,
|
||||
.green => windows.FOREGROUND_GREEN,
|
||||
.yellow => windows.FOREGROUND_RED | windows.FOREGROUND_GREEN,
|
||||
.blue => windows.FOREGROUND_BLUE,
|
||||
.magenta => windows.FOREGROUND_RED | windows.FOREGROUND_BLUE,
|
||||
.cyan => windows.FOREGROUND_GREEN | windows.FOREGROUND_BLUE,
|
||||
.white => windows.FOREGROUND_RED | windows.FOREGROUND_GREEN | windows.FOREGROUND_BLUE,
|
||||
.bright_black => windows.FOREGROUND_INTENSITY,
|
||||
.bright_red => windows.FOREGROUND_RED | windows.FOREGROUND_INTENSITY,
|
||||
.bright_green => windows.FOREGROUND_GREEN | windows.FOREGROUND_INTENSITY,
|
||||
.bright_yellow => windows.FOREGROUND_RED | windows.FOREGROUND_GREEN | windows.FOREGROUND_INTENSITY,
|
||||
.bright_blue => windows.FOREGROUND_BLUE | windows.FOREGROUND_INTENSITY,
|
||||
.bright_magenta => windows.FOREGROUND_RED | windows.FOREGROUND_BLUE | windows.FOREGROUND_INTENSITY,
|
||||
.bright_cyan => windows.FOREGROUND_GREEN | windows.FOREGROUND_BLUE | windows.FOREGROUND_INTENSITY,
|
||||
.bright_white, .bold => windows.FOREGROUND_RED | windows.FOREGROUND_GREEN | windows.FOREGROUND_BLUE | windows.FOREGROUND_INTENSITY,
|
||||
// "dim" is not supported using basic character attributes, but let's still make it do *something*.
|
||||
// This matches the old behavior of TTY.Color before the bright variants were added.
|
||||
.dim => windows.FOREGROUND_INTENSITY,
|
||||
.reset => ctx.reset_attributes,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user