1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-02-09 13:47:11 +02:00

support user-configurable author colours

This commit is contained in:
Jesse Duffield 2021-10-30 18:00:28 +11:00
parent c96496c3a7
commit c47c539e12
4 changed files with 15 additions and 0 deletions

View File

@ -50,6 +50,8 @@ gui:
showRandomTip: true
showCommandLog: true
commandLogSize: 8
authorColors: # in case you're not happy with the randomly assigned colour
'John Smith': '#ff0000'
git:
paging:
colorArg: always

View File

@ -24,6 +24,7 @@ type RefresherConfig struct {
}
type GuiConfig struct {
AuthorColors map[string]string `yaml:"authorColors"`
ScrollHeight int `yaml:"scrollHeight"`
ScrollPastBottom bool `yaml:"scrollPastBottom"`
MouseEvents bool `yaml:"mouseEvents"`

View File

@ -22,6 +22,7 @@ import (
"github.com/jesseduffield/lazygit/pkg/gui/modes/cherrypicking"
"github.com/jesseduffield/lazygit/pkg/gui/modes/diffing"
"github.com/jesseduffield/lazygit/pkg/gui/modes/filtering"
"github.com/jesseduffield/lazygit/pkg/gui/presentation/authors"
"github.com/jesseduffield/lazygit/pkg/gui/style"
"github.com/jesseduffield/lazygit/pkg/gui/types"
"github.com/jesseduffield/lazygit/pkg/i18n"
@ -452,6 +453,8 @@ func NewGui(log *logrus.Entry, gitCommand *commands.GitCommand, oSCommand *oscom
oSCommand.SetOnRunCommand(onRunCommand)
gui.OnRunCommand = onRunCommand
authors.SetCustomAuthors(gui.Config.GetUserConfig().Gui.AuthorColors)
return gui, nil
}

View File

@ -11,6 +11,8 @@ import (
"github.com/mattn/go-runewidth"
)
// if these being global variables causes trouble we can wrap them in a struct
// attached to the gui state.
var authorInitialCache = make(map[string]string)
var authorNameCache = make(map[string]string)
var authorStyleCache = make(map[string]style.TextStyle)
@ -101,3 +103,10 @@ func getFirstRune(str string) rune {
// should never land here
return 0
}
func SetCustomAuthors(customAuthorColors map[string]string) {
for authorName, colorSequence := range customAuthorColors {
style := style.New().SetFg(style.NewRGBColor(color.HEX(colorSequence, false)))
authorStyleCache[authorName] = style
}
}