From f3dbddf8b3fbd5de7c8838eafc1b3b72cd30c73e Mon Sep 17 00:00:00 2001 From: Eden Lentz <89853978+qtyosaf@users.noreply.github.com> Date: Sat, 15 Apr 2023 01:24:50 -0400 Subject: [PATCH] feat(renderer): add NvimTreeSymlinkFolderName (#2000) * Added FolderSymlink color that is applied in builder.lua * changed highlight names and links, changed folder build function * remove NvimTreeSymlinkFolderName --------- Co-authored-by: Alexander Courtis --- doc/nvim-tree-lua.txt | 1 + lua/nvim-tree/colors.lua | 1 + lua/nvim-tree/renderer/builder.lua | 15 ++++++++------- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/doc/nvim-tree-lua.txt b/doc/nvim-tree-lua.txt index e08084e6..50bb62a3 100644 --- a/doc/nvim-tree-lua.txt +++ b/doc/nvim-tree-lua.txt @@ -1911,6 +1911,7 @@ as per |:highlight| Default linked group follows name. NvimTreeSymlink +NvimTreeSymlinkFolderName (Directory) NvimTreeFolderName (Directory) NvimTreeRootFolder NvimTreeFolderIcon diff --git a/lua/nvim-tree/colors.lua b/lua/nvim-tree/colors.lua index 4bad006f..c7b92dd1 100644 --- a/lua/nvim-tree/colors.lua +++ b/lua/nvim-tree/colors.lua @@ -62,6 +62,7 @@ local function get_links() FolderName = "Directory", EmptyFolderName = "Directory", OpenedFolderName = "Directory", + SymlinkFolderName = "Directory", OpenedFolderIcon = "NvimTreeFolderIcon", ClosedFolderIcon = "NvimTreeFolderIcon", Normal = "Normal", diff --git a/lua/nvim-tree/renderer/builder.lua b/lua/nvim-tree/renderer/builder.lua index 03ce3585..04e0ec48 100644 --- a/lua/nvim-tree/renderer/builder.lua +++ b/lua/nvim-tree/renderer/builder.lua @@ -131,13 +131,7 @@ end function Builder:_build_folder(node) local has_children = #node.nodes ~= 0 or node.has_children local icon = icons.get_folder_icon(node.open, node.link_to ~= nil, has_children) - local foldername = get_folder_name(node) .. self.trailing_slash - if node.link_to and self.symlink_destination then - local arrow = icons.i.symlink_arrow - local link_to = utils.path_relative(node.link_to, core.get_cwd()) - foldername = foldername .. arrow .. link_to - end local icon_hl if #icon > 0 then @@ -149,7 +143,14 @@ function Builder:_build_folder(node) end local foldername_hl = "NvimTreeFolderName" - if vim.tbl_contains(self.special_files, node.absolute_path) or vim.tbl_contains(self.special_files, node.name) then + if node.link_to and self.symlink_destination then + local arrow = icons.i.symlink_arrow + local link_to = utils.path_relative(node.link_to, core.get_cwd()) + foldername = foldername .. arrow .. link_to + foldername_hl = "NvimTreeSymlinkFolderName" + elseif + vim.tbl_contains(self.special_files, node.absolute_path) or vim.tbl_contains(self.special_files, node.name) + then foldername_hl = "NvimTreeSpecialFolderName" elseif node.open then foldername_hl = "NvimTreeOpenedFolderName"