committed by
GitHub
parent
cff5a106b2
commit
cdbc210d92
@@ -151,6 +151,9 @@ require'nvim-tree'.setup { -- BEGIN_DEFAULT_OPTS
|
|||||||
none = " ",
|
none = " ",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
icons = {
|
||||||
|
webdev_colors = true,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
hijack_directories = {
|
hijack_directories = {
|
||||||
enable = true,
|
enable = true,
|
||||||
|
|||||||
@@ -120,6 +120,9 @@ function.
|
|||||||
none = " ",
|
none = " ",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
icons = {
|
||||||
|
webdev_colors = true,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
hijack_directories = {
|
hijack_directories = {
|
||||||
enable = true,
|
enable = true,
|
||||||
@@ -433,6 +436,12 @@ Here is a list of the options available in the setup call:
|
|||||||
type: `table`
|
type: `table`
|
||||||
default: `{ corner = "└ ", edge = "│ ", none = " ", }`
|
default: `{ corner = "└ ", edge = "│ ", none = " ", }`
|
||||||
|
|
||||||
|
- |renderer.icons|: configuration options for icons
|
||||||
|
|
||||||
|
- |renderer.icons.webdev_colors|: use the webdev icon colors, otherwise `NvimTreeFileIcon`.
|
||||||
|
type: `boolean`
|
||||||
|
default: `true`
|
||||||
|
|
||||||
*nvim-tree.filters*
|
*nvim-tree.filters*
|
||||||
|filters|: filtering options
|
|filters|: filtering options
|
||||||
|
|
||||||
|
|||||||
@@ -345,6 +345,9 @@ local DEFAULT_OPTS = { -- BEGIN_DEFAULT_OPTS
|
|||||||
none = " ",
|
none = " ",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
icons = {
|
||||||
|
webdev_colors = true,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
hijack_directories = {
|
hijack_directories = {
|
||||||
enable = true,
|
enable = true,
|
||||||
|
|||||||
@@ -9,12 +9,15 @@ local core = require "nvim-tree.core"
|
|||||||
|
|
||||||
local api = vim.api
|
local api = vim.api
|
||||||
|
|
||||||
|
local M = {}
|
||||||
|
|
||||||
local lines = {}
|
local lines = {}
|
||||||
local hl = {}
|
local hl = {}
|
||||||
local index = 0
|
local index = 0
|
||||||
local namespace_id = api.nvim_create_namespace "NvimTreeHighlights"
|
local namespace_id = api.nvim_create_namespace "NvimTreeHighlights"
|
||||||
|
|
||||||
local icon_state = _icons.get_config()
|
local icon_state = _icons.get_config()
|
||||||
|
local web_devicons = icon_state.has_devicons and require "nvim-web-devicons" or nil
|
||||||
|
|
||||||
local should_hl_opened_files = (vim.g.nvim_tree_highlight_opened_files or 0) ~= 0
|
local should_hl_opened_files = (vim.g.nvim_tree_highlight_opened_files or 0) ~= 0
|
||||||
|
|
||||||
@@ -63,13 +66,21 @@ end
|
|||||||
local get_file_icon = function()
|
local get_file_icon = function()
|
||||||
return ""
|
return ""
|
||||||
end
|
end
|
||||||
if icon_state.show_file_icon then
|
|
||||||
if icon_state.has_devicons then
|
|
||||||
local web_devicons = require "nvim-web-devicons"
|
|
||||||
|
|
||||||
get_file_icon = function(fname, extension, line, depth)
|
local get_file_icon_default = function(_, _, line, depth)
|
||||||
|
local hl_group = "NvimTreeFileIcon"
|
||||||
|
local icon = icon_state.icons.default
|
||||||
|
if #icon > 0 then
|
||||||
|
table.insert(hl, { hl_group, line, depth, depth + #icon + 1 })
|
||||||
|
end
|
||||||
|
return #icon > 0 and icon .. icon_padding or ""
|
||||||
|
end
|
||||||
|
|
||||||
|
local get_file_icon_webdev = function(fname, extension, line, depth)
|
||||||
local icon, hl_group = web_devicons.get_icon(fname, extension)
|
local icon, hl_group = web_devicons.get_icon(fname, extension)
|
||||||
|
if not M.config.icons.webdev_colors then
|
||||||
|
hl_group = "NvimTreeFileIcon"
|
||||||
|
end
|
||||||
if icon and hl_group ~= "DevIconDefault" then
|
if icon and hl_group ~= "DevIconDefault" then
|
||||||
if hl_group then
|
if hl_group then
|
||||||
table.insert(hl, { hl_group, line, depth, depth + #icon + 1 })
|
table.insert(hl, { hl_group, line, depth, depth + #icon + 1 })
|
||||||
@@ -79,18 +90,15 @@ if icon_state.show_file_icon then
|
|||||||
-- If there are more extensions to the file, try to grab the icon for them recursively
|
-- If there are more extensions to the file, try to grab the icon for them recursively
|
||||||
return get_file_icon(fname, string.match(extension, "%.(.*)"), line, depth)
|
return get_file_icon(fname, string.match(extension, "%.(.*)"), line, depth)
|
||||||
else
|
else
|
||||||
return #icon_state.icons.default > 0 and icon_state.icons.default .. icon_padding or ""
|
return get_file_icon_default(fname, extension, line, depth)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if icon_state.show_file_icon then
|
||||||
|
if web_devicons then
|
||||||
|
get_file_icon = get_file_icon_webdev
|
||||||
else
|
else
|
||||||
get_file_icon = function(_, _, line, depth)
|
get_file_icon = get_file_icon_default
|
||||||
local hl_group = "NvimTreeFileIcon"
|
|
||||||
local icon = icon_state.icons.default
|
|
||||||
if #icon > 0 then
|
|
||||||
table.insert(hl, { hl_group, line, depth, depth + #icon + 1 })
|
|
||||||
end
|
|
||||||
return #icon > 0 and icon .. icon_padding or ""
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -224,8 +232,6 @@ local function update_draw_data(tree, depth, markers)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local M = {}
|
|
||||||
|
|
||||||
local function compute_header()
|
local function compute_header()
|
||||||
if view.is_root_folder_visible(core.get_cwd()) then
|
if view.is_root_folder_visible(core.get_cwd()) then
|
||||||
local root_folder_modifier = vim.g.nvim_tree_root_folder_modifier or ":~"
|
local root_folder_modifier = vim.g.nvim_tree_root_folder_modifier or ":~"
|
||||||
@@ -292,6 +298,7 @@ end
|
|||||||
function M.setup(opts)
|
function M.setup(opts)
|
||||||
M.config = {
|
M.config = {
|
||||||
indent_markers = opts.renderer.indent_markers,
|
indent_markers = opts.renderer.indent_markers,
|
||||||
|
icons = opts.renderer.icons,
|
||||||
}
|
}
|
||||||
|
|
||||||
require("nvim-tree.renderer.padding").setup(opts)
|
require("nvim-tree.renderer.padding").setup(opts)
|
||||||
|
|||||||
Reference in New Issue
Block a user