mirror of
https://github.com/MichaelMure/git-bug.git
synced 2024-12-15 02:01:43 +03:00
bug: rename RGBA to Color
This commit is contained in:
parent
d0d9ea56b9
commit
75004e1298
@ -576,7 +576,7 @@ func (ge *githubExporter) getOrCreateGithubLabelID(ctx context.Context, gc *gith
|
|||||||
}
|
}
|
||||||
|
|
||||||
// RGBA to hex color
|
// RGBA to hex color
|
||||||
rgba := label.RGBA()
|
rgba := label.Color().RGBA()
|
||||||
hexColor := fmt.Sprintf("%.2x%.2x%.2x", rgba.R, rgba.G, rgba.B)
|
hexColor := fmt.Sprintf("%.2x%.2x%.2x", rgba.R, rgba.G, rgba.B)
|
||||||
|
|
||||||
ctx, cancel := context.WithTimeout(ctx, defaultTimeout)
|
ctx, cancel := context.WithTimeout(ctx, defaultTimeout)
|
||||||
|
69
bug/label.go
69
bug/label.go
@ -15,32 +15,34 @@ func (l Label) String() string {
|
|||||||
return string(l)
|
return string(l)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type LabelColor color.RGBA
|
||||||
|
|
||||||
// RGBA from a Label computed in a deterministic way
|
// RGBA from a Label computed in a deterministic way
|
||||||
func (l Label) RGBA() color.RGBA {
|
func (l Label) Color() LabelColor {
|
||||||
id := 0
|
id := 0
|
||||||
hash := sha1.Sum([]byte(l))
|
hash := sha1.Sum([]byte(l))
|
||||||
|
|
||||||
// colors from: https://material-ui.com/style/color/
|
// colors from: https://material-ui.com/style/color/
|
||||||
colors := []color.RGBA{
|
colors := []LabelColor{
|
||||||
color.RGBA{R: 244, G: 67, B: 54, A: 255}, // red
|
LabelColor{R: 244, G: 67, B: 54, A: 255}, // red
|
||||||
color.RGBA{R: 233, G: 30, B: 99, A: 255}, // pink
|
LabelColor{R: 233, G: 30, B: 99, A: 255}, // pink
|
||||||
color.RGBA{R: 156, G: 39, B: 176, A: 255}, // purple
|
LabelColor{R: 156, G: 39, B: 176, A: 255}, // purple
|
||||||
color.RGBA{R: 103, G: 58, B: 183, A: 255}, // deepPurple
|
LabelColor{R: 103, G: 58, B: 183, A: 255}, // deepPurple
|
||||||
color.RGBA{R: 63, G: 81, B: 181, A: 255}, // indigo
|
LabelColor{R: 63, G: 81, B: 181, A: 255}, // indigo
|
||||||
color.RGBA{R: 33, G: 150, B: 243, A: 255}, // blue
|
LabelColor{R: 33, G: 150, B: 243, A: 255}, // blue
|
||||||
color.RGBA{R: 3, G: 169, B: 244, A: 255}, // lightBlue
|
LabelColor{R: 3, G: 169, B: 244, A: 255}, // lightBlue
|
||||||
color.RGBA{R: 0, G: 188, B: 212, A: 255}, // cyan
|
LabelColor{R: 0, G: 188, B: 212, A: 255}, // cyan
|
||||||
color.RGBA{R: 0, G: 150, B: 136, A: 255}, // teal
|
LabelColor{R: 0, G: 150, B: 136, A: 255}, // teal
|
||||||
color.RGBA{R: 76, G: 175, B: 80, A: 255}, // green
|
LabelColor{R: 76, G: 175, B: 80, A: 255}, // green
|
||||||
color.RGBA{R: 139, G: 195, B: 74, A: 255}, // lightGreen
|
LabelColor{R: 139, G: 195, B: 74, A: 255}, // lightGreen
|
||||||
color.RGBA{R: 205, G: 220, B: 57, A: 255}, // lime
|
LabelColor{R: 205, G: 220, B: 57, A: 255}, // lime
|
||||||
color.RGBA{R: 255, G: 235, B: 59, A: 255}, // yellow
|
LabelColor{R: 255, G: 235, B: 59, A: 255}, // yellow
|
||||||
color.RGBA{R: 255, G: 193, B: 7, A: 255}, // amber
|
LabelColor{R: 255, G: 193, B: 7, A: 255}, // amber
|
||||||
color.RGBA{R: 255, G: 152, B: 0, A: 255}, // orange
|
LabelColor{R: 255, G: 152, B: 0, A: 255}, // orange
|
||||||
color.RGBA{R: 255, G: 87, B: 34, A: 255}, // deepOrange
|
LabelColor{R: 255, G: 87, B: 34, A: 255}, // deepOrange
|
||||||
color.RGBA{R: 121, G: 85, B: 72, A: 255}, // brown
|
LabelColor{R: 121, G: 85, B: 72, A: 255}, // brown
|
||||||
color.RGBA{R: 158, G: 158, B: 158, A: 255}, // grey
|
LabelColor{R: 158, G: 158, B: 158, A: 255}, // grey
|
||||||
color.RGBA{R: 96, G: 125, B: 139, A: 255}, // blueGrey
|
LabelColor{R: 96, G: 125, B: 139, A: 255}, // blueGrey
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, char := range hash {
|
for _, char := range hash {
|
||||||
@ -50,15 +52,26 @@ func (l Label) RGBA() color.RGBA {
|
|||||||
return colors[id]
|
return colors[id]
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l Label) Term256() int {
|
func (lc LabelColor) RGBA() color.RGBA {
|
||||||
rgba := l.RGBA()
|
return color.RGBA(lc)
|
||||||
red := int(rgba.R) * 6 / 256
|
}
|
||||||
green := int(rgba.G) * 6 / 256
|
|
||||||
blue := int(rgba.B) * 6 / 256
|
|
||||||
|
|
||||||
color256 := red*36 + green*6 + blue + 16
|
type Term256 int
|
||||||
|
|
||||||
return color256
|
func (lc LabelColor) Term256() Term256 {
|
||||||
|
red := Term256(lc.R) * 6 / 256
|
||||||
|
green := Term256(lc.G) * 6 / 256
|
||||||
|
blue := Term256(lc.B) * 6 / 256
|
||||||
|
|
||||||
|
return red*36 + green*6 + blue + 16
|
||||||
|
}
|
||||||
|
|
||||||
|
func (t Term256) Escape() string {
|
||||||
|
return fmt.Sprintf("\x1b[38;5;%dm", t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (t Term256) Unescape() string {
|
||||||
|
return "\x1b[0m"
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l Label) Validate() error {
|
func (l Label) Validate() error {
|
||||||
|
@ -19,7 +19,7 @@ func (labelResolver) Name(ctx context.Context, obj *bug.Label) (string, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (labelResolver) Color(ctx context.Context, obj *bug.Label) (*color.RGBA, error) {
|
func (labelResolver) Color(ctx context.Context, obj *bug.Label) (*color.RGBA, error) {
|
||||||
rgba := obj.RGBA()
|
rgba := obj.Color().RGBA()
|
||||||
return &rgba, nil
|
return &rgba, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -127,7 +127,12 @@ func (ls *labelSelect) layout(g *gocui.Gui) error {
|
|||||||
if ls.labelSelect[i] {
|
if ls.labelSelect[i] {
|
||||||
selectBox = " [x] "
|
selectBox = " [x] "
|
||||||
}
|
}
|
||||||
fmt.Fprint(v, selectBox, label)
|
|
||||||
|
lc := label.Color()
|
||||||
|
lc256 := lc.Term256()
|
||||||
|
labelStr := lc256.Escape() + "◼ " + lc256.Unescape() + label.String()
|
||||||
|
fmt.Fprint(v, selectBox, labelStr)
|
||||||
|
|
||||||
y0 += 2
|
y0 += 2
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -429,8 +429,9 @@ func (sb *showBug) renderSidebar(g *gocui.Gui, sideView *gocui.View) error {
|
|||||||
|
|
||||||
labelStr := make([]string, len(snap.Labels))
|
labelStr := make([]string, len(snap.Labels))
|
||||||
for i, l := range snap.Labels {
|
for i, l := range snap.Labels {
|
||||||
color256 := l.Term256()
|
lc := l.Color()
|
||||||
labelStr[i] = fmt.Sprintf("\x1b[38;5;%dm◼\x1b[0m %s", color256, string(l))
|
lc256 := lc.Term256()
|
||||||
|
labelStr[i] = lc256.Escape() + "◼ " + lc256.Unescape() + l.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
labels := strings.Join(labelStr, "\n")
|
labels := strings.Join(labelStr, "\n")
|
||||||
|
Loading…
Reference in New Issue
Block a user