commit cdfae68
Hubert Hirtz
·
2020-08-21 13:22:44 +0000 UTC
parent a037655
ui: Fix color codes
1 files changed,
+18,
-36
+18,
-36
1@@ -169,44 +169,26 @@ func (cb *colorBuffer) WriteRune(r rune) (ok int) {
2 return
3 }
4
5+var ansiCodes = []tcell.Color{
6+ // Taken from <https://modern.ircdocs.horse/formatting.html>
7+ tcell.ColorWhite, tcell.ColorBlack, tcell.ColorBlue, tcell.ColorGreen,
8+ tcell.ColorRed, tcell.ColorBrown, tcell.ColorPurple, tcell.ColorOrange,
9+ tcell.ColorYellow, tcell.ColorLightGreen, tcell.ColorTeal, tcell.ColorLightCyan,
10+ tcell.ColorLightBlue, tcell.ColorPink, tcell.ColorGrey, tcell.ColorLightGrey,
11+ /* 16-27 */ 52, 94, 100, 58, 22, 29, 23, 24, 17, 54, 53, 89,
12+ /* 28-39 */ 88, 130, 142, 64, 28, 35, 30, 25, 18, 91, 90, 125,
13+ /* 40-51 */ 124, 166, 184, 106, 34, 49, 37, 33, 19, 129, 127, 161,
14+ /* 52-63 */ 196, 208, 226, 154, 46, 86, 51, 75, 21, 171, 201, 198,
15+ /* 64-75 */ 203, 215, 227, 191, 83, 122, 87, 111, 63, 177, 207, 205,
16+ /* 76-87 */ 217, 223, 229, 193, 157, 158, 159, 153, 147, 183, 219, 212,
17+ /* 88-98 */ 16, 233, 235, 237, 239, 241, 244, 247, 250, 254, 231,
18+}
19+
20 func colorFromCode(code int) (color tcell.Color) {
21- switch code {
22- case 0:
23- color = tcell.ColorWhite
24- case 1:
25- color = tcell.ColorBlack
26- case 2:
27- color = tcell.ColorBlue
28- case 3:
29- color = tcell.ColorGreen
30- case 4:
31- color = tcell.ColorRed
32- case 5:
33- color = tcell.ColorBrown
34- case 6:
35- color = tcell.ColorPurple
36- case 7:
37- color = tcell.ColorOrange
38- case 8:
39- color = tcell.ColorYellow
40- case 9:
41- color = tcell.ColorLightGreen
42- case 10:
43- color = tcell.ColorTeal
44- case 11:
45- color = tcell.ColorFuchsia
46- case 12:
47- color = tcell.ColorLightBlue
48- case 13:
49- color = tcell.ColorPink
50- case 14:
51- color = tcell.ColorGrey
52- case 15:
53- color = tcell.ColorLightGrey
54- case 99:
55+ if code < 0 || len(ansiCodes) <= code {
56 color = tcell.ColorDefault
57- default:
58- color = tcell.Color(code)
59+ } else {
60+ color = ansiCodes[code]
61 }
62 return
63 }