summaryrefslogtreecommitdiff
path: root/vendor/github.com/morikuni/aec/sgr.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/morikuni/aec/sgr.go')
-rw-r--r--vendor/github.com/morikuni/aec/sgr.go202
1 files changed, 202 insertions, 0 deletions
diff --git a/vendor/github.com/morikuni/aec/sgr.go b/vendor/github.com/morikuni/aec/sgr.go
new file mode 100644
index 000000000..0ba3464e6
--- /dev/null
+++ b/vendor/github.com/morikuni/aec/sgr.go
@@ -0,0 +1,202 @@
+package aec
+
+import (
+ "fmt"
+)
+
+// RGB3Bit is a 3bit RGB color.
+type RGB3Bit uint8
+
+// RGB8Bit is a 8bit RGB color.
+type RGB8Bit uint8
+
+func newSGR(n uint) ANSI {
+ return newAnsi(fmt.Sprintf(esc+"%dm", n))
+}
+
+// NewRGB3Bit create a RGB3Bit from given RGB.
+func NewRGB3Bit(r, g, b uint8) RGB3Bit {
+ return RGB3Bit((r >> 7) | ((g >> 6) & 0x2) | ((b >> 5) & 0x4))
+}
+
+// NewRGB8Bit create a RGB8Bit from given RGB.
+func NewRGB8Bit(r, g, b uint8) RGB8Bit {
+ return RGB8Bit(16 + 36*(r/43) + 6*(g/43) + b/43)
+}
+
+// Color3BitF set the foreground color of text.
+func Color3BitF(c RGB3Bit) ANSI {
+ return newAnsi(fmt.Sprintf(esc+"%dm", c+30))
+}
+
+// Color3BitB set the background color of text.
+func Color3BitB(c RGB3Bit) ANSI {
+ return newAnsi(fmt.Sprintf(esc+"%dm", c+40))
+}
+
+// Color8BitF set the foreground color of text.
+func Color8BitF(c RGB8Bit) ANSI {
+ return newAnsi(fmt.Sprintf(esc+"38;5;%dm", c))
+}
+
+// Color8BitB set the background color of text.
+func Color8BitB(c RGB8Bit) ANSI {
+ return newAnsi(fmt.Sprintf(esc+"48;5;%dm", c))
+}
+
+// FullColorF set the foreground color of text.
+func FullColorF(r, g, b uint8) ANSI {
+ return newAnsi(fmt.Sprintf(esc+"38;2;%d;%d;%dm", r, g, b))
+}
+
+// FullColorB set the foreground color of text.
+func FullColorB(r, g, b uint8) ANSI {
+ return newAnsi(fmt.Sprintf(esc+"48;2;%d;%d;%dm", r, g, b))
+}
+
+// Style
+var (
+ // Bold set the text style to bold or increased intensity.
+ Bold ANSI
+
+ // Faint set the text style to faint.
+ Faint ANSI
+
+ // Italic set the text style to italic.
+ Italic ANSI
+
+ // Underline set the text style to underline.
+ Underline ANSI
+
+ // BlinkSlow set the text style to slow blink.
+ BlinkSlow ANSI
+
+ // BlinkRapid set the text style to rapid blink.
+ BlinkRapid ANSI
+
+ // Inverse swap the foreground color and background color.
+ Inverse ANSI
+
+ // Conceal set the text style to conceal.
+ Conceal ANSI
+
+ // CrossOut set the text style to crossed out.
+ CrossOut ANSI
+
+ // Frame set the text style to framed.
+ Frame ANSI
+
+ // Encircle set the text style to encircled.
+ Encircle ANSI
+
+ // Overline set the text style to overlined.
+ Overline ANSI
+)
+
+// Foreground color of text.
+var (
+ // DefaultF is the default color of foreground.
+ DefaultF ANSI
+
+ // Normal color
+ BlackF ANSI
+ RedF ANSI
+ GreenF ANSI
+ YellowF ANSI
+ BlueF ANSI
+ MagentaF ANSI
+ CyanF ANSI
+ WhiteF ANSI
+
+ // Light color
+ LightBlackF ANSI
+ LightRedF ANSI
+ LightGreenF ANSI
+ LightYellowF ANSI
+ LightBlueF ANSI
+ LightMagentaF ANSI
+ LightCyanF ANSI
+ LightWhiteF ANSI
+)
+
+// Background color of text.
+var (
+ // DefaultB is the default color of background.
+ DefaultB ANSI
+
+ // Normal color
+ BlackB ANSI
+ RedB ANSI
+ GreenB ANSI
+ YellowB ANSI
+ BlueB ANSI
+ MagentaB ANSI
+ CyanB ANSI
+ WhiteB ANSI
+
+ // Light color
+ LightBlackB ANSI
+ LightRedB ANSI
+ LightGreenB ANSI
+ LightYellowB ANSI
+ LightBlueB ANSI
+ LightMagentaB ANSI
+ LightCyanB ANSI
+ LightWhiteB ANSI
+)
+
+func init() {
+ Bold = newSGR(1)
+ Faint = newSGR(2)
+ Italic = newSGR(3)
+ Underline = newSGR(4)
+ BlinkSlow = newSGR(5)
+ BlinkRapid = newSGR(6)
+ Inverse = newSGR(7)
+ Conceal = newSGR(8)
+ CrossOut = newSGR(9)
+
+ BlackF = newSGR(30)
+ RedF = newSGR(31)
+ GreenF = newSGR(32)
+ YellowF = newSGR(33)
+ BlueF = newSGR(34)
+ MagentaF = newSGR(35)
+ CyanF = newSGR(36)
+ WhiteF = newSGR(37)
+
+ DefaultF = newSGR(39)
+
+ BlackB = newSGR(40)
+ RedB = newSGR(41)
+ GreenB = newSGR(42)
+ YellowB = newSGR(43)
+ BlueB = newSGR(44)
+ MagentaB = newSGR(45)
+ CyanB = newSGR(46)
+ WhiteB = newSGR(47)
+
+ DefaultB = newSGR(49)
+
+ Frame = newSGR(51)
+ Encircle = newSGR(52)
+ Overline = newSGR(53)
+
+ LightBlackF = newSGR(90)
+ LightRedF = newSGR(91)
+ LightGreenF = newSGR(92)
+ LightYellowF = newSGR(93)
+ LightBlueF = newSGR(94)
+ LightMagentaF = newSGR(95)
+ LightCyanF = newSGR(96)
+ LightWhiteF = newSGR(97)
+
+ LightBlackB = newSGR(100)
+ LightRedB = newSGR(101)
+ LightGreenB = newSGR(102)
+ LightYellowB = newSGR(103)
+ LightBlueB = newSGR(104)
+ LightMagentaB = newSGR(105)
+ LightCyanB = newSGR(106)
+ LightWhiteB = newSGR(107)
+}