mirror of
https://github.com/jesseduffield/lazygit.git
synced 2026-08-24 10:13:41 -05:00
I copied all files except dot files (.github and .gitignore), the _examples folder, and go.mod/go.sum. At some point we may want to copy the files back to the gocui repo when other clients (e.g. lazydocker) want to use the newer versions of them.
46 lines
1.2 KiB
Go
46 lines
1.2 KiB
Go
package theme
|
|
|
|
import (
|
|
"github.com/gookit/color"
|
|
"github.com/jesseduffield/lazygit/pkg/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,
|
|
}
|
|
|
|
// GetGocuiAttribute 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
|
|
}
|