1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-07-30 03:23:08 +03:00

Add configurable colors for branch prefixes

Branches can now be colored based on their prefix, if it matches
a user defined prefix in the config file. If no user defined
prefix matches, then it will fallback to the defaults: green for
'feature', yellow for 'bugfix', and red for 'hotfix'. All
remaining branches will be set to the default text color.
This commit is contained in:
Matt Cles
2022-01-28 21:23:57 -08:00
committed by Jesse Duffield
parent c7c4a375a9
commit 4df7646654
4 changed files with 27 additions and 0 deletions

View File

@ -4,11 +4,14 @@ import (
"fmt"
"strings"
"github.com/gookit/color"
"github.com/jesseduffield/lazygit/pkg/commands/models"
"github.com/jesseduffield/lazygit/pkg/gui/style"
"github.com/jesseduffield/lazygit/pkg/theme"
)
var branchPrefixColors = make(map[string]style.TextStyle)
func GetBranchListDisplayStrings(branches []*models.Branch, fullDescription bool, diffName string) [][]string {
lines := make([][]string, len(branches))
@ -58,6 +61,10 @@ func getBranchDisplayStrings(b *models.Branch, fullDescription bool, diffed bool
func GetBranchTextStyle(name string) style.TextStyle {
branchType := strings.Split(name, "/")[0]
if value, ok := branchPrefixColors[branchType]; ok {
return value
}
switch branchType {
case "feature":
return style.FgGreen
@ -84,3 +91,10 @@ func ColoredBranchStatus(branch *models.Branch) string {
func BranchStatus(branch *models.Branch) string {
return fmt.Sprintf("↑%s↓%s", branch.Pushables, branch.Pullables)
}
func SetCustomBranchColors(customBranchColors map[string]string) {
for branchPrefix, colorSequence := range customBranchColors {
style := style.New().SetFg(style.NewRGBColor(color.HEX(colorSequence, false)))
branchPrefixColors[branchPrefix] = style
}
}