summaryrefslogtreecommitdiffstats
path: root/pkg
diff options
context:
space:
mode:
authoranikiforov <art.nikiforov@gmail.com>2024-05-19 16:07:27 +0400
committeranikiforov <art.nikiforov@gmail.com>2024-06-15 10:39:50 +0400
commit57f9493770f91c573bdf0f4aecf034755acbf7e8 (patch)
treef7daa6c38743234665b1e1489131f9bb76364695 /pkg
parent629b7ba1b8f634c26adad43ffe44ed601d652f0c (diff)
Add user config gui.commitAuthorFormat
Diffstat (limited to 'pkg')
-rw-r--r--pkg/config/user_config.go5
-rw-r--r--pkg/config/user_config_validation.go5
-rw-r--r--pkg/gui/presentation/commits.go9
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)