mirror of
https://github.com/jesseduffield/lazygit.git
synced 2024-12-14 11:23:09 +02:00
46 lines
1.2 KiB
Go
46 lines
1.2 KiB
Go
|
package theme
|
||
|
|
||
|
import (
|
||
|
"github.com/gookit/color"
|
||
|
"github.com/jesseduffield/gocui"
|
||
|
"github.com/jesseduffield/lazygit/pkg/utils"
|
||
|
)
|
||
|
|
||
|
var gocuiColorMap = map[string]gocui.Attribute{
|
||
|
"default": gocui.ColorDefault,
|
||
|
"black": gocui.ColorBlack,
|
||
|
"red": gocui.ColorRed,
|
||
|
"green": gocui.ColorGreen,
|
||
|
"yellow": gocui.ColorYellow,
|
||
|
"blue": gocui.ColorBlue,
|
||
|
"magenta": gocui.ColorMagenta,
|
||
|
"cyan": gocui.ColorCyan,
|
||
|
"white": gocui.ColorWhite,
|
||
|
"bold": gocui.AttrBold,
|
||
|
"reverse": gocui.AttrReverse,
|
||
|
"underline": gocui.AttrUnderline,
|
||
|
}
|
||
|
|
||
|
// GetAttribute gets the gocui color attribute from the string
|
||
|
func GetGocuiAttribute(key string) gocui.Attribute {
|
||
|
if utils.IsValidHexValue(key) {
|
||
|
values := color.HEX(key).Values()
|
||
|
return gocui.NewRGBColor(int32(values[0]), int32(values[1]), int32(values[2]))
|
||
|
}
|
||
|
|
||
|
value, present := gocuiColorMap[key]
|
||
|
if present {
|
||
|
return value
|
||
|
}
|
||
|
return gocui.ColorWhite
|
||
|
}
|
||
|
|
||
|
// GetGocuiStyle bitwise OR's a list of attributes obtained via the given keys
|
||
|
func GetGocuiStyle(keys []string) gocui.Attribute {
|
||
|
var attribute gocui.Attribute
|
||
|
for _, key := range keys {
|
||
|
attribute |= GetGocuiAttribute(key)
|
||
|
}
|
||
|
return attribute
|
||
|
}
|