fix(#2415): nvim 0.8 highlight overhaul support, limited to only show highest highlight precedence (#2642)
* fix: Add support for get_hl_defs in nvim 0.8 nvim-tree is using `nvim_get_hl` which was introduced in nvim 0.9 to replace the unstable `get_hl_defs` in the following [commit](https://github.com/neovim/neovim/pull/22693/files). Unfortunately this raises an error in 0.8 nvim versions due to the function not existing. ``` Failed to run `config` for nvim-tree.lua ...are/nvim/lazy/nvim-tree.lua/lua/nvim-tree/appearance.lua:199: attempt to call field 'nvim_get_hl' (a nil value) stacktrace: - ~/.config/nvim/lua/confidenceman02/plugins/nvim-tree.lua:14 _in_ **config** - ~/.config/nvim/lua/confidenceman02/lazy.lua:14 ``` - Fall back to get_hl_defs when detecting 0.8 - Set the 'link' property to nil to emulate `link = false` in `builder.lua` * fix(#2415): nvim 0.8 highlight overhaul support, limited to only show highest highlight precedence --------- Co-authored-by: Jaime Terreu <jaime@terreu.com> Co-authored-by: Alexander Courtis <alex@courtis.org>
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user