This commit is contained in:
parent
33c3bc562b
commit
8f48426c88
@ -2142,27 +2142,29 @@ Icon: >
|
||||
NvimTreeOpenedFolderIcon NvimTreeFolderIcon
|
||||
NvimTreeClosedFolderIcon NvimTreeFolderIcon
|
||||
NvimTreeBookmark
|
||||
NvimTreeFolderArrowClosed NvimTreeIndentMarker
|
||||
NvimTreeFolderArrowOpen NvimTreeIndentMarker
|
||||
<
|
||||
Indent: >
|
||||
NvimTreeIndentMarker
|
||||
<
|
||||
Standard: >
|
||||
NvimTreeNormal Normal
|
||||
NvimTreeNormalFloat NormalFloat
|
||||
NvimTreeNormalNC NormalFloat
|
||||
NvimTreeNormal Normal
|
||||
NvimTreeNormalFloat NormalFloat
|
||||
NvimTreeNormalNC NormalFloat
|
||||
|
||||
NvimTreeLineNr LineNr
|
||||
NvimTreeWinSeparator WinSeparator
|
||||
NvimTreeEndOfBuffer EndOfBuffer
|
||||
NvimTreePopup Normal
|
||||
NvimTreeSignColumn NvimTreeNormal
|
||||
NvimTreeLineNr LineNr
|
||||
NvimTreeWinSeparator WinSeparator
|
||||
NvimTreeEndOfBuffer EndOfBuffer
|
||||
NvimTreePopup Normal
|
||||
NvimTreeSignColumn NvimTreeNormal
|
||||
|
||||
NvimTreeCursorColumn CursorColumn
|
||||
NvimTreeCursorLine CursorLine
|
||||
NvimTreeCursorLineNr CursorLineNr
|
||||
NvimTreeCursorColumn CursorColumn
|
||||
NvimTreeCursorLine CursorLine
|
||||
NvimTreeCursorLineNr CursorLineNr
|
||||
|
||||
NvimTreeStatusLine StatusLine
|
||||
NvimTreeStatusLineNC StatusLineNC
|
||||
NvimTreeStatusLine StatusLine
|
||||
NvimTreeStatusLineNC StatusLineNC
|
||||
<
|
||||
Picker: >
|
||||
NvimTreeWindowPicker
|
||||
|
||||
@ -290,14 +290,15 @@ function Builder:_get_highlight_override(node, unloaded_bufnr)
|
||||
return icon_hl, name_hl
|
||||
end
|
||||
|
||||
---@param padding HighlightedString
|
||||
---@param indent_markers HighlightedString[]
|
||||
---@param arrows HighlightedString[]|nil
|
||||
---@param icon HighlightedString
|
||||
---@param name HighlightedString
|
||||
---@param git_icons HighlightedString[]|nil
|
||||
---@param diagnostics_icon HighlightedString|nil
|
||||
---@param modified_icon HighlightedString|nil
|
||||
---@return HighlightedString[]
|
||||
function Builder:_format_line(padding, icon, name, git_icons, diagnostics_icon, modified_icon)
|
||||
function Builder:_format_line(indent_markers, arrows, icon, name, git_icons, diagnostics_icon, modified_icon)
|
||||
local added_len = 0
|
||||
local function add_to_end(t1, t2)
|
||||
for _, v in ipairs(t2) do
|
||||
@ -315,7 +316,7 @@ function Builder:_format_line(padding, icon, name, git_icons, diagnostics_icon,
|
||||
end
|
||||
end
|
||||
|
||||
local line = { padding }
|
||||
local line = { indent_markers, arrows }
|
||||
add_to_end(line, { icon })
|
||||
if git_icons and self.git_placement == "before" then
|
||||
add_to_end(line, git_icons)
|
||||
@ -344,7 +345,8 @@ end
|
||||
|
||||
function Builder:_build_line(node, idx, num_children, unloaded_bufnr)
|
||||
-- various components
|
||||
local padding = pad.get_padding(self.depth, idx, num_children, node, self.markers)
|
||||
local indent_markers = pad.get_indent_markers(self.depth, idx, num_children, node, self.markers)
|
||||
local arrows = pad.get_arrows(node)
|
||||
local git_icons = self:_get_git_icons(node)
|
||||
local modified_icon = self:_get_modified_icon(node)
|
||||
local diagnostics_icon = self:_get_diagnostics_icon(node)
|
||||
@ -370,7 +372,7 @@ function Builder:_build_line(node, idx, num_children, unloaded_bufnr)
|
||||
name.hl = name_hl
|
||||
end
|
||||
|
||||
local line = self:_format_line(padding, icon, name, git_icons, diagnostics_icon, modified_icon)
|
||||
local line = self:_format_line(indent_markers, arrows, icon, name, git_icons, diagnostics_icon, modified_icon)
|
||||
self:_insert_line(self:_unwrap_highlighted_strings(line))
|
||||
|
||||
self.index = self.index + 1
|
||||
|
||||
@ -58,24 +58,14 @@ local function get_padding_indent_markers(depth, idx, nodes_number, markers, wit
|
||||
return padding
|
||||
end
|
||||
|
||||
local function get_padding_arrows(node, indent)
|
||||
if node.nodes then
|
||||
return M.config.icons.glyphs.folder[node.open and "arrow_open" or "arrow_closed"] .. " "
|
||||
elseif indent then
|
||||
return " "
|
||||
else
|
||||
return ""
|
||||
end
|
||||
end
|
||||
|
||||
---@param depth integer
|
||||
---@param idx integer
|
||||
---@param nodes_number integer
|
||||
---@param node table
|
||||
---@param markers table
|
||||
---@return HighlightedString
|
||||
function M.get_padding(depth, idx, nodes_number, node, markers)
|
||||
local padding = ""
|
||||
---@return HighlightedString[]
|
||||
function M.get_indent_markers(depth, idx, nodes_number, node, markers)
|
||||
local str = ""
|
||||
|
||||
local show_arrows = M.config.icons.show.folder_arrow
|
||||
local show_markers = M.config.indent_markers.enable
|
||||
@ -83,16 +73,38 @@ function M.get_padding(depth, idx, nodes_number, node, markers)
|
||||
local indent_width = M.config.indent_width
|
||||
|
||||
if show_markers then
|
||||
padding = padding .. get_padding_indent_markers(depth, idx, nodes_number, markers, show_arrows, inline_arrows, node)
|
||||
str = str .. get_padding_indent_markers(depth, idx, nodes_number, markers, show_arrows, inline_arrows, node)
|
||||
else
|
||||
padding = padding .. string.rep(" ", depth * indent_width)
|
||||
str = str .. string.rep(" ", depth * indent_width)
|
||||
end
|
||||
|
||||
if show_arrows then
|
||||
padding = padding .. get_padding_arrows(node, not show_markers)
|
||||
return { str = str, hl = "NvimTreeIndentMarker" }
|
||||
end
|
||||
|
||||
---@param node table
|
||||
---@return HighlightedString[]|nil
|
||||
function M.get_arrows(node)
|
||||
if not M.config.icons.show.folder_arrow then
|
||||
return
|
||||
end
|
||||
|
||||
return { str = padding, hl = "NvimTreeIndentMarker" }
|
||||
local str
|
||||
local hl = "NvimTreeFolderArrowClosed"
|
||||
|
||||
if node.nodes then
|
||||
if node.open then
|
||||
str = M.config.icons.glyphs.folder["arrow_open"] .. " "
|
||||
hl = "NvimTreeFolderArrowOpen"
|
||||
else
|
||||
str = M.config.icons.glyphs.folder["arrow_closed"] .. " "
|
||||
end
|
||||
elseif M.config.indent_markers.enable then
|
||||
str = ""
|
||||
else
|
||||
str = " "
|
||||
end
|
||||
|
||||
return { str = str, hl = hl }
|
||||
end
|
||||
|
||||
function M.setup(opts)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user