Skip to content

Commit ea5097a

Browse files
feat(#3113): add renderer.icons.folder_arrow_padding (#3114)
* Update padding.lua * add folder_arrow_padding * update help docs * refactor: renderer.icons.padding renderer.icons.padding -> renderer.icons.padding.icon renderer.icons.folder_arrow_padding -> renderer.icons.padding.folder_arrow * refactor: renderer.icons.padding --------- Co-authored-by: Alexander Courtis <[email protected]>
1 parent 582ae48 commit ea5097a

File tree

5 files changed

+27
-8
lines changed

5 files changed

+27
-8
lines changed

doc/nvim-tree-lua.txt

+12-3
Original file line numberDiff line numberDiff line change
@@ -462,7 +462,10 @@ Following is the default configuration. See |nvim-tree-opts| for details. >lua
462462
hidden_placement = "after",
463463
diagnostics_placement = "signcolumn",
464464
bookmarks_placement = "signcolumn",
465-
padding = " ",
465+
padding = {
466+
icon = " ",
467+
folder_arrow = " ",
468+
},
466469
symlink_arrow = " ➛ ",
467470
show = {
468471
file = true,
@@ -1065,10 +1068,14 @@ Configuration options for icons.
10651068
Bookmark icon placement.
10661069
Type: `string`, Default: `signcolumn`
10671070

1068-
*nvim-tree.renderer.icons.padding*
1071+
*nvim-tree.renderer.icons.padding.icon*
10691072
Inserted between icon and filename.
10701073
Type: `string`, Default: `" "`
10711074

1075+
*nvim-tree.renderer.icons.padding.folder_arrow*
1076+
Inserted between folder arrow icon and file/folder icon.
1077+
Type: `string`, Default: `" "`
1078+
10721079
*nvim-tree.renderer.icons.symlink_arrow*
10731080
Used as a separator between symlinks' source and target.
10741081
Type: `string`, Default: `" ➛ "`
@@ -3027,6 +3034,7 @@ needed.
30273034
`sort_by` |nvim-tree.sort.sorter|
30283035
`git.ignore` |nvim-tree.filters.git_ignored|
30293036
`renderer.icons.webdev_colors` |nvim-tree.renderer.icons.web_devicons.file.color|
3037+
`renderer.icons.padding` |nvim-tree.renderer.icons.padding.icon|
30303038

30313039
==============================================================================
30323040
14.2 LEGACY: HIGHLIGHT *nvim-tree-legacy-highlight*
@@ -3183,7 +3191,8 @@ highlight group is not, hard linking as follows: >
31833191
|nvim-tree.renderer.icons.glyphs.symlink|
31843192
|nvim-tree.renderer.icons.hidden_placement|
31853193
|nvim-tree.renderer.icons.modified_placement|
3186-
|nvim-tree.renderer.icons.padding|
3194+
|nvim-tree.renderer.icons.padding.folder_arrow|
3195+
|nvim-tree.renderer.icons.padding.icon|
31873196
|nvim-tree.renderer.icons.show|
31883197
|nvim-tree.renderer.icons.show.bookmarks|
31893198
|nvim-tree.renderer.icons.show.diagnostics|

lua/nvim-tree.lua

+4-1
Original file line numberDiff line numberDiff line change
@@ -334,7 +334,10 @@ local DEFAULT_OPTS = { -- BEGIN_DEFAULT_OPTS
334334
hidden_placement = "after",
335335
diagnostics_placement = "signcolumn",
336336
bookmarks_placement = "signcolumn",
337-
padding = " ",
337+
padding = {
338+
icon = " ",
339+
folder_arrow = " ",
340+
},
338341
symlink_arrow = "",
339342
show = {
340343
file = true,

lua/nvim-tree/legacy.lua

+7
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,13 @@ local function refactored(opts)
6060
end
6161
end
6262
utils.move_missing_val(opts, "update_focused_file", "ignore_list", opts, "update_focused_file.update_root", "ignore_list", true)
63+
64+
-- 2025/04/30
65+
if opts.renderer and opts.renderer.icons and type(opts.renderer.icons.padding) == "string" then
66+
local icons_padding = opts.renderer.icons.padding
67+
opts.renderer.icons.padding = {}
68+
opts.renderer.icons.padding.icon = icons_padding
69+
end
6370
end
6471

6572
local function deprecated(opts)

lua/nvim-tree/renderer/builder.lua

+1-1
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ function Builder:format_line(indent_markers, arrows, icon, name, node)
140140
end
141141
for _, v in ipairs(t2) do
142142
if added_len > 0 then
143-
table.insert(t1, { str = self.explorer.opts.renderer.icons.padding })
143+
table.insert(t1, { str = self.explorer.opts.renderer.icons.padding.icon })
144144
end
145145
table.insert(t1, v)
146146
end

lua/nvim-tree/renderer/components/padding.lua

+3-3
Original file line numberDiff line numberDiff line change
@@ -95,15 +95,15 @@ function M.get_arrows(node)
9595
local dir = node:as(DirectoryNode)
9696
if dir then
9797
if dir.open then
98-
str = M.config.icons.glyphs.folder["arrow_open"] .. " "
98+
str = M.config.icons.glyphs.folder["arrow_open"] .. M.config.icons.padding.folder_arrow
9999
hl = "NvimTreeFolderArrowOpen"
100100
else
101-
str = M.config.icons.glyphs.folder["arrow_closed"] .. " "
101+
str = M.config.icons.glyphs.folder["arrow_closed"] .. M.config.icons.padding.folder_arrow
102102
end
103103
elseif M.config.indent_markers.enable then
104104
str = ""
105105
else
106-
str = " "
106+
str = " " .. string.rep(" ", #M.config.icons.padding.folder_arrow)
107107
end
108108

109109
return { str = str, hl = { hl } }

0 commit comments

Comments
 (0)