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:
committed by
Jesse Duffield
parent
c7c4a375a9
commit
4df7646654
@ -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
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user