test
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
local M = {}
|
||||
|
||||
function M.name(config, node, state)
|
||||
local common = require "neo-tree.sources.common.components"
|
||||
local highlights = require "neo-tree.ui.highlights"
|
||||
|
||||
local highlight = config.highlight or highlights.FILE_NAME
|
||||
local text = node.name
|
||||
if node.type == "directory" then
|
||||
highlight = highlights.DIRECTORY_NAME
|
||||
if config.trailing_slash and text ~= "/" then
|
||||
text = text .. "/"
|
||||
end
|
||||
end
|
||||
|
||||
if node:get_depth() == 1 and node.type ~= "message" then
|
||||
highlight = highlights.ROOT_NAME
|
||||
text = vim.fn.fnamemodify(text, ":p:h:t")
|
||||
text = string.upper(text)
|
||||
else
|
||||
local filtered_by = common.filtered_by(config, node, state)
|
||||
highlight = filtered_by.highlight or highlight
|
||||
if config.use_git_status_colors then
|
||||
local git_status = state.components.git_status({}, node, state)
|
||||
if git_status and git_status.highlight then
|
||||
highlight = git_status.highlight
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if type(config.right_padding) == "number" then
|
||||
if config.right_padding > 0 then
|
||||
text = text .. string.rep(" ", config.right_padding)
|
||||
end
|
||||
else
|
||||
text = text .. " "
|
||||
end
|
||||
|
||||
return {
|
||||
text = text,
|
||||
highlight = highlight,
|
||||
}
|
||||
end
|
||||
|
||||
function M.icon(config, node, state)
|
||||
local common = require "neo-tree.sources.common.components"
|
||||
local highlights = require "neo-tree.ui.highlights"
|
||||
|
||||
local icon = config.default or " "
|
||||
local highlight = config.highlight or highlights.FILE_ICON
|
||||
if node.type == "directory" then
|
||||
highlight = highlights.DIRECTORY_ICON
|
||||
if node.loaded and not node:has_children() then
|
||||
icon = not node.empty_expanded and config.folder_empty
|
||||
or config.folder_empty_open
|
||||
elseif node:is_expanded() then
|
||||
icon = config.folder_open or "-"
|
||||
else
|
||||
icon = config.folder_closed or "+"
|
||||
end
|
||||
elseif node.type == "file" or node.type == "terminal" then
|
||||
local success, web_devicons = pcall(require, "nvim-web-devicons")
|
||||
if success then
|
||||
local devicon, hl = web_devicons.get_icon(node.name, node.ext)
|
||||
icon = devicon or icon
|
||||
highlight = hl or highlight
|
||||
end
|
||||
end
|
||||
|
||||
local filtered_by = common.filtered_by(config, node, state)
|
||||
|
||||
-- Don't render icon in root folder
|
||||
if node:get_depth() == 1 then
|
||||
return {
|
||||
text = nil,
|
||||
highlight = highlight,
|
||||
}
|
||||
end
|
||||
|
||||
return {
|
||||
text = icon .. " ",
|
||||
highlight = filtered_by.highlight or highlight,
|
||||
}
|
||||
end
|
||||
|
||||
return M
|
||||
Reference in New Issue
Block a user