diff --git a/doc/nvim-tree-lua.txt b/doc/nvim-tree-lua.txt index 920a3ac3689..32696f10999 100644 --- a/doc/nvim-tree-lua.txt +++ b/doc/nvim-tree-lua.txt @@ -793,6 +793,7 @@ Use nvim-tree in a floating window. Highlight precedence, additive: git < opened < modified < bookmarked < diagnostics < copied < cut +Neovim <= 0.8 will only show the highest. *nvim-tree.renderer.add_trailing* Appends a trailing slash to folder names. diff --git a/lua/nvim-tree/appearance.lua b/lua/nvim-tree/appearance.lua index 6cfc1221366..fd50f93ac6c 100644 --- a/lua/nvim-tree/appearance.lua +++ b/lua/nvim-tree/appearance.lua @@ -176,8 +176,15 @@ function M.setup() -- hard link override when legacy only is present for from, to in pairs(LEGACY_LINKS) do - local hl_from = vim.api.nvim_get_hl(0, { name = from }) - local hl_to = vim.api.nvim_get_hl(0, { name = to }) + local hl_from + local hl_to + if vim.fn.has "nvim-0.9" == 1 then + hl_from = vim.api.nvim_get_hl(0, { name = from }) + hl_to = vim.api.nvim_get_hl(0, { name = to }) + else + hl_from = vim.api.nvim__get_hl_defs(0)[from] or {} + hl_to = vim.api.nvim__get_hl_defs(0)[to] or {} + end if vim.tbl_isempty(hl_from) and not vim.tbl_isempty(hl_to) then vim.api.nvim_command("hi link " .. from .. " " .. to) end diff --git a/lua/nvim-tree/renderer/builder.lua b/lua/nvim-tree/renderer/builder.lua index 99f4506cd50..1fca2852733 100644 --- a/lua/nvim-tree/renderer/builder.lua +++ b/lua/nvim-tree/renderer/builder.lua @@ -295,16 +295,24 @@ function Builder:add_highlights(node) table.insert(name_groups, name) end - -- one or many icon groups + -- one or many icon groups; <= 0.8 always uses highest due to lack of a practical nvim_get_hl equivalent if #icon_groups > 1 then - icon_hl_group = self:create_combined_group(icon_groups) + if vim.fn.has "nvim-0.9" == 1 then + icon_hl_group = self:create_combined_group(icon_groups) + else + icon_hl_group = icon_groups[#icon_groups] + end else icon_hl_group = icon_groups[1] end - -- one or many name groups + -- one or many name groups; <= 0.8 always uses highest due to lack of a practical nvim_get_hl equivalent if #name_groups > 1 then - name_hl_group = self:create_combined_group(name_groups) + if vim.fn.has "nvim-0.9" == 1 then + name_hl_group = self:create_combined_group(name_groups) + else + name_hl_group = name_groups[#name_groups] + end else name_hl_group = name_groups[1] end