@@ -34,11 +34,22 @@ pub fn detectConfig(file: File) Config {
3434}
3535
3636pub const Color = enum {
37+ black ,
3738 red ,
3839 green ,
3940 yellow ,
41+ blue ,
42+ magenta ,
4043 cyan ,
4144 white ,
45+ bright_black ,
46+ bright_red ,
47+ bright_green ,
48+ bright_yellow ,
49+ bright_blue ,
50+ bright_magenta ,
51+ bright_cyan ,
52+ bright_white ,
4253 dim ,
4354 bold ,
4455 reset ,
@@ -61,11 +72,22 @@ pub const Config = union(enum) {
6172 .no_color = > return ,
6273 .escape_codes = > {
6374 const color_string = switch (color ) {
64- .red = > "\x1b [31;1m" ,
65- .green = > "\x1b [32;1m" ,
66- .yellow = > "\x1b [33;1m" ,
67- .cyan = > "\x1b [36;1m" ,
68- .white = > "\x1b [37;1m" ,
75+ .black = > "\x1b [30m" ,
76+ .red = > "\x1b [31m" ,
77+ .green = > "\x1b [32m" ,
78+ .yellow = > "\x1b [33m" ,
79+ .blue = > "\x1b [34m" ,
80+ .magenta = > "\x1b [35m" ,
81+ .cyan = > "\x1b [36m" ,
82+ .white = > "\x1b [37m" ,
83+ .bright_black = > "\x1b [90m" ,
84+ .bright_red = > "\x1b [91m" ,
85+ .bright_green = > "\x1b [92m" ,
86+ .bright_yellow = > "\x1b [93m" ,
87+ .bright_blue = > "\x1b [94m" ,
88+ .bright_magenta = > "\x1b [95m" ,
89+ .bright_cyan = > "\x1b [96m" ,
90+ .bright_white = > "\x1b [97m" ,
6991 .bold = > "\x1b [1m" ,
7092 .dim = > "\x1b [2m" ,
7193 .reset = > "\x1b [0m" ,
@@ -74,11 +96,24 @@ pub const Config = union(enum) {
7496 },
7597 .windows_api = > | ctx | if (native_os == .windows ) {
7698 const attributes = switch (color ) {
77- .red = > windows .FOREGROUND_RED | windows .FOREGROUND_INTENSITY ,
78- .green = > windows .FOREGROUND_GREEN | windows .FOREGROUND_INTENSITY ,
79- .yellow = > windows .FOREGROUND_RED | windows .FOREGROUND_GREEN | windows .FOREGROUND_INTENSITY ,
80- .cyan = > windows .FOREGROUND_GREEN | windows .FOREGROUND_BLUE | windows .FOREGROUND_INTENSITY ,
81- .white , .bold = > windows .FOREGROUND_RED | windows .FOREGROUND_GREEN | windows .FOREGROUND_BLUE | windows .FOREGROUND_INTENSITY ,
99+ .black = > 0 ,
100+ .red = > windows .FOREGROUND_RED ,
101+ .green = > windows .FOREGROUND_GREEN ,
102+ .yellow = > windows .FOREGROUND_RED | windows .FOREGROUND_GREEN ,
103+ .blue = > windows .FOREGROUND_BLUE ,
104+ .magenta = > windows .FOREGROUND_RED | windows .FOREGROUND_BLUE ,
105+ .cyan = > windows .FOREGROUND_GREEN | windows .FOREGROUND_BLUE ,
106+ .white = > windows .FOREGROUND_RED | windows .FOREGROUND_GREEN | windows .FOREGROUND_BLUE ,
107+ .bright_black = > windows .FOREGROUND_INTENSITY ,
108+ .bright_red = > windows .FOREGROUND_RED | windows .FOREGROUND_INTENSITY ,
109+ .bright_green = > windows .FOREGROUND_GREEN | windows .FOREGROUND_INTENSITY ,
110+ .bright_yellow = > windows .FOREGROUND_RED | windows .FOREGROUND_GREEN | windows .FOREGROUND_INTENSITY ,
111+ .bright_blue = > windows .FOREGROUND_BLUE | windows .FOREGROUND_INTENSITY ,
112+ .bright_magenta = > windows .FOREGROUND_RED | windows .FOREGROUND_BLUE | windows .FOREGROUND_INTENSITY ,
113+ .bright_cyan = > windows .FOREGROUND_GREEN | windows .FOREGROUND_BLUE | windows .FOREGROUND_INTENSITY ,
114+ .bright_white , .bold = > windows .FOREGROUND_RED | windows .FOREGROUND_GREEN | windows .FOREGROUND_BLUE | windows .FOREGROUND_INTENSITY ,
115+ // "dim" is not supported using basic character attributes, but let's still make it do *something*.
116+ // This matches the old behavior of TTY.Color before the bright variants were added.
82117 .dim = > windows .FOREGROUND_INTENSITY ,
83118 .reset = > ctx .reset_attributes ,
84119 };
0 commit comments