diff options
author | anikiforov <art.nikiforov@gmail.com> | 2024-05-19 16:07:27 +0400 |
---|---|---|
committer | anikiforov <art.nikiforov@gmail.com> | 2024-06-15 10:39:50 +0400 |
commit | 57f9493770f91c573bdf0f4aecf034755acbf7e8 (patch) | |
tree | f7daa6c38743234665b1e1489131f9bb76364695 /pkg | |
parent | 629b7ba1b8f634c26adad43ffe44ed601d652f0c (diff) |
Add user config gui.commitAuthorFormat
Diffstat (limited to 'pkg')
-rw-r--r-- | pkg/config/user_config.go | 5 | ||||
-rw-r--r-- | pkg/config/user_config_validation.go | 5 | ||||
-rw-r--r-- | pkg/gui/presentation/commits.go | 9 |
3 files changed, 17 insertions, 2 deletions
diff --git a/pkg/config/user_config.go b/pkg/config/user_config.go index c8895710e..47fbe2eea 100644 --- a/pkg/config/user_config.go +++ b/pkg/config/user_config.go @@ -125,6 +125,10 @@ type GuiConfig struct { NerdFontsVersion string `yaml:"nerdFontsVersion" jsonschema:"enum=2,enum=3,enum="` // If true (default), file icons are shown in the file views. Only relevant if NerdFontsVersion is not empty. ShowFileIcons bool `yaml:"showFileIcons"` + // Whether to show full author names or their shortened form in the commit graph. + // One of 'auto' (default) | 'full' | 'short' + // If 'auto', initials will be shown in small windows, and full names - in larger ones. + CommitAuthorFormat string `yaml:"commitAuthorFormat" jsonschema:"enum=auto,enum=short,enum=full"` // Length of commit hash in commits view. 0 shows '*' if NF icons aren't on. CommitHashLength int `yaml:"commitHashLength" jsonschema:"minimum=0"` // If true, show commit hashes alongside branch names in the branches view. @@ -676,6 +680,7 @@ func GetDefaultConfig() *UserConfig { UnstagedChangesColor: []string{"red"}, DefaultFgColor: []string{"default"}, }, + CommitAuthorFormat: "auto", CommitLength: CommitLengthConfig{Show: true}, SkipNoStagedFilesWarning: false, ShowListFooter: true, diff --git a/pkg/config/user_config_validation.go b/pkg/config/user_config_validation.go index 403119ada..ed248fc44 100644 --- a/pkg/config/user_config_validation.go +++ b/pkg/config/user_config_validation.go @@ -7,6 +7,11 @@ import ( ) func (config *UserConfig) Validate() error { + if err := validateEnum("gui.commitAuthorFormat", config.Gui.CommitAuthorFormat, + []string{"auto", "short", "full"}); err != nil { + return err + } + if err := validateEnum("gui.statusPanelView", config.Gui.StatusPanelView, []string{"dashboard", "allBranchesLog"}); err != nil { return err diff --git a/pkg/gui/presentation/commits.go b/pkg/gui/presentation/commits.go index c385d3407..d8e1a45ce 100644 --- a/pkg/gui/presentation/commits.go +++ b/pkg/gui/presentation/commits.go @@ -440,9 +440,14 @@ func displayCommit( mark = fmt.Sprintf("%s ", willBeRebased) } - authorFunc := authors.ShortAuthor - if fullDescription { + var authorFunc func(string) string + switch common.UserConfig.Gui.CommitAuthorFormat { + case "short": + authorFunc = authors.ShortAuthor + case "full": authorFunc = authors.LongAuthor + default: + authorFunc = lo.Ternary(fullDescription, authors.LongAuthor, authors.ShortAuthor) } cols := make([]string, 0, 7) |