├── .gitignore ├── .travis.yml ├── LICENSE ├── README.md ├── README_cn.md ├── ctc.go ├── ctc_extra.go ├── ctc_extra_gen.go ├── ctc_string.go ├── ctc_test.go ├── examples ├── all │ └── main.go └── hello │ └── main.go ├── for_each.go ├── go.mod └── go.sum /.gitignore: -------------------------------------------------------------------------------- 1 | # Binaries for programs and plugins 2 | *.exe 3 | *.exe~ 4 | *.dll 5 | *.so 6 | *.dylib 7 | 8 | # Test binary, build with `go test -c` 9 | *.test 10 | 11 | # Output of the go coverage tool, specifically when used with LiteIDE 12 | *.out 13 | 14 | .* -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | go: 3 | - "1.3" 4 | - "1.4" 5 | - "1.5" 6 | - "1.6" 7 | - "1.7" 8 | - "1.8" 9 | - "1.9" 10 | - "1.10" 11 | - "1.11" 12 | - "1.12" 13 | - "1.13" 14 | - master 15 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017-NOW wzshiming 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ctc - Console Text Colors 2 | 3 | [![Build Status](https://travis-ci.org/wzshiming/ctc.svg?branch=master)](https://travis-ci.org/wzshiming/ctc) 4 | [![Go Report Card](https://goreportcard.com/badge/github.com/wzshiming/ctc)](https://goreportcard.com/report/github.com/wzshiming/ctc) 5 | [![GoDoc](https://godoc.org/github.com/wzshiming/ctc?status.svg)](https://godoc.org/github.com/wzshiming/ctc) 6 | [![GitHub license](https://img.shields.io/github/license/wzshiming/ctc.svg)](https://github.com/wzshiming/ctc/blob/master/LICENSE) 7 | [![gocover.io](https://gocover.io/_badge/github.com/wzshiming/ctc)](https://gocover.io/github.com/wzshiming/ctc) 8 | 9 | The non-invasive cross-platform terminal color library does not need to modify the Print method 10 | 11 | Virtual unix-like environments on Windows 12 | 13 | Cursor related in [github.com/wzshiming/cursor](https://github.com/wzshiming/cursor) 14 | 15 | - [English](https://github.com/wzshiming/ctc/blob/master/README.md) 16 | - [简体中文](https://github.com/wzshiming/ctc/blob/master/README_cn.md) 17 | 18 | ## Support style 19 | 20 | - [x] console 21 | - [x] unix-like (mac & linux) 22 | - [x] windows 23 | 24 | ## example 25 | 26 | ``` golang 27 | package main 28 | 29 | import ( 30 | "fmt" 31 | 32 | "github.com/wzshiming/ctc" 33 | ) 34 | 35 | func main() { 36 | // No invasion 37 | fmt.Println(ctc.BackgroundRed|ctc.ForegroundBlue, "Hello world", ctc.Reset) 38 | } 39 | 40 | ``` 41 | 42 | ## SGR (Select Graphic Rendition) 43 | 44 | | Value | Description | Behavior | 45 | | ------: | :---------------- | :---------------------------------------------------------------- | 46 | | 0 | Default | Returns all attributes to the default state prior to modification | 47 | | 4 | Underline | Adds underline | 48 | | 7 | Negative | Swaps foreground and background colors | 49 | | 30~37 | Foreground | Applies non-bold/bright color to foreground | 50 | | 40~47 | Background | Applies non-bold/bright color to background | 51 | | 90~97 | Bright Foreground | Applies bold/bright color to foreground | 52 | | 100~107 | Bright Background | Applies bold/bright color to background | 53 | 54 | ## License 55 | 56 | Pouch is licensed under the MIT License. See [LICENSE](https://github.com/wzshiming/ctc/blob/master/LICENSE) for the full license text. 57 | -------------------------------------------------------------------------------- /README_cn.md: -------------------------------------------------------------------------------- 1 | # ctc - 终端文本颜色 2 | 3 | [![Build Status](https://travis-ci.org/wzshiming/ctc.svg?branch=master)](https://travis-ci.org/wzshiming/ctc) 4 | [![Go Report Card](https://goreportcard.com/badge/github.com/wzshiming/ctc)](https://goreportcard.com/report/github.com/wzshiming/ctc) 5 | [![GoDoc](https://godoc.org/github.com/wzshiming/ctc?status.svg)](https://godoc.org/github.com/wzshiming/ctc) 6 | [![GitHub license](https://img.shields.io/github/license/wzshiming/ctc.svg)](https://github.com/wzshiming/ctc/blob/master/LICENSE) 7 | [![gocover.io](https://gocover.io/_badge/github.com/wzshiming/ctc)](https://gocover.io/github.com/wzshiming/ctc) 8 | 9 | 无侵入的跨平台的终端颜色库不需要修改Print方法 10 | 11 | 在windows 下靠虚拟成类unix 环境 12 | 13 | 与光标相关的在 [github.com/wzshiming/cursor](https://github.com/wzshiming/cursor) 14 | 15 | - [English](https://github.com/wzshiming/ctc/blob/master/README.md) 16 | - [简体中文](https://github.com/wzshiming/ctc/blob/master/README_cn.md) 17 | 18 | ## 支持 19 | 20 | - [x] 终端 21 | - [x] 类 unix (mac 和 linux) 22 | - [x] windows 23 | 24 | ## 示例 25 | 26 | ``` golang 27 | package main 28 | 29 | import ( 30 | "fmt" 31 | 32 | "github.com/wzshiming/ctc" 33 | ) 34 | 35 | func main() { 36 | // 无侵入 37 | fmt.Println(ctc.BackgroundRed|ctc.ForegroundBlue, "Hello world", ctc.Reset) 38 | } 39 | 40 | ``` 41 | 42 | ## SGR (Select Graphic Rendition) 43 | 44 | | Value | Description | Behavior | 45 | | ------: | :---------- | :----------------------- | 46 | | 0 | 恢复默认 | 把所有属性还原到修改之前 | 47 | | 4 | 下划线 | 添加下划线 | 48 | | 7 | 交换颜色 | 交换前景和背景的颜色 | 49 | | 30~37 | 前景 | 非高量的前景颜色 | 50 | | 40~47 | 背景 | 非高量的背景颜色 | 51 | | 90~97 | 高亮前景 | 高量的前景颜色 | 52 | | 100~107 | 高亮背景 | 高量的背景颜色 | 53 | 54 | ## 许可证 55 | 56 | 软包根据MIT License。有关完整的许可证文本,请参阅[LICENSE](https://github.com/wzshiming/ctc/blob/master/LICENSE). 57 | -------------------------------------------------------------------------------- /ctc.go: -------------------------------------------------------------------------------- 1 | package ctc 2 | 3 | // Color color sum 4 | type Color uint64 5 | 6 | // Color constant 7 | const ( 8 | Reset Color = 0 9 | 10 | ForegroundBright Color = applyForeground | bright 11 | ForegroundBlack Color = applyForeground | black 12 | ForegroundRed Color = applyForeground | red 13 | ForegroundGreen Color = applyForeground | green 14 | ForegroundYellow Color = applyForeground | yellow 15 | ForegroundBlue Color = applyForeground | blue 16 | ForegroundMagenta Color = applyForeground | magenta 17 | ForegroundCyan Color = applyForeground | cyan 18 | ForegroundWhite Color = applyForeground | white 19 | 20 | BackgroundBright Color = applyBackground | bright<<4 21 | BackgroundBlack Color = applyBackground | black<<4 22 | BackgroundRed Color = applyBackground | red<<4 23 | BackgroundGreen Color = applyBackground | green<<4 24 | BackgroundYellow Color = applyBackground | yellow<<4 25 | BackgroundBlue Color = applyBackground | blue<<4 26 | BackgroundMagenta Color = applyBackground | magenta<<4 27 | BackgroundCyan Color = applyBackground | cyan<<4 28 | BackgroundWhite Color = applyBackground | white<<4 29 | 30 | Underline Color = 1 << 31 // 0b10000000000000000000000000000000 applyUnderline 31 | Negative Color = 1 << 30 // 0b01000000000000000000000000000000 applyNegative 32 | 33 | foregroundMask = bright | white // 0b0000???? foreground 34 | backgroundMask = foregroundMask << 4 // 0b????0000 background 35 | applyForeground = 1 << 11 // 0b0000100000000000 applyForeground 36 | applyBackground = 1 << 15 // 0b1000000000000000 applyBackground 37 | 38 | bright = 1 << 3 // 0b1000 39 | black = 0 // 0b?000 40 | red = 1 << 0 // 0b?001 41 | green = 1 << 1 // 0b?010 42 | yellow = red | green // 0b?011 43 | blue = 1 << 2 // 0b?100 44 | magenta = red | blue // 0b?101 45 | cyan = green | blue // 0b?110 46 | white = red | green | blue // 0b?111 47 | ) 48 | -------------------------------------------------------------------------------- /ctc_extra.go: -------------------------------------------------------------------------------- 1 | // Code generated; DO NOT EDIT. 2 | 3 | //go:generate go run ctc_extra_gen.go 4 | //go:generate go fmt ctc_extra.go 5 | 6 | package ctc 7 | 8 | const ( 9 | 10 | // ForegroundBlack existing 11 | // ForegroundBlack = ForegroundBlack 12 | 13 | // ForegroundRed existing 14 | // ForegroundRed = ForegroundRed 15 | 16 | // ForegroundGreen existing 17 | // ForegroundGreen = ForegroundGreen 18 | 19 | // ForegroundYellow existing 20 | // ForegroundYellow = ForegroundYellow 21 | 22 | // ForegroundBlue existing 23 | // ForegroundBlue = ForegroundBlue 24 | 25 | // ForegroundMagenta existing 26 | // ForegroundMagenta = ForegroundMagenta 27 | 28 | // ForegroundCyan existing 29 | // ForegroundCyan = ForegroundCyan 30 | 31 | // ForegroundWhite existing 32 | // ForegroundWhite = ForegroundWhite 33 | 34 | // ForegroundBrightBlack ForegroundBright | ForegroundBlack 35 | ForegroundBrightBlack = ForegroundBright | ForegroundBlack 36 | 37 | // ForegroundBrightRed ForegroundBright | ForegroundRed 38 | ForegroundBrightRed = ForegroundBright | ForegroundRed 39 | 40 | // ForegroundBrightGreen ForegroundBright | ForegroundGreen 41 | ForegroundBrightGreen = ForegroundBright | ForegroundGreen 42 | 43 | // ForegroundBrightYellow ForegroundBright | ForegroundYellow 44 | ForegroundBrightYellow = ForegroundBright | ForegroundYellow 45 | 46 | // ForegroundBrightBlue ForegroundBright | ForegroundBlue 47 | ForegroundBrightBlue = ForegroundBright | ForegroundBlue 48 | 49 | // ForegroundBrightMagenta ForegroundBright | ForegroundMagenta 50 | ForegroundBrightMagenta = ForegroundBright | ForegroundMagenta 51 | 52 | // ForegroundBrightCyan ForegroundBright | ForegroundCyan 53 | ForegroundBrightCyan = ForegroundBright | ForegroundCyan 54 | 55 | // ForegroundBrightWhite ForegroundBright | ForegroundWhite 56 | ForegroundBrightWhite = ForegroundBright | ForegroundWhite 57 | 58 | // BackgroundBlack existing 59 | // BackgroundBlack = BackgroundBlack 60 | 61 | // BackgroundRed existing 62 | // BackgroundRed = BackgroundRed 63 | 64 | // BackgroundGreen existing 65 | // BackgroundGreen = BackgroundGreen 66 | 67 | // BackgroundYellow existing 68 | // BackgroundYellow = BackgroundYellow 69 | 70 | // BackgroundBlue existing 71 | // BackgroundBlue = BackgroundBlue 72 | 73 | // BackgroundMagenta existing 74 | // BackgroundMagenta = BackgroundMagenta 75 | 76 | // BackgroundCyan existing 77 | // BackgroundCyan = BackgroundCyan 78 | 79 | // BackgroundWhite existing 80 | // BackgroundWhite = BackgroundWhite 81 | 82 | // BackgroundBrightBlack BackgroundBright | BackgroundBlack 83 | BackgroundBrightBlack = BackgroundBright | BackgroundBlack 84 | 85 | // BackgroundBrightRed BackgroundBright | BackgroundRed 86 | BackgroundBrightRed = BackgroundBright | BackgroundRed 87 | 88 | // BackgroundBrightGreen BackgroundBright | BackgroundGreen 89 | BackgroundBrightGreen = BackgroundBright | BackgroundGreen 90 | 91 | // BackgroundBrightYellow BackgroundBright | BackgroundYellow 92 | BackgroundBrightYellow = BackgroundBright | BackgroundYellow 93 | 94 | // BackgroundBrightBlue BackgroundBright | BackgroundBlue 95 | BackgroundBrightBlue = BackgroundBright | BackgroundBlue 96 | 97 | // BackgroundBrightMagenta BackgroundBright | BackgroundMagenta 98 | BackgroundBrightMagenta = BackgroundBright | BackgroundMagenta 99 | 100 | // BackgroundBrightCyan BackgroundBright | BackgroundCyan 101 | BackgroundBrightCyan = BackgroundBright | BackgroundCyan 102 | 103 | // BackgroundBrightWhite BackgroundBright | BackgroundWhite 104 | BackgroundBrightWhite = BackgroundBright | BackgroundWhite 105 | 106 | // ForegroundBlackBackgroundBlack ForegroundBlack | BackgroundBlack 107 | ForegroundBlackBackgroundBlack = ForegroundBlack | BackgroundBlack 108 | 109 | // ForegroundRedBackgroundBlack ForegroundRed | BackgroundBlack 110 | ForegroundRedBackgroundBlack = ForegroundRed | BackgroundBlack 111 | 112 | // ForegroundGreenBackgroundBlack ForegroundGreen | BackgroundBlack 113 | ForegroundGreenBackgroundBlack = ForegroundGreen | BackgroundBlack 114 | 115 | // ForegroundYellowBackgroundBlack ForegroundYellow | BackgroundBlack 116 | ForegroundYellowBackgroundBlack = ForegroundYellow | BackgroundBlack 117 | 118 | // ForegroundBlueBackgroundBlack ForegroundBlue | BackgroundBlack 119 | ForegroundBlueBackgroundBlack = ForegroundBlue | BackgroundBlack 120 | 121 | // ForegroundMagentaBackgroundBlack ForegroundMagenta | BackgroundBlack 122 | ForegroundMagentaBackgroundBlack = ForegroundMagenta | BackgroundBlack 123 | 124 | // ForegroundCyanBackgroundBlack ForegroundCyan | BackgroundBlack 125 | ForegroundCyanBackgroundBlack = ForegroundCyan | BackgroundBlack 126 | 127 | // ForegroundWhiteBackgroundBlack ForegroundWhite | BackgroundBlack 128 | ForegroundWhiteBackgroundBlack = ForegroundWhite | BackgroundBlack 129 | 130 | // ForegroundBrightBlackBackgroundBlack ForegroundBright | ForegroundBlack | BackgroundBlack 131 | ForegroundBrightBlackBackgroundBlack = ForegroundBright | ForegroundBlack | BackgroundBlack 132 | 133 | // ForegroundBrightRedBackgroundBlack ForegroundBright | ForegroundRed | BackgroundBlack 134 | ForegroundBrightRedBackgroundBlack = ForegroundBright | ForegroundRed | BackgroundBlack 135 | 136 | // ForegroundBrightGreenBackgroundBlack ForegroundBright | ForegroundGreen | BackgroundBlack 137 | ForegroundBrightGreenBackgroundBlack = ForegroundBright | ForegroundGreen | BackgroundBlack 138 | 139 | // ForegroundBrightYellowBackgroundBlack ForegroundBright | ForegroundYellow | BackgroundBlack 140 | ForegroundBrightYellowBackgroundBlack = ForegroundBright | ForegroundYellow | BackgroundBlack 141 | 142 | // ForegroundBrightBlueBackgroundBlack ForegroundBright | ForegroundBlue | BackgroundBlack 143 | ForegroundBrightBlueBackgroundBlack = ForegroundBright | ForegroundBlue | BackgroundBlack 144 | 145 | // ForegroundBrightMagentaBackgroundBlack ForegroundBright | ForegroundMagenta | BackgroundBlack 146 | ForegroundBrightMagentaBackgroundBlack = ForegroundBright | ForegroundMagenta | BackgroundBlack 147 | 148 | // ForegroundBrightCyanBackgroundBlack ForegroundBright | ForegroundCyan | BackgroundBlack 149 | ForegroundBrightCyanBackgroundBlack = ForegroundBright | ForegroundCyan | BackgroundBlack 150 | 151 | // ForegroundBrightWhiteBackgroundBlack ForegroundBright | ForegroundWhite | BackgroundBlack 152 | ForegroundBrightWhiteBackgroundBlack = ForegroundBright | ForegroundWhite | BackgroundBlack 153 | 154 | // ForegroundBlackBackgroundRed ForegroundBlack | BackgroundRed 155 | ForegroundBlackBackgroundRed = ForegroundBlack | BackgroundRed 156 | 157 | // ForegroundRedBackgroundRed ForegroundRed | BackgroundRed 158 | ForegroundRedBackgroundRed = ForegroundRed | BackgroundRed 159 | 160 | // ForegroundGreenBackgroundRed ForegroundGreen | BackgroundRed 161 | ForegroundGreenBackgroundRed = ForegroundGreen | BackgroundRed 162 | 163 | // ForegroundYellowBackgroundRed ForegroundYellow | BackgroundRed 164 | ForegroundYellowBackgroundRed = ForegroundYellow | BackgroundRed 165 | 166 | // ForegroundBlueBackgroundRed ForegroundBlue | BackgroundRed 167 | ForegroundBlueBackgroundRed = ForegroundBlue | BackgroundRed 168 | 169 | // ForegroundMagentaBackgroundRed ForegroundMagenta | BackgroundRed 170 | ForegroundMagentaBackgroundRed = ForegroundMagenta | BackgroundRed 171 | 172 | // ForegroundCyanBackgroundRed ForegroundCyan | BackgroundRed 173 | ForegroundCyanBackgroundRed = ForegroundCyan | BackgroundRed 174 | 175 | // ForegroundWhiteBackgroundRed ForegroundWhite | BackgroundRed 176 | ForegroundWhiteBackgroundRed = ForegroundWhite | BackgroundRed 177 | 178 | // ForegroundBrightBlackBackgroundRed ForegroundBright | ForegroundBlack | BackgroundRed 179 | ForegroundBrightBlackBackgroundRed = ForegroundBright | ForegroundBlack | BackgroundRed 180 | 181 | // ForegroundBrightRedBackgroundRed ForegroundBright | ForegroundRed | BackgroundRed 182 | ForegroundBrightRedBackgroundRed = ForegroundBright | ForegroundRed | BackgroundRed 183 | 184 | // ForegroundBrightGreenBackgroundRed ForegroundBright | ForegroundGreen | BackgroundRed 185 | ForegroundBrightGreenBackgroundRed = ForegroundBright | ForegroundGreen | BackgroundRed 186 | 187 | // ForegroundBrightYellowBackgroundRed ForegroundBright | ForegroundYellow | BackgroundRed 188 | ForegroundBrightYellowBackgroundRed = ForegroundBright | ForegroundYellow | BackgroundRed 189 | 190 | // ForegroundBrightBlueBackgroundRed ForegroundBright | ForegroundBlue | BackgroundRed 191 | ForegroundBrightBlueBackgroundRed = ForegroundBright | ForegroundBlue | BackgroundRed 192 | 193 | // ForegroundBrightMagentaBackgroundRed ForegroundBright | ForegroundMagenta | BackgroundRed 194 | ForegroundBrightMagentaBackgroundRed = ForegroundBright | ForegroundMagenta | BackgroundRed 195 | 196 | // ForegroundBrightCyanBackgroundRed ForegroundBright | ForegroundCyan | BackgroundRed 197 | ForegroundBrightCyanBackgroundRed = ForegroundBright | ForegroundCyan | BackgroundRed 198 | 199 | // ForegroundBrightWhiteBackgroundRed ForegroundBright | ForegroundWhite | BackgroundRed 200 | ForegroundBrightWhiteBackgroundRed = ForegroundBright | ForegroundWhite | BackgroundRed 201 | 202 | // ForegroundBlackBackgroundGreen ForegroundBlack | BackgroundGreen 203 | ForegroundBlackBackgroundGreen = ForegroundBlack | BackgroundGreen 204 | 205 | // ForegroundRedBackgroundGreen ForegroundRed | BackgroundGreen 206 | ForegroundRedBackgroundGreen = ForegroundRed | BackgroundGreen 207 | 208 | // ForegroundGreenBackgroundGreen ForegroundGreen | BackgroundGreen 209 | ForegroundGreenBackgroundGreen = ForegroundGreen | BackgroundGreen 210 | 211 | // ForegroundYellowBackgroundGreen ForegroundYellow | BackgroundGreen 212 | ForegroundYellowBackgroundGreen = ForegroundYellow | BackgroundGreen 213 | 214 | // ForegroundBlueBackgroundGreen ForegroundBlue | BackgroundGreen 215 | ForegroundBlueBackgroundGreen = ForegroundBlue | BackgroundGreen 216 | 217 | // ForegroundMagentaBackgroundGreen ForegroundMagenta | BackgroundGreen 218 | ForegroundMagentaBackgroundGreen = ForegroundMagenta | BackgroundGreen 219 | 220 | // ForegroundCyanBackgroundGreen ForegroundCyan | BackgroundGreen 221 | ForegroundCyanBackgroundGreen = ForegroundCyan | BackgroundGreen 222 | 223 | // ForegroundWhiteBackgroundGreen ForegroundWhite | BackgroundGreen 224 | ForegroundWhiteBackgroundGreen = ForegroundWhite | BackgroundGreen 225 | 226 | // ForegroundBrightBlackBackgroundGreen ForegroundBright | ForegroundBlack | BackgroundGreen 227 | ForegroundBrightBlackBackgroundGreen = ForegroundBright | ForegroundBlack | BackgroundGreen 228 | 229 | // ForegroundBrightRedBackgroundGreen ForegroundBright | ForegroundRed | BackgroundGreen 230 | ForegroundBrightRedBackgroundGreen = ForegroundBright | ForegroundRed | BackgroundGreen 231 | 232 | // ForegroundBrightGreenBackgroundGreen ForegroundBright | ForegroundGreen | BackgroundGreen 233 | ForegroundBrightGreenBackgroundGreen = ForegroundBright | ForegroundGreen | BackgroundGreen 234 | 235 | // ForegroundBrightYellowBackgroundGreen ForegroundBright | ForegroundYellow | BackgroundGreen 236 | ForegroundBrightYellowBackgroundGreen = ForegroundBright | ForegroundYellow | BackgroundGreen 237 | 238 | // ForegroundBrightBlueBackgroundGreen ForegroundBright | ForegroundBlue | BackgroundGreen 239 | ForegroundBrightBlueBackgroundGreen = ForegroundBright | ForegroundBlue | BackgroundGreen 240 | 241 | // ForegroundBrightMagentaBackgroundGreen ForegroundBright | ForegroundMagenta | BackgroundGreen 242 | ForegroundBrightMagentaBackgroundGreen = ForegroundBright | ForegroundMagenta | BackgroundGreen 243 | 244 | // ForegroundBrightCyanBackgroundGreen ForegroundBright | ForegroundCyan | BackgroundGreen 245 | ForegroundBrightCyanBackgroundGreen = ForegroundBright | ForegroundCyan | BackgroundGreen 246 | 247 | // ForegroundBrightWhiteBackgroundGreen ForegroundBright | ForegroundWhite | BackgroundGreen 248 | ForegroundBrightWhiteBackgroundGreen = ForegroundBright | ForegroundWhite | BackgroundGreen 249 | 250 | // ForegroundBlackBackgroundYellow ForegroundBlack | BackgroundYellow 251 | ForegroundBlackBackgroundYellow = ForegroundBlack | BackgroundYellow 252 | 253 | // ForegroundRedBackgroundYellow ForegroundRed | BackgroundYellow 254 | ForegroundRedBackgroundYellow = ForegroundRed | BackgroundYellow 255 | 256 | // ForegroundGreenBackgroundYellow ForegroundGreen | BackgroundYellow 257 | ForegroundGreenBackgroundYellow = ForegroundGreen | BackgroundYellow 258 | 259 | // ForegroundYellowBackgroundYellow ForegroundYellow | BackgroundYellow 260 | ForegroundYellowBackgroundYellow = ForegroundYellow | BackgroundYellow 261 | 262 | // ForegroundBlueBackgroundYellow ForegroundBlue | BackgroundYellow 263 | ForegroundBlueBackgroundYellow = ForegroundBlue | BackgroundYellow 264 | 265 | // ForegroundMagentaBackgroundYellow ForegroundMagenta | BackgroundYellow 266 | ForegroundMagentaBackgroundYellow = ForegroundMagenta | BackgroundYellow 267 | 268 | // ForegroundCyanBackgroundYellow ForegroundCyan | BackgroundYellow 269 | ForegroundCyanBackgroundYellow = ForegroundCyan | BackgroundYellow 270 | 271 | // ForegroundWhiteBackgroundYellow ForegroundWhite | BackgroundYellow 272 | ForegroundWhiteBackgroundYellow = ForegroundWhite | BackgroundYellow 273 | 274 | // ForegroundBrightBlackBackgroundYellow ForegroundBright | ForegroundBlack | BackgroundYellow 275 | ForegroundBrightBlackBackgroundYellow = ForegroundBright | ForegroundBlack | BackgroundYellow 276 | 277 | // ForegroundBrightRedBackgroundYellow ForegroundBright | ForegroundRed | BackgroundYellow 278 | ForegroundBrightRedBackgroundYellow = ForegroundBright | ForegroundRed | BackgroundYellow 279 | 280 | // ForegroundBrightGreenBackgroundYellow ForegroundBright | ForegroundGreen | BackgroundYellow 281 | ForegroundBrightGreenBackgroundYellow = ForegroundBright | ForegroundGreen | BackgroundYellow 282 | 283 | // ForegroundBrightYellowBackgroundYellow ForegroundBright | ForegroundYellow | BackgroundYellow 284 | ForegroundBrightYellowBackgroundYellow = ForegroundBright | ForegroundYellow | BackgroundYellow 285 | 286 | // ForegroundBrightBlueBackgroundYellow ForegroundBright | ForegroundBlue | BackgroundYellow 287 | ForegroundBrightBlueBackgroundYellow = ForegroundBright | ForegroundBlue | BackgroundYellow 288 | 289 | // ForegroundBrightMagentaBackgroundYellow ForegroundBright | ForegroundMagenta | BackgroundYellow 290 | ForegroundBrightMagentaBackgroundYellow = ForegroundBright | ForegroundMagenta | BackgroundYellow 291 | 292 | // ForegroundBrightCyanBackgroundYellow ForegroundBright | ForegroundCyan | BackgroundYellow 293 | ForegroundBrightCyanBackgroundYellow = ForegroundBright | ForegroundCyan | BackgroundYellow 294 | 295 | // ForegroundBrightWhiteBackgroundYellow ForegroundBright | ForegroundWhite | BackgroundYellow 296 | ForegroundBrightWhiteBackgroundYellow = ForegroundBright | ForegroundWhite | BackgroundYellow 297 | 298 | // ForegroundBlackBackgroundBlue ForegroundBlack | BackgroundBlue 299 | ForegroundBlackBackgroundBlue = ForegroundBlack | BackgroundBlue 300 | 301 | // ForegroundRedBackgroundBlue ForegroundRed | BackgroundBlue 302 | ForegroundRedBackgroundBlue = ForegroundRed | BackgroundBlue 303 | 304 | // ForegroundGreenBackgroundBlue ForegroundGreen | BackgroundBlue 305 | ForegroundGreenBackgroundBlue = ForegroundGreen | BackgroundBlue 306 | 307 | // ForegroundYellowBackgroundBlue ForegroundYellow | BackgroundBlue 308 | ForegroundYellowBackgroundBlue = ForegroundYellow | BackgroundBlue 309 | 310 | // ForegroundBlueBackgroundBlue ForegroundBlue | BackgroundBlue 311 | ForegroundBlueBackgroundBlue = ForegroundBlue | BackgroundBlue 312 | 313 | // ForegroundMagentaBackgroundBlue ForegroundMagenta | BackgroundBlue 314 | ForegroundMagentaBackgroundBlue = ForegroundMagenta | BackgroundBlue 315 | 316 | // ForegroundCyanBackgroundBlue ForegroundCyan | BackgroundBlue 317 | ForegroundCyanBackgroundBlue = ForegroundCyan | BackgroundBlue 318 | 319 | // ForegroundWhiteBackgroundBlue ForegroundWhite | BackgroundBlue 320 | ForegroundWhiteBackgroundBlue = ForegroundWhite | BackgroundBlue 321 | 322 | // ForegroundBrightBlackBackgroundBlue ForegroundBright | ForegroundBlack | BackgroundBlue 323 | ForegroundBrightBlackBackgroundBlue = ForegroundBright | ForegroundBlack | BackgroundBlue 324 | 325 | // ForegroundBrightRedBackgroundBlue ForegroundBright | ForegroundRed | BackgroundBlue 326 | ForegroundBrightRedBackgroundBlue = ForegroundBright | ForegroundRed | BackgroundBlue 327 | 328 | // ForegroundBrightGreenBackgroundBlue ForegroundBright | ForegroundGreen | BackgroundBlue 329 | ForegroundBrightGreenBackgroundBlue = ForegroundBright | ForegroundGreen | BackgroundBlue 330 | 331 | // ForegroundBrightYellowBackgroundBlue ForegroundBright | ForegroundYellow | BackgroundBlue 332 | ForegroundBrightYellowBackgroundBlue = ForegroundBright | ForegroundYellow | BackgroundBlue 333 | 334 | // ForegroundBrightBlueBackgroundBlue ForegroundBright | ForegroundBlue | BackgroundBlue 335 | ForegroundBrightBlueBackgroundBlue = ForegroundBright | ForegroundBlue | BackgroundBlue 336 | 337 | // ForegroundBrightMagentaBackgroundBlue ForegroundBright | ForegroundMagenta | BackgroundBlue 338 | ForegroundBrightMagentaBackgroundBlue = ForegroundBright | ForegroundMagenta | BackgroundBlue 339 | 340 | // ForegroundBrightCyanBackgroundBlue ForegroundBright | ForegroundCyan | BackgroundBlue 341 | ForegroundBrightCyanBackgroundBlue = ForegroundBright | ForegroundCyan | BackgroundBlue 342 | 343 | // ForegroundBrightWhiteBackgroundBlue ForegroundBright | ForegroundWhite | BackgroundBlue 344 | ForegroundBrightWhiteBackgroundBlue = ForegroundBright | ForegroundWhite | BackgroundBlue 345 | 346 | // ForegroundBlackBackgroundMagenta ForegroundBlack | BackgroundMagenta 347 | ForegroundBlackBackgroundMagenta = ForegroundBlack | BackgroundMagenta 348 | 349 | // ForegroundRedBackgroundMagenta ForegroundRed | BackgroundMagenta 350 | ForegroundRedBackgroundMagenta = ForegroundRed | BackgroundMagenta 351 | 352 | // ForegroundGreenBackgroundMagenta ForegroundGreen | BackgroundMagenta 353 | ForegroundGreenBackgroundMagenta = ForegroundGreen | BackgroundMagenta 354 | 355 | // ForegroundYellowBackgroundMagenta ForegroundYellow | BackgroundMagenta 356 | ForegroundYellowBackgroundMagenta = ForegroundYellow | BackgroundMagenta 357 | 358 | // ForegroundBlueBackgroundMagenta ForegroundBlue | BackgroundMagenta 359 | ForegroundBlueBackgroundMagenta = ForegroundBlue | BackgroundMagenta 360 | 361 | // ForegroundMagentaBackgroundMagenta ForegroundMagenta | BackgroundMagenta 362 | ForegroundMagentaBackgroundMagenta = ForegroundMagenta | BackgroundMagenta 363 | 364 | // ForegroundCyanBackgroundMagenta ForegroundCyan | BackgroundMagenta 365 | ForegroundCyanBackgroundMagenta = ForegroundCyan | BackgroundMagenta 366 | 367 | // ForegroundWhiteBackgroundMagenta ForegroundWhite | BackgroundMagenta 368 | ForegroundWhiteBackgroundMagenta = ForegroundWhite | BackgroundMagenta 369 | 370 | // ForegroundBrightBlackBackgroundMagenta ForegroundBright | ForegroundBlack | BackgroundMagenta 371 | ForegroundBrightBlackBackgroundMagenta = ForegroundBright | ForegroundBlack | BackgroundMagenta 372 | 373 | // ForegroundBrightRedBackgroundMagenta ForegroundBright | ForegroundRed | BackgroundMagenta 374 | ForegroundBrightRedBackgroundMagenta = ForegroundBright | ForegroundRed | BackgroundMagenta 375 | 376 | // ForegroundBrightGreenBackgroundMagenta ForegroundBright | ForegroundGreen | BackgroundMagenta 377 | ForegroundBrightGreenBackgroundMagenta = ForegroundBright | ForegroundGreen | BackgroundMagenta 378 | 379 | // ForegroundBrightYellowBackgroundMagenta ForegroundBright | ForegroundYellow | BackgroundMagenta 380 | ForegroundBrightYellowBackgroundMagenta = ForegroundBright | ForegroundYellow | BackgroundMagenta 381 | 382 | // ForegroundBrightBlueBackgroundMagenta ForegroundBright | ForegroundBlue | BackgroundMagenta 383 | ForegroundBrightBlueBackgroundMagenta = ForegroundBright | ForegroundBlue | BackgroundMagenta 384 | 385 | // ForegroundBrightMagentaBackgroundMagenta ForegroundBright | ForegroundMagenta | BackgroundMagenta 386 | ForegroundBrightMagentaBackgroundMagenta = ForegroundBright | ForegroundMagenta | BackgroundMagenta 387 | 388 | // ForegroundBrightCyanBackgroundMagenta ForegroundBright | ForegroundCyan | BackgroundMagenta 389 | ForegroundBrightCyanBackgroundMagenta = ForegroundBright | ForegroundCyan | BackgroundMagenta 390 | 391 | // ForegroundBrightWhiteBackgroundMagenta ForegroundBright | ForegroundWhite | BackgroundMagenta 392 | ForegroundBrightWhiteBackgroundMagenta = ForegroundBright | ForegroundWhite | BackgroundMagenta 393 | 394 | // ForegroundBlackBackgroundCyan ForegroundBlack | BackgroundCyan 395 | ForegroundBlackBackgroundCyan = ForegroundBlack | BackgroundCyan 396 | 397 | // ForegroundRedBackgroundCyan ForegroundRed | BackgroundCyan 398 | ForegroundRedBackgroundCyan = ForegroundRed | BackgroundCyan 399 | 400 | // ForegroundGreenBackgroundCyan ForegroundGreen | BackgroundCyan 401 | ForegroundGreenBackgroundCyan = ForegroundGreen | BackgroundCyan 402 | 403 | // ForegroundYellowBackgroundCyan ForegroundYellow | BackgroundCyan 404 | ForegroundYellowBackgroundCyan = ForegroundYellow | BackgroundCyan 405 | 406 | // ForegroundBlueBackgroundCyan ForegroundBlue | BackgroundCyan 407 | ForegroundBlueBackgroundCyan = ForegroundBlue | BackgroundCyan 408 | 409 | // ForegroundMagentaBackgroundCyan ForegroundMagenta | BackgroundCyan 410 | ForegroundMagentaBackgroundCyan = ForegroundMagenta | BackgroundCyan 411 | 412 | // ForegroundCyanBackgroundCyan ForegroundCyan | BackgroundCyan 413 | ForegroundCyanBackgroundCyan = ForegroundCyan | BackgroundCyan 414 | 415 | // ForegroundWhiteBackgroundCyan ForegroundWhite | BackgroundCyan 416 | ForegroundWhiteBackgroundCyan = ForegroundWhite | BackgroundCyan 417 | 418 | // ForegroundBrightBlackBackgroundCyan ForegroundBright | ForegroundBlack | BackgroundCyan 419 | ForegroundBrightBlackBackgroundCyan = ForegroundBright | ForegroundBlack | BackgroundCyan 420 | 421 | // ForegroundBrightRedBackgroundCyan ForegroundBright | ForegroundRed | BackgroundCyan 422 | ForegroundBrightRedBackgroundCyan = ForegroundBright | ForegroundRed | BackgroundCyan 423 | 424 | // ForegroundBrightGreenBackgroundCyan ForegroundBright | ForegroundGreen | BackgroundCyan 425 | ForegroundBrightGreenBackgroundCyan = ForegroundBright | ForegroundGreen | BackgroundCyan 426 | 427 | // ForegroundBrightYellowBackgroundCyan ForegroundBright | ForegroundYellow | BackgroundCyan 428 | ForegroundBrightYellowBackgroundCyan = ForegroundBright | ForegroundYellow | BackgroundCyan 429 | 430 | // ForegroundBrightBlueBackgroundCyan ForegroundBright | ForegroundBlue | BackgroundCyan 431 | ForegroundBrightBlueBackgroundCyan = ForegroundBright | ForegroundBlue | BackgroundCyan 432 | 433 | // ForegroundBrightMagentaBackgroundCyan ForegroundBright | ForegroundMagenta | BackgroundCyan 434 | ForegroundBrightMagentaBackgroundCyan = ForegroundBright | ForegroundMagenta | BackgroundCyan 435 | 436 | // ForegroundBrightCyanBackgroundCyan ForegroundBright | ForegroundCyan | BackgroundCyan 437 | ForegroundBrightCyanBackgroundCyan = ForegroundBright | ForegroundCyan | BackgroundCyan 438 | 439 | // ForegroundBrightWhiteBackgroundCyan ForegroundBright | ForegroundWhite | BackgroundCyan 440 | ForegroundBrightWhiteBackgroundCyan = ForegroundBright | ForegroundWhite | BackgroundCyan 441 | 442 | // ForegroundBlackBackgroundWhite ForegroundBlack | BackgroundWhite 443 | ForegroundBlackBackgroundWhite = ForegroundBlack | BackgroundWhite 444 | 445 | // ForegroundRedBackgroundWhite ForegroundRed | BackgroundWhite 446 | ForegroundRedBackgroundWhite = ForegroundRed | BackgroundWhite 447 | 448 | // ForegroundGreenBackgroundWhite ForegroundGreen | BackgroundWhite 449 | ForegroundGreenBackgroundWhite = ForegroundGreen | BackgroundWhite 450 | 451 | // ForegroundYellowBackgroundWhite ForegroundYellow | BackgroundWhite 452 | ForegroundYellowBackgroundWhite = ForegroundYellow | BackgroundWhite 453 | 454 | // ForegroundBlueBackgroundWhite ForegroundBlue | BackgroundWhite 455 | ForegroundBlueBackgroundWhite = ForegroundBlue | BackgroundWhite 456 | 457 | // ForegroundMagentaBackgroundWhite ForegroundMagenta | BackgroundWhite 458 | ForegroundMagentaBackgroundWhite = ForegroundMagenta | BackgroundWhite 459 | 460 | // ForegroundCyanBackgroundWhite ForegroundCyan | BackgroundWhite 461 | ForegroundCyanBackgroundWhite = ForegroundCyan | BackgroundWhite 462 | 463 | // ForegroundWhiteBackgroundWhite ForegroundWhite | BackgroundWhite 464 | ForegroundWhiteBackgroundWhite = ForegroundWhite | BackgroundWhite 465 | 466 | // ForegroundBrightBlackBackgroundWhite ForegroundBright | ForegroundBlack | BackgroundWhite 467 | ForegroundBrightBlackBackgroundWhite = ForegroundBright | ForegroundBlack | BackgroundWhite 468 | 469 | // ForegroundBrightRedBackgroundWhite ForegroundBright | ForegroundRed | BackgroundWhite 470 | ForegroundBrightRedBackgroundWhite = ForegroundBright | ForegroundRed | BackgroundWhite 471 | 472 | // ForegroundBrightGreenBackgroundWhite ForegroundBright | ForegroundGreen | BackgroundWhite 473 | ForegroundBrightGreenBackgroundWhite = ForegroundBright | ForegroundGreen | BackgroundWhite 474 | 475 | // ForegroundBrightYellowBackgroundWhite ForegroundBright | ForegroundYellow | BackgroundWhite 476 | ForegroundBrightYellowBackgroundWhite = ForegroundBright | ForegroundYellow | BackgroundWhite 477 | 478 | // ForegroundBrightBlueBackgroundWhite ForegroundBright | ForegroundBlue | BackgroundWhite 479 | ForegroundBrightBlueBackgroundWhite = ForegroundBright | ForegroundBlue | BackgroundWhite 480 | 481 | // ForegroundBrightMagentaBackgroundWhite ForegroundBright | ForegroundMagenta | BackgroundWhite 482 | ForegroundBrightMagentaBackgroundWhite = ForegroundBright | ForegroundMagenta | BackgroundWhite 483 | 484 | // ForegroundBrightCyanBackgroundWhite ForegroundBright | ForegroundCyan | BackgroundWhite 485 | ForegroundBrightCyanBackgroundWhite = ForegroundBright | ForegroundCyan | BackgroundWhite 486 | 487 | // ForegroundBrightWhiteBackgroundWhite ForegroundBright | ForegroundWhite | BackgroundWhite 488 | ForegroundBrightWhiteBackgroundWhite = ForegroundBright | ForegroundWhite | BackgroundWhite 489 | 490 | // ForegroundBlackBackgroundBrightBlack ForegroundBlack | BackgroundBright | BackgroundBlack 491 | ForegroundBlackBackgroundBrightBlack = ForegroundBlack | BackgroundBright | BackgroundBlack 492 | 493 | // ForegroundRedBackgroundBrightBlack ForegroundRed | BackgroundBright | BackgroundBlack 494 | ForegroundRedBackgroundBrightBlack = ForegroundRed | BackgroundBright | BackgroundBlack 495 | 496 | // ForegroundGreenBackgroundBrightBlack ForegroundGreen | BackgroundBright | BackgroundBlack 497 | ForegroundGreenBackgroundBrightBlack = ForegroundGreen | BackgroundBright | BackgroundBlack 498 | 499 | // ForegroundYellowBackgroundBrightBlack ForegroundYellow | BackgroundBright | BackgroundBlack 500 | ForegroundYellowBackgroundBrightBlack = ForegroundYellow | BackgroundBright | BackgroundBlack 501 | 502 | // ForegroundBlueBackgroundBrightBlack ForegroundBlue | BackgroundBright | BackgroundBlack 503 | ForegroundBlueBackgroundBrightBlack = ForegroundBlue | BackgroundBright | BackgroundBlack 504 | 505 | // ForegroundMagentaBackgroundBrightBlack ForegroundMagenta | BackgroundBright | BackgroundBlack 506 | ForegroundMagentaBackgroundBrightBlack = ForegroundMagenta | BackgroundBright | BackgroundBlack 507 | 508 | // ForegroundCyanBackgroundBrightBlack ForegroundCyan | BackgroundBright | BackgroundBlack 509 | ForegroundCyanBackgroundBrightBlack = ForegroundCyan | BackgroundBright | BackgroundBlack 510 | 511 | // ForegroundWhiteBackgroundBrightBlack ForegroundWhite | BackgroundBright | BackgroundBlack 512 | ForegroundWhiteBackgroundBrightBlack = ForegroundWhite | BackgroundBright | BackgroundBlack 513 | 514 | // ForegroundBrightBlackBackgroundBrightBlack ForegroundBright | ForegroundBlack | BackgroundBright | BackgroundBlack 515 | ForegroundBrightBlackBackgroundBrightBlack = ForegroundBright | ForegroundBlack | BackgroundBright | BackgroundBlack 516 | 517 | // ForegroundBrightRedBackgroundBrightBlack ForegroundBright | ForegroundRed | BackgroundBright | BackgroundBlack 518 | ForegroundBrightRedBackgroundBrightBlack = ForegroundBright | ForegroundRed | BackgroundBright | BackgroundBlack 519 | 520 | // ForegroundBrightGreenBackgroundBrightBlack ForegroundBright | ForegroundGreen | BackgroundBright | BackgroundBlack 521 | ForegroundBrightGreenBackgroundBrightBlack = ForegroundBright | ForegroundGreen | BackgroundBright | BackgroundBlack 522 | 523 | // ForegroundBrightYellowBackgroundBrightBlack ForegroundBright | ForegroundYellow | BackgroundBright | BackgroundBlack 524 | ForegroundBrightYellowBackgroundBrightBlack = ForegroundBright | ForegroundYellow | BackgroundBright | BackgroundBlack 525 | 526 | // ForegroundBrightBlueBackgroundBrightBlack ForegroundBright | ForegroundBlue | BackgroundBright | BackgroundBlack 527 | ForegroundBrightBlueBackgroundBrightBlack = ForegroundBright | ForegroundBlue | BackgroundBright | BackgroundBlack 528 | 529 | // ForegroundBrightMagentaBackgroundBrightBlack ForegroundBright | ForegroundMagenta | BackgroundBright | BackgroundBlack 530 | ForegroundBrightMagentaBackgroundBrightBlack = ForegroundBright | ForegroundMagenta | BackgroundBright | BackgroundBlack 531 | 532 | // ForegroundBrightCyanBackgroundBrightBlack ForegroundBright | ForegroundCyan | BackgroundBright | BackgroundBlack 533 | ForegroundBrightCyanBackgroundBrightBlack = ForegroundBright | ForegroundCyan | BackgroundBright | BackgroundBlack 534 | 535 | // ForegroundBrightWhiteBackgroundBrightBlack ForegroundBright | ForegroundWhite | BackgroundBright | BackgroundBlack 536 | ForegroundBrightWhiteBackgroundBrightBlack = ForegroundBright | ForegroundWhite | BackgroundBright | BackgroundBlack 537 | 538 | // ForegroundBlackBackgroundBrightRed ForegroundBlack | BackgroundBright | BackgroundRed 539 | ForegroundBlackBackgroundBrightRed = ForegroundBlack | BackgroundBright | BackgroundRed 540 | 541 | // ForegroundRedBackgroundBrightRed ForegroundRed | BackgroundBright | BackgroundRed 542 | ForegroundRedBackgroundBrightRed = ForegroundRed | BackgroundBright | BackgroundRed 543 | 544 | // ForegroundGreenBackgroundBrightRed ForegroundGreen | BackgroundBright | BackgroundRed 545 | ForegroundGreenBackgroundBrightRed = ForegroundGreen | BackgroundBright | BackgroundRed 546 | 547 | // ForegroundYellowBackgroundBrightRed ForegroundYellow | BackgroundBright | BackgroundRed 548 | ForegroundYellowBackgroundBrightRed = ForegroundYellow | BackgroundBright | BackgroundRed 549 | 550 | // ForegroundBlueBackgroundBrightRed ForegroundBlue | BackgroundBright | BackgroundRed 551 | ForegroundBlueBackgroundBrightRed = ForegroundBlue | BackgroundBright | BackgroundRed 552 | 553 | // ForegroundMagentaBackgroundBrightRed ForegroundMagenta | BackgroundBright | BackgroundRed 554 | ForegroundMagentaBackgroundBrightRed = ForegroundMagenta | BackgroundBright | BackgroundRed 555 | 556 | // ForegroundCyanBackgroundBrightRed ForegroundCyan | BackgroundBright | BackgroundRed 557 | ForegroundCyanBackgroundBrightRed = ForegroundCyan | BackgroundBright | BackgroundRed 558 | 559 | // ForegroundWhiteBackgroundBrightRed ForegroundWhite | BackgroundBright | BackgroundRed 560 | ForegroundWhiteBackgroundBrightRed = ForegroundWhite | BackgroundBright | BackgroundRed 561 | 562 | // ForegroundBrightBlackBackgroundBrightRed ForegroundBright | ForegroundBlack | BackgroundBright | BackgroundRed 563 | ForegroundBrightBlackBackgroundBrightRed = ForegroundBright | ForegroundBlack | BackgroundBright | BackgroundRed 564 | 565 | // ForegroundBrightRedBackgroundBrightRed ForegroundBright | ForegroundRed | BackgroundBright | BackgroundRed 566 | ForegroundBrightRedBackgroundBrightRed = ForegroundBright | ForegroundRed | BackgroundBright | BackgroundRed 567 | 568 | // ForegroundBrightGreenBackgroundBrightRed ForegroundBright | ForegroundGreen | BackgroundBright | BackgroundRed 569 | ForegroundBrightGreenBackgroundBrightRed = ForegroundBright | ForegroundGreen | BackgroundBright | BackgroundRed 570 | 571 | // ForegroundBrightYellowBackgroundBrightRed ForegroundBright | ForegroundYellow | BackgroundBright | BackgroundRed 572 | ForegroundBrightYellowBackgroundBrightRed = ForegroundBright | ForegroundYellow | BackgroundBright | BackgroundRed 573 | 574 | // ForegroundBrightBlueBackgroundBrightRed ForegroundBright | ForegroundBlue | BackgroundBright | BackgroundRed 575 | ForegroundBrightBlueBackgroundBrightRed = ForegroundBright | ForegroundBlue | BackgroundBright | BackgroundRed 576 | 577 | // ForegroundBrightMagentaBackgroundBrightRed ForegroundBright | ForegroundMagenta | BackgroundBright | BackgroundRed 578 | ForegroundBrightMagentaBackgroundBrightRed = ForegroundBright | ForegroundMagenta | BackgroundBright | BackgroundRed 579 | 580 | // ForegroundBrightCyanBackgroundBrightRed ForegroundBright | ForegroundCyan | BackgroundBright | BackgroundRed 581 | ForegroundBrightCyanBackgroundBrightRed = ForegroundBright | ForegroundCyan | BackgroundBright | BackgroundRed 582 | 583 | // ForegroundBrightWhiteBackgroundBrightRed ForegroundBright | ForegroundWhite | BackgroundBright | BackgroundRed 584 | ForegroundBrightWhiteBackgroundBrightRed = ForegroundBright | ForegroundWhite | BackgroundBright | BackgroundRed 585 | 586 | // ForegroundBlackBackgroundBrightGreen ForegroundBlack | BackgroundBright | BackgroundGreen 587 | ForegroundBlackBackgroundBrightGreen = ForegroundBlack | BackgroundBright | BackgroundGreen 588 | 589 | // ForegroundRedBackgroundBrightGreen ForegroundRed | BackgroundBright | BackgroundGreen 590 | ForegroundRedBackgroundBrightGreen = ForegroundRed | BackgroundBright | BackgroundGreen 591 | 592 | // ForegroundGreenBackgroundBrightGreen ForegroundGreen | BackgroundBright | BackgroundGreen 593 | ForegroundGreenBackgroundBrightGreen = ForegroundGreen | BackgroundBright | BackgroundGreen 594 | 595 | // ForegroundYellowBackgroundBrightGreen ForegroundYellow | BackgroundBright | BackgroundGreen 596 | ForegroundYellowBackgroundBrightGreen = ForegroundYellow | BackgroundBright | BackgroundGreen 597 | 598 | // ForegroundBlueBackgroundBrightGreen ForegroundBlue | BackgroundBright | BackgroundGreen 599 | ForegroundBlueBackgroundBrightGreen = ForegroundBlue | BackgroundBright | BackgroundGreen 600 | 601 | // ForegroundMagentaBackgroundBrightGreen ForegroundMagenta | BackgroundBright | BackgroundGreen 602 | ForegroundMagentaBackgroundBrightGreen = ForegroundMagenta | BackgroundBright | BackgroundGreen 603 | 604 | // ForegroundCyanBackgroundBrightGreen ForegroundCyan | BackgroundBright | BackgroundGreen 605 | ForegroundCyanBackgroundBrightGreen = ForegroundCyan | BackgroundBright | BackgroundGreen 606 | 607 | // ForegroundWhiteBackgroundBrightGreen ForegroundWhite | BackgroundBright | BackgroundGreen 608 | ForegroundWhiteBackgroundBrightGreen = ForegroundWhite | BackgroundBright | BackgroundGreen 609 | 610 | // ForegroundBrightBlackBackgroundBrightGreen ForegroundBright | ForegroundBlack | BackgroundBright | BackgroundGreen 611 | ForegroundBrightBlackBackgroundBrightGreen = ForegroundBright | ForegroundBlack | BackgroundBright | BackgroundGreen 612 | 613 | // ForegroundBrightRedBackgroundBrightGreen ForegroundBright | ForegroundRed | BackgroundBright | BackgroundGreen 614 | ForegroundBrightRedBackgroundBrightGreen = ForegroundBright | ForegroundRed | BackgroundBright | BackgroundGreen 615 | 616 | // ForegroundBrightGreenBackgroundBrightGreen ForegroundBright | ForegroundGreen | BackgroundBright | BackgroundGreen 617 | ForegroundBrightGreenBackgroundBrightGreen = ForegroundBright | ForegroundGreen | BackgroundBright | BackgroundGreen 618 | 619 | // ForegroundBrightYellowBackgroundBrightGreen ForegroundBright | ForegroundYellow | BackgroundBright | BackgroundGreen 620 | ForegroundBrightYellowBackgroundBrightGreen = ForegroundBright | ForegroundYellow | BackgroundBright | BackgroundGreen 621 | 622 | // ForegroundBrightBlueBackgroundBrightGreen ForegroundBright | ForegroundBlue | BackgroundBright | BackgroundGreen 623 | ForegroundBrightBlueBackgroundBrightGreen = ForegroundBright | ForegroundBlue | BackgroundBright | BackgroundGreen 624 | 625 | // ForegroundBrightMagentaBackgroundBrightGreen ForegroundBright | ForegroundMagenta | BackgroundBright | BackgroundGreen 626 | ForegroundBrightMagentaBackgroundBrightGreen = ForegroundBright | ForegroundMagenta | BackgroundBright | BackgroundGreen 627 | 628 | // ForegroundBrightCyanBackgroundBrightGreen ForegroundBright | ForegroundCyan | BackgroundBright | BackgroundGreen 629 | ForegroundBrightCyanBackgroundBrightGreen = ForegroundBright | ForegroundCyan | BackgroundBright | BackgroundGreen 630 | 631 | // ForegroundBrightWhiteBackgroundBrightGreen ForegroundBright | ForegroundWhite | BackgroundBright | BackgroundGreen 632 | ForegroundBrightWhiteBackgroundBrightGreen = ForegroundBright | ForegroundWhite | BackgroundBright | BackgroundGreen 633 | 634 | // ForegroundBlackBackgroundBrightYellow ForegroundBlack | BackgroundBright | BackgroundYellow 635 | ForegroundBlackBackgroundBrightYellow = ForegroundBlack | BackgroundBright | BackgroundYellow 636 | 637 | // ForegroundRedBackgroundBrightYellow ForegroundRed | BackgroundBright | BackgroundYellow 638 | ForegroundRedBackgroundBrightYellow = ForegroundRed | BackgroundBright | BackgroundYellow 639 | 640 | // ForegroundGreenBackgroundBrightYellow ForegroundGreen | BackgroundBright | BackgroundYellow 641 | ForegroundGreenBackgroundBrightYellow = ForegroundGreen | BackgroundBright | BackgroundYellow 642 | 643 | // ForegroundYellowBackgroundBrightYellow ForegroundYellow | BackgroundBright | BackgroundYellow 644 | ForegroundYellowBackgroundBrightYellow = ForegroundYellow | BackgroundBright | BackgroundYellow 645 | 646 | // ForegroundBlueBackgroundBrightYellow ForegroundBlue | BackgroundBright | BackgroundYellow 647 | ForegroundBlueBackgroundBrightYellow = ForegroundBlue | BackgroundBright | BackgroundYellow 648 | 649 | // ForegroundMagentaBackgroundBrightYellow ForegroundMagenta | BackgroundBright | BackgroundYellow 650 | ForegroundMagentaBackgroundBrightYellow = ForegroundMagenta | BackgroundBright | BackgroundYellow 651 | 652 | // ForegroundCyanBackgroundBrightYellow ForegroundCyan | BackgroundBright | BackgroundYellow 653 | ForegroundCyanBackgroundBrightYellow = ForegroundCyan | BackgroundBright | BackgroundYellow 654 | 655 | // ForegroundWhiteBackgroundBrightYellow ForegroundWhite | BackgroundBright | BackgroundYellow 656 | ForegroundWhiteBackgroundBrightYellow = ForegroundWhite | BackgroundBright | BackgroundYellow 657 | 658 | // ForegroundBrightBlackBackgroundBrightYellow ForegroundBright | ForegroundBlack | BackgroundBright | BackgroundYellow 659 | ForegroundBrightBlackBackgroundBrightYellow = ForegroundBright | ForegroundBlack | BackgroundBright | BackgroundYellow 660 | 661 | // ForegroundBrightRedBackgroundBrightYellow ForegroundBright | ForegroundRed | BackgroundBright | BackgroundYellow 662 | ForegroundBrightRedBackgroundBrightYellow = ForegroundBright | ForegroundRed | BackgroundBright | BackgroundYellow 663 | 664 | // ForegroundBrightGreenBackgroundBrightYellow ForegroundBright | ForegroundGreen | BackgroundBright | BackgroundYellow 665 | ForegroundBrightGreenBackgroundBrightYellow = ForegroundBright | ForegroundGreen | BackgroundBright | BackgroundYellow 666 | 667 | // ForegroundBrightYellowBackgroundBrightYellow ForegroundBright | ForegroundYellow | BackgroundBright | BackgroundYellow 668 | ForegroundBrightYellowBackgroundBrightYellow = ForegroundBright | ForegroundYellow | BackgroundBright | BackgroundYellow 669 | 670 | // ForegroundBrightBlueBackgroundBrightYellow ForegroundBright | ForegroundBlue | BackgroundBright | BackgroundYellow 671 | ForegroundBrightBlueBackgroundBrightYellow = ForegroundBright | ForegroundBlue | BackgroundBright | BackgroundYellow 672 | 673 | // ForegroundBrightMagentaBackgroundBrightYellow ForegroundBright | ForegroundMagenta | BackgroundBright | BackgroundYellow 674 | ForegroundBrightMagentaBackgroundBrightYellow = ForegroundBright | ForegroundMagenta | BackgroundBright | BackgroundYellow 675 | 676 | // ForegroundBrightCyanBackgroundBrightYellow ForegroundBright | ForegroundCyan | BackgroundBright | BackgroundYellow 677 | ForegroundBrightCyanBackgroundBrightYellow = ForegroundBright | ForegroundCyan | BackgroundBright | BackgroundYellow 678 | 679 | // ForegroundBrightWhiteBackgroundBrightYellow ForegroundBright | ForegroundWhite | BackgroundBright | BackgroundYellow 680 | ForegroundBrightWhiteBackgroundBrightYellow = ForegroundBright | ForegroundWhite | BackgroundBright | BackgroundYellow 681 | 682 | // ForegroundBlackBackgroundBrightBlue ForegroundBlack | BackgroundBright | BackgroundBlue 683 | ForegroundBlackBackgroundBrightBlue = ForegroundBlack | BackgroundBright | BackgroundBlue 684 | 685 | // ForegroundRedBackgroundBrightBlue ForegroundRed | BackgroundBright | BackgroundBlue 686 | ForegroundRedBackgroundBrightBlue = ForegroundRed | BackgroundBright | BackgroundBlue 687 | 688 | // ForegroundGreenBackgroundBrightBlue ForegroundGreen | BackgroundBright | BackgroundBlue 689 | ForegroundGreenBackgroundBrightBlue = ForegroundGreen | BackgroundBright | BackgroundBlue 690 | 691 | // ForegroundYellowBackgroundBrightBlue ForegroundYellow | BackgroundBright | BackgroundBlue 692 | ForegroundYellowBackgroundBrightBlue = ForegroundYellow | BackgroundBright | BackgroundBlue 693 | 694 | // ForegroundBlueBackgroundBrightBlue ForegroundBlue | BackgroundBright | BackgroundBlue 695 | ForegroundBlueBackgroundBrightBlue = ForegroundBlue | BackgroundBright | BackgroundBlue 696 | 697 | // ForegroundMagentaBackgroundBrightBlue ForegroundMagenta | BackgroundBright | BackgroundBlue 698 | ForegroundMagentaBackgroundBrightBlue = ForegroundMagenta | BackgroundBright | BackgroundBlue 699 | 700 | // ForegroundCyanBackgroundBrightBlue ForegroundCyan | BackgroundBright | BackgroundBlue 701 | ForegroundCyanBackgroundBrightBlue = ForegroundCyan | BackgroundBright | BackgroundBlue 702 | 703 | // ForegroundWhiteBackgroundBrightBlue ForegroundWhite | BackgroundBright | BackgroundBlue 704 | ForegroundWhiteBackgroundBrightBlue = ForegroundWhite | BackgroundBright | BackgroundBlue 705 | 706 | // ForegroundBrightBlackBackgroundBrightBlue ForegroundBright | ForegroundBlack | BackgroundBright | BackgroundBlue 707 | ForegroundBrightBlackBackgroundBrightBlue = ForegroundBright | ForegroundBlack | BackgroundBright | BackgroundBlue 708 | 709 | // ForegroundBrightRedBackgroundBrightBlue ForegroundBright | ForegroundRed | BackgroundBright | BackgroundBlue 710 | ForegroundBrightRedBackgroundBrightBlue = ForegroundBright | ForegroundRed | BackgroundBright | BackgroundBlue 711 | 712 | // ForegroundBrightGreenBackgroundBrightBlue ForegroundBright | ForegroundGreen | BackgroundBright | BackgroundBlue 713 | ForegroundBrightGreenBackgroundBrightBlue = ForegroundBright | ForegroundGreen | BackgroundBright | BackgroundBlue 714 | 715 | // ForegroundBrightYellowBackgroundBrightBlue ForegroundBright | ForegroundYellow | BackgroundBright | BackgroundBlue 716 | ForegroundBrightYellowBackgroundBrightBlue = ForegroundBright | ForegroundYellow | BackgroundBright | BackgroundBlue 717 | 718 | // ForegroundBrightBlueBackgroundBrightBlue ForegroundBright | ForegroundBlue | BackgroundBright | BackgroundBlue 719 | ForegroundBrightBlueBackgroundBrightBlue = ForegroundBright | ForegroundBlue | BackgroundBright | BackgroundBlue 720 | 721 | // ForegroundBrightMagentaBackgroundBrightBlue ForegroundBright | ForegroundMagenta | BackgroundBright | BackgroundBlue 722 | ForegroundBrightMagentaBackgroundBrightBlue = ForegroundBright | ForegroundMagenta | BackgroundBright | BackgroundBlue 723 | 724 | // ForegroundBrightCyanBackgroundBrightBlue ForegroundBright | ForegroundCyan | BackgroundBright | BackgroundBlue 725 | ForegroundBrightCyanBackgroundBrightBlue = ForegroundBright | ForegroundCyan | BackgroundBright | BackgroundBlue 726 | 727 | // ForegroundBrightWhiteBackgroundBrightBlue ForegroundBright | ForegroundWhite | BackgroundBright | BackgroundBlue 728 | ForegroundBrightWhiteBackgroundBrightBlue = ForegroundBright | ForegroundWhite | BackgroundBright | BackgroundBlue 729 | 730 | // ForegroundBlackBackgroundBrightMagenta ForegroundBlack | BackgroundBright | BackgroundMagenta 731 | ForegroundBlackBackgroundBrightMagenta = ForegroundBlack | BackgroundBright | BackgroundMagenta 732 | 733 | // ForegroundRedBackgroundBrightMagenta ForegroundRed | BackgroundBright | BackgroundMagenta 734 | ForegroundRedBackgroundBrightMagenta = ForegroundRed | BackgroundBright | BackgroundMagenta 735 | 736 | // ForegroundGreenBackgroundBrightMagenta ForegroundGreen | BackgroundBright | BackgroundMagenta 737 | ForegroundGreenBackgroundBrightMagenta = ForegroundGreen | BackgroundBright | BackgroundMagenta 738 | 739 | // ForegroundYellowBackgroundBrightMagenta ForegroundYellow | BackgroundBright | BackgroundMagenta 740 | ForegroundYellowBackgroundBrightMagenta = ForegroundYellow | BackgroundBright | BackgroundMagenta 741 | 742 | // ForegroundBlueBackgroundBrightMagenta ForegroundBlue | BackgroundBright | BackgroundMagenta 743 | ForegroundBlueBackgroundBrightMagenta = ForegroundBlue | BackgroundBright | BackgroundMagenta 744 | 745 | // ForegroundMagentaBackgroundBrightMagenta ForegroundMagenta | BackgroundBright | BackgroundMagenta 746 | ForegroundMagentaBackgroundBrightMagenta = ForegroundMagenta | BackgroundBright | BackgroundMagenta 747 | 748 | // ForegroundCyanBackgroundBrightMagenta ForegroundCyan | BackgroundBright | BackgroundMagenta 749 | ForegroundCyanBackgroundBrightMagenta = ForegroundCyan | BackgroundBright | BackgroundMagenta 750 | 751 | // ForegroundWhiteBackgroundBrightMagenta ForegroundWhite | BackgroundBright | BackgroundMagenta 752 | ForegroundWhiteBackgroundBrightMagenta = ForegroundWhite | BackgroundBright | BackgroundMagenta 753 | 754 | // ForegroundBrightBlackBackgroundBrightMagenta ForegroundBright | ForegroundBlack | BackgroundBright | BackgroundMagenta 755 | ForegroundBrightBlackBackgroundBrightMagenta = ForegroundBright | ForegroundBlack | BackgroundBright | BackgroundMagenta 756 | 757 | // ForegroundBrightRedBackgroundBrightMagenta ForegroundBright | ForegroundRed | BackgroundBright | BackgroundMagenta 758 | ForegroundBrightRedBackgroundBrightMagenta = ForegroundBright | ForegroundRed | BackgroundBright | BackgroundMagenta 759 | 760 | // ForegroundBrightGreenBackgroundBrightMagenta ForegroundBright | ForegroundGreen | BackgroundBright | BackgroundMagenta 761 | ForegroundBrightGreenBackgroundBrightMagenta = ForegroundBright | ForegroundGreen | BackgroundBright | BackgroundMagenta 762 | 763 | // ForegroundBrightYellowBackgroundBrightMagenta ForegroundBright | ForegroundYellow | BackgroundBright | BackgroundMagenta 764 | ForegroundBrightYellowBackgroundBrightMagenta = ForegroundBright | ForegroundYellow | BackgroundBright | BackgroundMagenta 765 | 766 | // ForegroundBrightBlueBackgroundBrightMagenta ForegroundBright | ForegroundBlue | BackgroundBright | BackgroundMagenta 767 | ForegroundBrightBlueBackgroundBrightMagenta = ForegroundBright | ForegroundBlue | BackgroundBright | BackgroundMagenta 768 | 769 | // ForegroundBrightMagentaBackgroundBrightMagenta ForegroundBright | ForegroundMagenta | BackgroundBright | BackgroundMagenta 770 | ForegroundBrightMagentaBackgroundBrightMagenta = ForegroundBright | ForegroundMagenta | BackgroundBright | BackgroundMagenta 771 | 772 | // ForegroundBrightCyanBackgroundBrightMagenta ForegroundBright | ForegroundCyan | BackgroundBright | BackgroundMagenta 773 | ForegroundBrightCyanBackgroundBrightMagenta = ForegroundBright | ForegroundCyan | BackgroundBright | BackgroundMagenta 774 | 775 | // ForegroundBrightWhiteBackgroundBrightMagenta ForegroundBright | ForegroundWhite | BackgroundBright | BackgroundMagenta 776 | ForegroundBrightWhiteBackgroundBrightMagenta = ForegroundBright | ForegroundWhite | BackgroundBright | BackgroundMagenta 777 | 778 | // ForegroundBlackBackgroundBrightCyan ForegroundBlack | BackgroundBright | BackgroundCyan 779 | ForegroundBlackBackgroundBrightCyan = ForegroundBlack | BackgroundBright | BackgroundCyan 780 | 781 | // ForegroundRedBackgroundBrightCyan ForegroundRed | BackgroundBright | BackgroundCyan 782 | ForegroundRedBackgroundBrightCyan = ForegroundRed | BackgroundBright | BackgroundCyan 783 | 784 | // ForegroundGreenBackgroundBrightCyan ForegroundGreen | BackgroundBright | BackgroundCyan 785 | ForegroundGreenBackgroundBrightCyan = ForegroundGreen | BackgroundBright | BackgroundCyan 786 | 787 | // ForegroundYellowBackgroundBrightCyan ForegroundYellow | BackgroundBright | BackgroundCyan 788 | ForegroundYellowBackgroundBrightCyan = ForegroundYellow | BackgroundBright | BackgroundCyan 789 | 790 | // ForegroundBlueBackgroundBrightCyan ForegroundBlue | BackgroundBright | BackgroundCyan 791 | ForegroundBlueBackgroundBrightCyan = ForegroundBlue | BackgroundBright | BackgroundCyan 792 | 793 | // ForegroundMagentaBackgroundBrightCyan ForegroundMagenta | BackgroundBright | BackgroundCyan 794 | ForegroundMagentaBackgroundBrightCyan = ForegroundMagenta | BackgroundBright | BackgroundCyan 795 | 796 | // ForegroundCyanBackgroundBrightCyan ForegroundCyan | BackgroundBright | BackgroundCyan 797 | ForegroundCyanBackgroundBrightCyan = ForegroundCyan | BackgroundBright | BackgroundCyan 798 | 799 | // ForegroundWhiteBackgroundBrightCyan ForegroundWhite | BackgroundBright | BackgroundCyan 800 | ForegroundWhiteBackgroundBrightCyan = ForegroundWhite | BackgroundBright | BackgroundCyan 801 | 802 | // ForegroundBrightBlackBackgroundBrightCyan ForegroundBright | ForegroundBlack | BackgroundBright | BackgroundCyan 803 | ForegroundBrightBlackBackgroundBrightCyan = ForegroundBright | ForegroundBlack | BackgroundBright | BackgroundCyan 804 | 805 | // ForegroundBrightRedBackgroundBrightCyan ForegroundBright | ForegroundRed | BackgroundBright | BackgroundCyan 806 | ForegroundBrightRedBackgroundBrightCyan = ForegroundBright | ForegroundRed | BackgroundBright | BackgroundCyan 807 | 808 | // ForegroundBrightGreenBackgroundBrightCyan ForegroundBright | ForegroundGreen | BackgroundBright | BackgroundCyan 809 | ForegroundBrightGreenBackgroundBrightCyan = ForegroundBright | ForegroundGreen | BackgroundBright | BackgroundCyan 810 | 811 | // ForegroundBrightYellowBackgroundBrightCyan ForegroundBright | ForegroundYellow | BackgroundBright | BackgroundCyan 812 | ForegroundBrightYellowBackgroundBrightCyan = ForegroundBright | ForegroundYellow | BackgroundBright | BackgroundCyan 813 | 814 | // ForegroundBrightBlueBackgroundBrightCyan ForegroundBright | ForegroundBlue | BackgroundBright | BackgroundCyan 815 | ForegroundBrightBlueBackgroundBrightCyan = ForegroundBright | ForegroundBlue | BackgroundBright | BackgroundCyan 816 | 817 | // ForegroundBrightMagentaBackgroundBrightCyan ForegroundBright | ForegroundMagenta | BackgroundBright | BackgroundCyan 818 | ForegroundBrightMagentaBackgroundBrightCyan = ForegroundBright | ForegroundMagenta | BackgroundBright | BackgroundCyan 819 | 820 | // ForegroundBrightCyanBackgroundBrightCyan ForegroundBright | ForegroundCyan | BackgroundBright | BackgroundCyan 821 | ForegroundBrightCyanBackgroundBrightCyan = ForegroundBright | ForegroundCyan | BackgroundBright | BackgroundCyan 822 | 823 | // ForegroundBrightWhiteBackgroundBrightCyan ForegroundBright | ForegroundWhite | BackgroundBright | BackgroundCyan 824 | ForegroundBrightWhiteBackgroundBrightCyan = ForegroundBright | ForegroundWhite | BackgroundBright | BackgroundCyan 825 | 826 | // ForegroundBlackBackgroundBrightWhite ForegroundBlack | BackgroundBright | BackgroundWhite 827 | ForegroundBlackBackgroundBrightWhite = ForegroundBlack | BackgroundBright | BackgroundWhite 828 | 829 | // ForegroundRedBackgroundBrightWhite ForegroundRed | BackgroundBright | BackgroundWhite 830 | ForegroundRedBackgroundBrightWhite = ForegroundRed | BackgroundBright | BackgroundWhite 831 | 832 | // ForegroundGreenBackgroundBrightWhite ForegroundGreen | BackgroundBright | BackgroundWhite 833 | ForegroundGreenBackgroundBrightWhite = ForegroundGreen | BackgroundBright | BackgroundWhite 834 | 835 | // ForegroundYellowBackgroundBrightWhite ForegroundYellow | BackgroundBright | BackgroundWhite 836 | ForegroundYellowBackgroundBrightWhite = ForegroundYellow | BackgroundBright | BackgroundWhite 837 | 838 | // ForegroundBlueBackgroundBrightWhite ForegroundBlue | BackgroundBright | BackgroundWhite 839 | ForegroundBlueBackgroundBrightWhite = ForegroundBlue | BackgroundBright | BackgroundWhite 840 | 841 | // ForegroundMagentaBackgroundBrightWhite ForegroundMagenta | BackgroundBright | BackgroundWhite 842 | ForegroundMagentaBackgroundBrightWhite = ForegroundMagenta | BackgroundBright | BackgroundWhite 843 | 844 | // ForegroundCyanBackgroundBrightWhite ForegroundCyan | BackgroundBright | BackgroundWhite 845 | ForegroundCyanBackgroundBrightWhite = ForegroundCyan | BackgroundBright | BackgroundWhite 846 | 847 | // ForegroundWhiteBackgroundBrightWhite ForegroundWhite | BackgroundBright | BackgroundWhite 848 | ForegroundWhiteBackgroundBrightWhite = ForegroundWhite | BackgroundBright | BackgroundWhite 849 | 850 | // ForegroundBrightBlackBackgroundBrightWhite ForegroundBright | ForegroundBlack | BackgroundBright | BackgroundWhite 851 | ForegroundBrightBlackBackgroundBrightWhite = ForegroundBright | ForegroundBlack | BackgroundBright | BackgroundWhite 852 | 853 | // ForegroundBrightRedBackgroundBrightWhite ForegroundBright | ForegroundRed | BackgroundBright | BackgroundWhite 854 | ForegroundBrightRedBackgroundBrightWhite = ForegroundBright | ForegroundRed | BackgroundBright | BackgroundWhite 855 | 856 | // ForegroundBrightGreenBackgroundBrightWhite ForegroundBright | ForegroundGreen | BackgroundBright | BackgroundWhite 857 | ForegroundBrightGreenBackgroundBrightWhite = ForegroundBright | ForegroundGreen | BackgroundBright | BackgroundWhite 858 | 859 | // ForegroundBrightYellowBackgroundBrightWhite ForegroundBright | ForegroundYellow | BackgroundBright | BackgroundWhite 860 | ForegroundBrightYellowBackgroundBrightWhite = ForegroundBright | ForegroundYellow | BackgroundBright | BackgroundWhite 861 | 862 | // ForegroundBrightBlueBackgroundBrightWhite ForegroundBright | ForegroundBlue | BackgroundBright | BackgroundWhite 863 | ForegroundBrightBlueBackgroundBrightWhite = ForegroundBright | ForegroundBlue | BackgroundBright | BackgroundWhite 864 | 865 | // ForegroundBrightMagentaBackgroundBrightWhite ForegroundBright | ForegroundMagenta | BackgroundBright | BackgroundWhite 866 | ForegroundBrightMagentaBackgroundBrightWhite = ForegroundBright | ForegroundMagenta | BackgroundBright | BackgroundWhite 867 | 868 | // ForegroundBrightCyanBackgroundBrightWhite ForegroundBright | ForegroundCyan | BackgroundBright | BackgroundWhite 869 | ForegroundBrightCyanBackgroundBrightWhite = ForegroundBright | ForegroundCyan | BackgroundBright | BackgroundWhite 870 | 871 | // ForegroundBrightWhiteBackgroundBrightWhite ForegroundBright | ForegroundWhite | BackgroundBright | BackgroundWhite 872 | ForegroundBrightWhiteBackgroundBrightWhite = ForegroundBright | ForegroundWhite | BackgroundBright | BackgroundWhite 873 | ) 874 | -------------------------------------------------------------------------------- /ctc_extra_gen.go: -------------------------------------------------------------------------------- 1 | // +build ignore 2 | 3 | package main 4 | 5 | import ( 6 | "bytes" 7 | "fmt" 8 | "io/ioutil" 9 | 10 | "github.com/wzshiming/ctc" 11 | ) 12 | 13 | func main() { 14 | 15 | buf := bytes.NewBuffer(nil) 16 | 17 | fmt.Fprintln(buf, `// Code generated; DO NOT EDIT. 18 | 19 | //go:generate go run ctc_extra_gen.go 20 | //go:generate go fmt ctc_extra.go 21 | 22 | package ctc 23 | 24 | const (`) 25 | ctc.ForEach(func(c ctc.Color) { 26 | a1 := c.Name() 27 | a2 := c.Info() 28 | 29 | if a1 == a2 { 30 | fmt.Fprintln(buf, "\n//", a1, "existing") 31 | fmt.Fprintln(buf, "//", a1, "=", a2) 32 | } else { 33 | fmt.Fprintln(buf, "\n//", a1, a2) 34 | fmt.Fprintln(buf, a1, "=", a2) 35 | } 36 | }) 37 | fmt.Fprintln(buf, ` 38 | ) 39 | `) 40 | 41 | ioutil.WriteFile("./ctc_extra.go", buf.Bytes(), 0600) 42 | } 43 | -------------------------------------------------------------------------------- /ctc_string.go: -------------------------------------------------------------------------------- 1 | package ctc 2 | 3 | import ( 4 | "bytes" 5 | "strconv" 6 | "strings" 7 | "unsafe" 8 | 9 | _ "github.com/wzshiming/winseq" // Use Unix like Sequences in Windows 10 | ) 11 | 12 | var cc = []string{ 13 | "Black", 14 | "Red", 15 | "Green", 16 | "Yellow", 17 | "Blue", 18 | "Magenta", 19 | "Cyan", 20 | "White", 21 | } 22 | 23 | var pre = []byte("\x1b[0") 24 | 25 | // String returns UnixLike markup 26 | func (c Color) String() string { 27 | b := c.Bytes() 28 | return *(*string)(unsafe.Pointer(&b)) 29 | } 30 | 31 | // Bytes returns UnixLike markup 32 | func (c Color) Bytes() []byte { 33 | s := make([]byte, 0, 16) 34 | s = append(s, pre...) 35 | if c&applyForeground == applyForeground { 36 | if c&ForegroundBright == ForegroundBright { 37 | s = appendColor(s, uint8(c&foregroundMask), 90) 38 | } else { 39 | s = appendColor(s, uint8(c&foregroundMask), 30) 40 | } 41 | } 42 | if c&applyBackground == applyBackground { 43 | if c&BackgroundBright == BackgroundBright { 44 | s = appendColor(s, uint8(c&backgroundMask>>4), 100) 45 | } else { 46 | s = appendColor(s, uint8(c&backgroundMask>>4), 40) 47 | } 48 | } 49 | if c&Underline == Underline { 50 | s = append(s, ';', '4') 51 | } 52 | if c&Negative == Negative { 53 | s = append(s, ';', '7') 54 | } 55 | s = append(s, 'm') 56 | 57 | return s 58 | } 59 | 60 | // Name returns color name 61 | func (c Color) Name() string { 62 | if c&(applyForeground|applyBackground) == 0 { 63 | return "Reset" 64 | } 65 | 66 | buf := bytes.NewBuffer(nil) 67 | if c&applyForeground == applyForeground { 68 | buf.WriteString("Foreground") 69 | if c&ForegroundBright == ForegroundBright { 70 | buf.WriteString("Bright") 71 | } 72 | buf.WriteString(cc[int(c&foregroundMask&white)]) 73 | } 74 | if c&applyBackground == applyBackground { 75 | buf.WriteString("Background") 76 | if c&BackgroundBright == BackgroundBright { 77 | buf.WriteString("Bright") 78 | } 79 | buf.WriteString(cc[int(((c&backgroundMask)>>4)&white)]) 80 | } 81 | if c&Underline == Underline { 82 | buf.WriteString("Underline") 83 | } 84 | if c&Negative == Negative { 85 | buf.WriteString("Negative") 86 | } 87 | return buf.String() 88 | } 89 | 90 | // Info returns color details info 91 | func (c Color) Info() string { 92 | if c&(applyForeground|applyBackground) == 0 { 93 | return "Reset" 94 | } 95 | 96 | ss := []string{} 97 | if c&applyForeground == applyForeground { 98 | if c&ForegroundBright == ForegroundBright { 99 | ss = append(ss, "ForegroundBright") 100 | } 101 | ss = append(ss, "Foreground"+cc[int(c&foregroundMask&white)]) 102 | } 103 | if c&applyBackground == applyBackground { 104 | if c&BackgroundBright == BackgroundBright { 105 | ss = append(ss, "BackgroundBright") 106 | } 107 | ss = append(ss, "Background"+cc[int(((c&backgroundMask)>>4)&white)]) 108 | } 109 | if c&Underline == Underline { 110 | ss = append(ss, "Underline") 111 | } 112 | if c&Negative == Negative { 113 | ss = append(ss, "Negative") 114 | } 115 | return strings.Join(ss, " | ") 116 | } 117 | 118 | func appendColor(s []byte, c uint8, off uint8) []byte { 119 | s = append(s, ';') 120 | n := uint64(off + c&uint8(white)) 121 | s = strconv.AppendUint(s, n, 10) 122 | return s 123 | } 124 | -------------------------------------------------------------------------------- /ctc_test.go: -------------------------------------------------------------------------------- 1 | package ctc 2 | 3 | import ( 4 | "testing" 5 | ) 6 | 7 | func TestCheck(t *testing.T) { 8 | var ( 9 | repetitionString = map[string]bool{} 10 | repetitionName = map[string]bool{} 11 | repetitionInfo = map[string]bool{} 12 | ) 13 | ForEach(func(c Color) { 14 | { 15 | s := c.String() 16 | if _, ok := repetitionString[s]; ok { 17 | t.Errorf("error %s", c.Name()) 18 | } 19 | repetitionString[s] = true 20 | } 21 | 22 | { 23 | s := c.Name() 24 | if _, ok := repetitionName[s]; ok { 25 | t.Errorf("error %s", c.Name()) 26 | } 27 | repetitionName[s] = true 28 | } 29 | 30 | { 31 | s := c.Info() 32 | if _, ok := repetitionInfo[s]; ok { 33 | t.Errorf("error %s", c.Name()) 34 | } 35 | repetitionInfo[s] = true 36 | } 37 | }) 38 | } 39 | -------------------------------------------------------------------------------- /examples/all/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "fmt" 5 | 6 | "github.com/wzshiming/ctc" 7 | ) 8 | 9 | func main() { 10 | ctc.ForEach(func(c ctc.Color) { 11 | fmt.Println(c, c.Name(), " = ", c.Info(), ctc.Reset) 12 | }) 13 | } 14 | -------------------------------------------------------------------------------- /examples/hello/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "fmt" 5 | 6 | "github.com/wzshiming/ctc" 7 | ) 8 | 9 | func main() { 10 | // No invasion 11 | fmt.Println(ctc.BackgroundRed|ctc.ForegroundBlue, "Hello world", ctc.Reset) 12 | } 13 | -------------------------------------------------------------------------------- /for_each.go: -------------------------------------------------------------------------------- 1 | package ctc 2 | 3 | var ranges = [...][3]Color{ 4 | { 5 | ForegroundBlack, 6 | ForegroundWhite | ForegroundBright, 7 | 1, 8 | }, 9 | { 10 | BackgroundBlack, 11 | BackgroundWhite | BackgroundBright, 12 | 1 << 4, 13 | }, 14 | { 15 | ForegroundBlack | BackgroundBlack, 16 | ForegroundWhite | ForegroundBright | BackgroundWhite | BackgroundBright, 17 | 1, 18 | }, 19 | } 20 | 21 | // ForEach for go through all colors 22 | func ForEach(f func(Color)) { 23 | for _, r := range ranges { 24 | for c := r[0]; c <= r[1]; c += r[2] { 25 | f(c) 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- 1 | module github.com/wzshiming/ctc 2 | 3 | go 1.13 4 | 5 | require ( 6 | github.com/wzshiming/winseq v0.0.0-20200112104235-db357dc107ae 7 | golang.org/x/sys v0.0.0-20200107162124-548cf772de50 // indirect 8 | ) 9 | -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- 1 | github.com/wzshiming/winseq v0.0.0-20200112104235-db357dc107ae h1:tpXvBXC3hpQBDCc9OojJZCQMVRAbT3TTdUMP8WguXkY= 2 | github.com/wzshiming/winseq v0.0.0-20200112104235-db357dc107ae/go.mod h1:VTAq37rkGeV+WOybvZwjXiJOicICdpLCN8ifpISjK20= 3 | golang.org/x/sys v0.0.0-20200107162124-548cf772de50 h1:YvQ10rzcqWXLlJZ3XCUoO25savxmscf4+SC+ZqiCHhA= 4 | golang.org/x/sys v0.0.0-20200107162124-548cf772de50/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 5 | --------------------------------------------------------------------------------