1 -- | ANSI escape sequences.
3 -- This is a stripped-down version of the parts of the @ansi-terminal@ package
6 -- See: <https://gist.github.com/fnky/458719343aabd01cfb17a3a4f7296797>
12 -- | Render a single numeric SGR sequence.
13 rawSGR
:: Int -> String
14 rawSGR code
= "\x1b[" <> show code
<> "m"
16 -- | Render a series of `SGR` escape sequences.
17 setSGR
:: [SGR
] -> String
18 setSGR
= concat . map renderSGR
20 -- | All of the SGR sequences we want to use.
63 -- Render a single `SGR` sequence.
64 renderSGR
:: SGR
-> String
86 OnMagenta
-> rawSGR
45
89 OnDefault
-> rawSGR
49
90 BrightBlack
-> rawSGR
90
91 BrightRed
-> rawSGR
91
92 BrightGreen
-> rawSGR
92
93 BrightYellow
-> rawSGR
93
94 BrightBlue
-> rawSGR
94
95 BrightMagenta
-> rawSGR
95
96 BrightCyan
-> rawSGR
96
97 BrightWhite
-> rawSGR
97
98 OnBrightBlack
-> rawSGR
100
99 OnBrightRed
-> rawSGR
101
100 OnBrightGreen
-> rawSGR
102
101 OnBrightYellow
-> rawSGR
103
102 OnBrightBlue
-> rawSGR
104
103 OnBrightMagenta
-> rawSGR
105
104 OnBrightCyan
-> rawSGR
106
105 OnBrightWhite
-> rawSGR
107