diff options
author | Stefan Haller <stefan@haller-berlin.de> | 2024-01-12 13:16:25 +0100 |
---|---|---|
committer | Stefan Haller <stefan@haller-berlin.de> | 2024-01-22 08:40:03 +0100 |
commit | 36134006c52269b1a80f2b42857f008b47db7e6c (patch) | |
tree | f3b7cafa13773bd43ad79465636f1a630d357ff9 | |
parent | 321583952402b3e0db9fb74482d63783f186a2d6 (diff) |
Add config setting to suppress showing file icons
-rw-r--r-- | docs/Config.md | 1 | ||||
-rw-r--r-- | pkg/config/user_config.go | 3 | ||||
-rw-r--r-- | pkg/gui/context/commit_files_context.go | 4 | ||||
-rw-r--r-- | pkg/gui/context/working_tree_context.go | 4 | ||||
-rw-r--r-- | pkg/gui/presentation/files.go | 12 | ||||
-rw-r--r-- | pkg/gui/presentation/files_test.go | 4 | ||||
-rw-r--r-- | schema/config.json | 5 |
7 files changed, 25 insertions, 8 deletions
diff --git a/docs/Config.md b/docs/Config.md index dde60382a..312fd77f2 100644 --- a/docs/Config.md +++ b/docs/Config.md @@ -79,6 +79,7 @@ gui: showCommandLog: true showIcons: false # deprecated: use nerdFontsVersion instead nerdFontsVersion: "" # nerd fonts version to use ("2" or "3"); empty means don't show nerd font icons + showFileIcons: true # for hiding file icons in the file views commandLogSize: 8 splitDiff: 'auto' # one of 'auto' | 'always' skipRewordInEditorWarning: false # for skipping the confirmation before launching the reword editor diff --git a/pkg/config/user_config.go b/pkg/config/user_config.go index e9f739a1d..0069c75b0 100644 --- a/pkg/config/user_config.go +++ b/pkg/config/user_config.go @@ -121,6 +121,8 @@ type GuiConfig struct { // One of: '2' | '3' | empty string (default) // If empty, do not show icons. 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"` // If true, show commit hashes alongside branch names in the branches view. ShowBranchCommitHash bool `yaml:"showBranchCommitHash"` // Height of the command log view @@ -635,6 +637,7 @@ func GetDefaultConfig() *UserConfig { ShowRandomTip: true, ShowIcons: false, NerdFontsVersion: "", + ShowFileIcons: true, ShowBranchCommitHash: false, CommandLogSize: 8, SplitDiff: "auto", diff --git a/pkg/gui/context/commit_files_context.go b/pkg/gui/context/commit_files_context.go index 989ca9acb..fbfff7144 100644 --- a/pkg/gui/context/commit_files_context.go +++ b/pkg/gui/context/commit_files_context.go @@ -4,6 +4,7 @@ import ( "github.com/jesseduffield/lazygit/pkg/commands/models" "github.com/jesseduffield/lazygit/pkg/gui/filetree" "github.com/jesseduffield/lazygit/pkg/gui/presentation" + "github.com/jesseduffield/lazygit/pkg/gui/presentation/icons" "github.com/jesseduffield/lazygit/pkg/gui/style" "github.com/jesseduffield/lazygit/pkg/gui/types" "github.com/samber/lo" @@ -33,7 +34,8 @@ func NewCommitFilesContext(c *ContextCommon) *CommitFilesContext { return [][]string{{style.FgRed.Sprint("(none)")}} } - lines := presentation.RenderCommitFileTree(viewModel, c.Git().Patch.PatchBuilder) + showFileIcons := icons.IsIconEnabled() && c.UserConfig.Gui.ShowFileIcons + lines := presentation.RenderCommitFileTree(viewModel, c.Git().Patch.PatchBuilder, showFileIcons) return lo.Map(lines, func(line string, _ int) []string { return []string{line} }) diff --git a/pkg/gui/context/working_tree_context.go b/pkg/gui/context/working_tree_context.go index d286e408a..f3bc91929 100644 --- a/pkg/gui/context/working_tree_context.go +++ b/pkg/gui/context/working_tree_context.go @@ -4,6 +4,7 @@ import ( "github.com/jesseduffield/lazygit/pkg/commands/models" "github.com/jesseduffield/lazygit/pkg/gui/filetree" "github.com/jesseduffield/lazygit/pkg/gui/presentation" + "github.com/jesseduffield/lazygit/pkg/gui/presentation/icons" "github.com/jesseduffield/lazygit/pkg/gui/types" "github.com/samber/lo" ) @@ -24,7 +25,8 @@ func NewWorkingTreeContext(c *ContextCommon) *WorkingTreeContext { ) getDisplayStrings := func(_ int, _ int) [][]string { - lines := presentation.RenderFileTree(viewModel, c.Model().Submodules) + showFileIcons := icons.IsIconEnabled() && c.UserConfig.Gui.ShowFileIcons + lines := presentation.RenderFileTree(viewModel, c.Model().Submodules, showFileIcons) return lo.Map(lines, func(line string, _ int) []string { return []string{line} }) diff --git a/pkg/gui/presentation/files.go b/pkg/gui/presentation/files.go index 35fc4616a..5941934c6 100644 --- a/pkg/gui/presentation/files.go +++ b/pkg/gui/presentation/files.go @@ -21,24 +21,26 @@ const ( func RenderFileTree( tree filetree.IFileTree, submoduleConfigs []*models.SubmoduleConfig, + showFileIcons bool, ) []string { collapsedPaths := tree.CollapsedPaths() return renderAux(tree.GetRoot().Raw(), collapsedPaths, -1, -1, func(node *filetree.Node[models.File], treeDepth int, visualDepth int, isCollapsed bool) string { fileNode := filetree.NewFileNode(node) - return getFileLine(isCollapsed, fileNode.GetHasUnstagedChanges(), fileNode.GetHasStagedChanges(), treeDepth, visualDepth, submoduleConfigs, node) + return getFileLine(isCollapsed, fileNode.GetHasUnstagedChanges(), fileNode.GetHasStagedChanges(), treeDepth, visualDepth, showFileIcons, submoduleConfigs, node) }) } func RenderCommitFileTree( tree *filetree.CommitFileTreeViewModel, patchBuilder *patch.PatchBuilder, + showFileIcons bool, ) []string { collapsedPaths := tree.CollapsedPaths() return renderAux(tree.GetRoot().Raw(), collapsedPaths, -1, -1, func(node *filetree.Node[models.CommitFile], treeDepth int, visualDepth int, isCollapsed bool) string { status := commitFilePatchStatus(node, tree, patchBuilder) - return getCommitFileLine(isCollapsed, treeDepth, visualDepth, node, status) + return getCommitFileLine(isCollapsed, treeDepth, visualDepth, node, status, showFileIcons) }) } @@ -109,6 +111,7 @@ func getFileLine( hasStagedChanges bool, treeDepth int, visualDepth int, + showFileIcons bool, submoduleConfigs []*models.SubmoduleConfig, node *filetree.Node[models.File], ) string { @@ -150,7 +153,7 @@ func getFileLine( isLinkedWorktree := file != nil && file.IsWorktree isDirectory := file == nil - if icons.IsIconEnabled() { + if showFileIcons { icon := icons.IconForFile(name, isSubmodule, isLinkedWorktree, isDirectory) paint := color.C256(icon.Color, false) output += paint.Sprint(icon.Icon) + nameColor.Sprint(" ") @@ -189,6 +192,7 @@ func getCommitFileLine( visualDepth int, node *filetree.Node[models.CommitFile], status patch.PatchStatus, + showFileIcons bool, ) string { indentation := strings.Repeat(" ", visualDepth) name := commitFileNameAtDepth(node, treeDepth) @@ -236,7 +240,7 @@ func getCommitFileLine( isSubmodule := false isLinkedWorktree := false - if icons.IsIconEnabled() { + if showFileIcons { icon := icons.IconForFile(name, isSubmodule, isLinkedWorktree, isDirectory) paint := color.C256(icon.Color, false) output += paint.Sprint(icon.Icon) + " " diff --git a/pkg/gui/presentation/files_test.go b/pkg/gui/presentation/files_test.go index b6b543c65..bbaa53947 100644 --- a/pkg/gui/presentation/files_test.go +++ b/pkg/gui/presentation/files_test.go @@ -74,7 +74,7 @@ M file1 for _, path := range s.collapsedPaths { viewModel.ToggleCollapsed(path) } - result := RenderFileTree(viewModel, nil) + result := RenderFileTree(viewModel, nil, false) assert.EqualValues(t, s.expected, result) }) } @@ -141,7 +141,7 @@ M file1 }, ) patchBuilder.Start("from", "to", false, false) - result := RenderCommitFileTree(viewModel, patchBuilder) + result := RenderCommitFileTree(viewModel, patchBuilder, false) assert.EqualValues(t, s.expected, result) }) } diff --git a/schema/config.json b/schema/config.json index d5131c0ff..92ee774df 100644 --- a/schema/config.json +++ b/schema/config.json @@ -304,6 +304,11 @@ ], "description": "Nerd fonts version to use.\nOne of: '2' | '3' | empty string (default)\nIf empty, do not show icons." }, + "showFileIcons": { + "type": "boolean", + "description": "If true (default), file icons are shown in the file views. Only relevant if NerdFontsVersion is not empty.", + "default": true + }, "showBranchCommitHash": { "type": "boolean", "description": "If true, show commit hashes alongside branch names in the branches view." |