add small arrows before folders (#427)

This commit is contained in:
Kiyan
2021-06-02 18:45:25 +02:00
committed by GitHub
parent 45c331230c
commit d51ed722ed
4 changed files with 30 additions and 4 deletions

View File

@@ -1,7 +1,7 @@
local M = {}
function M.get_icon_state()
local show_icons = vim.g.nvim_tree_show_icons or { git = 1, folders = 1, files = 1 }
local show_icons = vim.g.nvim_tree_show_icons or { git = 1, folders = 1, files = 1, folder_arrows = 1 }
local icons = {
default = "",
symlink = "",
@@ -15,6 +15,8 @@ function M.get_icon_state()
ignored = ""
},
folder_icons = {
arrow_closed = "",
arrow_open = "",
default = "",
open = "",
empty = "",
@@ -60,6 +62,7 @@ function M.get_icon_state()
show_file_icon = show_icons.files == 1 and vim.g.nvim_web_devicons == 1,
show_folder_icon = show_icons.folders == 1,
show_git_icon = show_icons.git == 1,
show_folder_arrows = show_icons.folder_arrows == 1,
icons = icons
}
end

View File

@@ -215,6 +215,16 @@ local get_padding = function(depth)
return string.rep(' ', depth)
end
if icon_state.show_folder_icon and icon_state.show_folder_arrows then
get_padding = function(depth, _, _, node)
if node.entries then
local icon = icon_state.icons.folder_icons[node.open and 'arrow_open' or 'arrow_closed']
return string.rep(' ', depth - 2)..icon..' '
end
return string.rep(' ', depth)
end
end
if vim.g.nvim_tree_indent_markers == 1 then
get_padding = function(depth, idx, tree, _, markers)
local padding = ""
@@ -354,7 +364,9 @@ function M.draw(tree, reload)
index = 0
lines = {}
hl = {}
update_draw_data(tree, 0, {})
local show_arrows = icon_state.show_folder_icon and icon_state.show_folder_arrows
update_draw_data(tree, show_arrows and 1 or 0, {})
end
api.nvim_buf_set_option(view.View.bufnr, 'modifiable', true)