fix: correct index in movement actions (#1058)

This commit is contained in:
Andreas Bissinger
2022-03-09 09:03:22 +01:00
committed by GitHub
parent 08c57660a7
commit d5a12ac9db
5 changed files with 13 additions and 15 deletions

View File

@@ -4,15 +4,6 @@ local renderer = require "nvim-tree.renderer"
local M = {} local M = {}
local function get_index_offset()
local hide_root_folder = view.View.hide_root_folder
if TreeExplorer.cwd == "/" or hide_root_folder then
return 0
else
return 1
end
end
local running = {} local running = {}
function M.fn(fname) function M.fn(fname)
@@ -21,7 +12,7 @@ function M.fn(fname)
end end
running[fname] = true running[fname] = true
local i = get_index_offset() local i = view.is_root_folder_visible(TreeExplorer) and 1 or 0
local tree_altered = false local tree_altered = false
local function iterate_nodes(nodes) local function iterate_nodes(nodes)

View File

@@ -56,7 +56,9 @@ function M.parent_node(should_close)
parent.open = false parent.open = false
altered_tree = true altered_tree = true
end end
line = view.View.hide_root_folder and line - 1 or line if not view.is_root_folder_visible(TreeExplorer) then
line = line - 1
end
view.set_cursor { line, 0 } view.set_cursor { line, 0 }
end end
@@ -107,6 +109,9 @@ function M.sibling(direction)
local target_node = parent.nodes[index] local target_node = parent.nodes[index]
line, _ = get_line_from_node(target_node)(TreeExplorer.nodes, true) line, _ = get_line_from_node(target_node)(TreeExplorer.nodes, true)
if not view.is_root_folder_visible(TreeExplorer) then
line = line - 1
end
view.set_cursor { line, 0 } view.set_cursor { line, 0 }
end end
end end

View File

@@ -77,7 +77,7 @@ function M.fn()
end end
if found_something and view.is_visible() then if found_something and view.is_visible() then
if TreeExplorer.cwd ~= "/" and not view.View.hide_root_folder then if view.is_root_folder_visible(TreeExplorer) then
index = index + 1 index = index + 1
end end

View File

@@ -295,9 +295,7 @@ local function update_draw_data(tree, depth, markers)
["readme.md"] = true, ["readme.md"] = true,
} }
local hide_root_folder = view.View.hide_root_folder if view.is_root_folder_visible(tree) then
if tree.cwd and tree.cwd ~= "/" and not hide_root_folder then
local root_name = utils.path_join { local root_name = utils.path_join {
utils.path_remove_trailing(vim.fn.fnamemodify(tree.cwd, root_folder_modifier)), utils.path_remove_trailing(vim.fn.fnamemodify(tree.cwd, root_folder_modifier)),
"..", "..",

View File

@@ -342,6 +342,10 @@ function M._prevent_buffer_override()
end) end)
end end
function M.is_root_folder_visible(tree)
return tree.cwd and tree.cwd ~= "/" and not M.View.hide_root_folder
end
local DEFAULT_CONFIG = { local DEFAULT_CONFIG = {
width = 30, width = 30,
height = 30, height = 30,