diff --git a/lua/nvim-tree/actions/find-file.lua b/lua/nvim-tree/actions/find-file.lua index dd928916674..b97850bf0e3 100644 --- a/lua/nvim-tree/actions/find-file.lua +++ b/lua/nvim-tree/actions/find-file.lua @@ -4,15 +4,6 @@ local renderer = require "nvim-tree.renderer" 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 = {} function M.fn(fname) @@ -21,7 +12,7 @@ function M.fn(fname) end 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 function iterate_nodes(nodes) diff --git a/lua/nvim-tree/actions/movements.lua b/lua/nvim-tree/actions/movements.lua index fa3cf0f8a1e..71fdbd2342d 100644 --- a/lua/nvim-tree/actions/movements.lua +++ b/lua/nvim-tree/actions/movements.lua @@ -56,7 +56,9 @@ function M.parent_node(should_close) parent.open = false altered_tree = true 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 } end @@ -107,6 +109,9 @@ function M.sibling(direction) local target_node = parent.nodes[index] 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 } end end diff --git a/lua/nvim-tree/actions/search-node.lua b/lua/nvim-tree/actions/search-node.lua index f0b6ea72b3d..8c0db537586 100644 --- a/lua/nvim-tree/actions/search-node.lua +++ b/lua/nvim-tree/actions/search-node.lua @@ -77,7 +77,7 @@ function M.fn() end 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 end diff --git a/lua/nvim-tree/renderer/init.lua b/lua/nvim-tree/renderer/init.lua index 1f0c6ff8adc..a8241209dcd 100644 --- a/lua/nvim-tree/renderer/init.lua +++ b/lua/nvim-tree/renderer/init.lua @@ -295,9 +295,7 @@ local function update_draw_data(tree, depth, markers) ["readme.md"] = true, } - local hide_root_folder = view.View.hide_root_folder - - if tree.cwd and tree.cwd ~= "/" and not hide_root_folder then + if view.is_root_folder_visible(tree) then local root_name = utils.path_join { utils.path_remove_trailing(vim.fn.fnamemodify(tree.cwd, root_folder_modifier)), "..", diff --git a/lua/nvim-tree/view.lua b/lua/nvim-tree/view.lua index 182c164cee5..e4ea41a4994 100644 --- a/lua/nvim-tree/view.lua +++ b/lua/nvim-tree/view.lua @@ -342,6 +342,10 @@ function M._prevent_buffer_override() 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 = { width = 30, height = 30,