finish indent markers properly
This commit is contained in:
@@ -30,6 +30,7 @@ let g:lua_tree_ignore = [ '.git', 'node_modules', '.cache' ] "empty by default
|
|||||||
let g:lua_tree_auto_open = 1 "0 by default, opens the tree when typing `vim $DIR` or `vim`
|
let g:lua_tree_auto_open = 1 "0 by default, opens the tree when typing `vim $DIR` or `vim`
|
||||||
let g:lua_tree_auto_close = 1 "0 by default, closes the tree when it's the last window
|
let g:lua_tree_auto_close = 1 "0 by default, closes the tree when it's the last window
|
||||||
let g:lua_tree_follow = 1 "0 by default, this option allows the cursor to be updated when entering a buffer
|
let g:lua_tree_follow = 1 "0 by default, this option allows the cursor to be updated when entering a buffer
|
||||||
|
let g:lua_tree_indent_markers = 1 "0 by default, this option shows indent markers when folders are open
|
||||||
let g:lua_tree_show_icons = {
|
let g:lua_tree_show_icons = {
|
||||||
\ 'git': 1,
|
\ 'git': 1,
|
||||||
\ 'folders': 0,
|
\ 'folders': 0,
|
||||||
@@ -113,6 +114,7 @@ This plugin is very fast because it uses the `libuv` `scandir` and `scandir_next
|
|||||||
- Change directory with `.`
|
- Change directory with `.`
|
||||||
- Add / Rename / delete files
|
- Add / Rename / delete files
|
||||||
- Git integration
|
- Git integration
|
||||||
|
- Indent markers
|
||||||
- Mouse support
|
- Mouse support
|
||||||
- It's fast
|
- It's fast
|
||||||
|
|
||||||
|
|||||||
@@ -121,6 +121,9 @@ Can be `0` or `1`. When `1`, will disable all keybindings by the plugin.
|
|||||||
|g:lua_tree_bindings| as well as default bindings will not take effect.
|
|g:lua_tree_bindings| as well as default bindings will not take effect.
|
||||||
Default is 0
|
Default is 0
|
||||||
|
|
||||||
|
|g:lua_tree_indent_markers| *g:lua_tree_indent_markers*
|
||||||
|
|
||||||
|
Can be `0` or `1`. When `1`, will display indent markers when folders are open
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
INFORMATIONS *nvim-tree-info*
|
INFORMATIONS *nvim-tree-info*
|
||||||
@@ -209,6 +212,7 @@ LuaTreeExecFile
|
|||||||
LuaTreeSpecialFile
|
LuaTreeSpecialFile
|
||||||
LuaTreeImageFile
|
LuaTreeImageFile
|
||||||
LuaTreeMarkdownFile
|
LuaTreeMarkdownFile
|
||||||
|
LuaTreeIndentMarker
|
||||||
|
|
||||||
LuaTreeLicenseIcon
|
LuaTreeLicenseIcon
|
||||||
LuaTreeYamlIcon
|
LuaTreeYamlIcon
|
||||||
|
|||||||
1
doc/tags
1
doc/tags
@@ -9,6 +9,7 @@ g:lua_tree_bindings nvim-tree-lua.txt /*g:lua_tree_bindings*
|
|||||||
g:lua_tree_follow nvim-tree-lua.txt /*g:lua_tree_follow*
|
g:lua_tree_follow nvim-tree-lua.txt /*g:lua_tree_follow*
|
||||||
g:lua_tree_icons nvim-tree-lua.txt /*g:lua_tree_icons*
|
g:lua_tree_icons nvim-tree-lua.txt /*g:lua_tree_icons*
|
||||||
g:lua_tree_ignore nvim-tree-lua.txt /*g:lua_tree_ignore*
|
g:lua_tree_ignore nvim-tree-lua.txt /*g:lua_tree_ignore*
|
||||||
|
g:lua_tree_indent_markers nvim-tree-lua.txt /*g:lua_tree_indent_markers*
|
||||||
g:lua_tree_show_icons nvim-tree-lua.txt /*g:lua_tree_show_icons*
|
g:lua_tree_show_icons nvim-tree-lua.txt /*g:lua_tree_show_icons*
|
||||||
g:lua_tree_side nvim-tree-lua.txt /*g:lua_tree_side*
|
g:lua_tree_side nvim-tree-lua.txt /*g:lua_tree_side*
|
||||||
g:lua_tree_size nvim-tree-lua.txt /*g:lua_tree_size*
|
g:lua_tree_size nvim-tree-lua.txt /*g:lua_tree_size*
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ local function get_hl_groups()
|
|||||||
local colors = get_colors()
|
local colors = get_colors()
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
IndentMarker = { fg = '#90a4ae' },
|
||||||
Symlink = { gui = 'bold', fg = colors.cyan },
|
Symlink = { gui = 'bold', fg = colors.cyan },
|
||||||
FolderIcon = { fg = '#90a4ae' },
|
FolderIcon = { fg = '#90a4ae' },
|
||||||
|
|
||||||
|
|||||||
@@ -88,28 +88,22 @@ if icon_state.show_git_icon then
|
|||||||
end
|
end
|
||||||
|
|
||||||
local get_padding = function(depth)
|
local get_padding = function(depth)
|
||||||
return string.rep(' ', depth), 0
|
return string.rep(' ', depth)
|
||||||
end
|
end
|
||||||
|
|
||||||
local add_padding_glyph = true
|
|
||||||
if vim.g.lua_tree_indent_markers == 1 then
|
if vim.g.lua_tree_indent_markers == 1 then
|
||||||
get_padding = function(depth, idx, tree, node)
|
get_padding = function(depth, idx, tree, node)
|
||||||
local padding = ""
|
local padding = ""
|
||||||
local offset = 0
|
|
||||||
if depth ~= 0 then
|
if depth ~= 0 then
|
||||||
padding = string.rep(" ", depth-2)
|
for i=1,depth/2 do
|
||||||
if add_padding_glyph and (idx == #tree.entries or node.open) then
|
if idx == #tree.entries and i == depth/2 then
|
||||||
padding = padding..'└ '
|
padding = padding..'└ '
|
||||||
offset = string.len('└ ') -2
|
|
||||||
add_padding_glyph = false
|
|
||||||
elseif add_padding_glyph then
|
|
||||||
padding = padding..'│ '
|
|
||||||
offset = string.len('│ ') -2
|
|
||||||
else
|
else
|
||||||
padding = padding..' '
|
padding = padding..'│ '
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
return padding, offset
|
end
|
||||||
|
return padding
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -134,13 +128,16 @@ local function update_draw_data(tree, depth)
|
|||||||
index = 1
|
index = 1
|
||||||
end
|
end
|
||||||
|
|
||||||
add_padding_glyph = true
|
|
||||||
for idx, node in ipairs(tree.entries) do
|
for idx, node in ipairs(tree.entries) do
|
||||||
local padding, offset = get_padding(depth, idx, tree, node, add_padding_glyph)
|
local padding = get_padding(depth, idx, tree, node)
|
||||||
|
local offset = string.len(padding)
|
||||||
|
if depth > 0 then
|
||||||
|
table.insert(hl, { 'LuaTreeIndentMarker', index, 0, offset })
|
||||||
|
end
|
||||||
if node.entries then
|
if node.entries then
|
||||||
local icon = get_folder_icon(node.open)
|
local icon = get_folder_icon(node.open)
|
||||||
local git_icon = get_git_icons(node, index, depth+offset+#node.name, #icon+1)
|
local git_icon = get_git_icons(node, index, offset+#node.name, #icon+1)
|
||||||
set_folder_hl(index, depth+offset, #icon, #node.name)
|
set_folder_hl(index, offset, #icon, #node.name)
|
||||||
index = index + 1
|
index = index + 1
|
||||||
if node.open then
|
if node.open then
|
||||||
table.insert(lines, padding..icon..node.name.." "..git_icon)
|
table.insert(lines, padding..icon..node.name.." "..git_icon)
|
||||||
@@ -149,7 +146,7 @@ local function update_draw_data(tree, depth)
|
|||||||
table.insert(lines, padding..icon..node.name.." "..git_icon)
|
table.insert(lines, padding..icon..node.name.." "..git_icon)
|
||||||
end
|
end
|
||||||
elseif node.link_to then
|
elseif node.link_to then
|
||||||
table.insert(hl, { 'LuaTreeSymlink', index, depth+offset, -1 })
|
table.insert(hl, { 'LuaTreeSymlink', index, offset, -1 })
|
||||||
table.insert(lines, padding..node.name.." ➛ "..node.link_to)
|
table.insert(lines, padding..node.name.." ➛ "..node.link_to)
|
||||||
index = index + 1
|
index = index + 1
|
||||||
|
|
||||||
@@ -158,17 +155,17 @@ local function update_draw_data(tree, depth)
|
|||||||
local git_icons
|
local git_icons
|
||||||
if special[node.name] then
|
if special[node.name] then
|
||||||
icon = ""
|
icon = ""
|
||||||
git_icons = get_git_icons(node, index, depth+offset, 0)
|
git_icons = get_git_icons(node, index, offset, 0)
|
||||||
table.insert(hl, {'LuaTreeSpecialFile', index, depth+offset+#git_icons, -1})
|
table.insert(hl, {'LuaTreeSpecialFile', index, offset+#git_icons, -1})
|
||||||
else
|
else
|
||||||
icon = get_file_icon(node.name, node.extension, index, depth+offset)
|
icon = get_file_icon(node.name, node.extension, index, offset)
|
||||||
git_icons = get_git_icons(node, index, depth+offset, #icon)
|
git_icons = get_git_icons(node, index, offset, #icon)
|
||||||
end
|
end
|
||||||
table.insert(lines, padding..icon..git_icons..node.name)
|
table.insert(lines, padding..icon..git_icons..node.name)
|
||||||
if node.executable then
|
if node.executable then
|
||||||
table.insert(hl, {'LuaTreeExecFile', index, depth+offset+#icon+#git_icons, -1 })
|
table.insert(hl, {'LuaTreeExecFile', index, offset+#icon+#git_icons, -1 })
|
||||||
elseif picture[node.extension] then
|
elseif picture[node.extension] then
|
||||||
table.insert(hl, {'LuaTreeImageFile', index, depth+offset+#icon+#git_icons, -1 })
|
table.insert(hl, {'LuaTreeImageFile', index, offset+#icon+#git_icons, -1 })
|
||||||
end
|
end
|
||||||
index = index + 1
|
index = index + 1
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user