Skip to content

Explorer not redrawing after closing parent node #2928

Closed
@LucasMRC

Description

@LucasMRC

Description

When I close the parent node with backspace, the tree does not redraw, so the parent node still appears as opened. It updates when another action triggers the redraw, but until then the tree rendered is out of sync with the actual state.
This seems to be happening after this commit 3 days ago, where this line is evaluating to nil.

nvim-tree.mp4

What you are seeing in the video:

  • I open the plugin directory
  • I close it with the 'close parent node' mapping. The tree looks the same, but you can see the cursor position change.
  • I open another directory triggering the redraw
  • The plugin directory closes.
  • I repeat the first two steps.
  • I open copilot plugin file.
  • It opens a completely different file.

Neovim version

NVIM v0.10.1
Build type: RelWithDebInfo
LuaJIT 2.1.1725453128

Operating system and version

Arch linux - Linux 6.6.52-1-lts x86_64

Windows variant

No response

nvim-tree version

8405ecf

Clean room replication

vim.g.loaded_netrw = 1
vim.g.loaded_netrwPlugin = 1

vim.cmd [[set runtimepath=$VIMRUNTIME]]
vim.cmd [[set packpath=/tmp/nvt-min/site]]
local package_root = "/tmp/nvt-min/site/pack"
local install_path = package_root .. "/packer/start/packer.nvim"
local function load_plugins()
  require("packer").startup {
    {
      "wbthomason/packer.nvim",
      "nvim-tree/nvim-tree.lua",
      "nvim-tree/nvim-web-devicons",
      -- ADD PLUGINS THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE
    },
    config = {
      package_root = package_root,
      compile_path = install_path .. "/plugin/packer_compiled.lua",
      display = { non_interactive = true },
    },
  }
end
if vim.fn.isdirectory(install_path) == 0 then
  print "Installing nvim-tree and dependencies."
  vim.fn.system { "git", "clone", "--depth=1", "https://github.com/wbthomason/packer.nvim", install_path }
end
load_plugins()
require("packer").sync()
vim.cmd [[autocmd User PackerComplete ++once echo "Ready!" | lua setup()]]
vim.opt.termguicolors = true
vim.opt.cursorline = true

-- MODIFY NVIM-TREE SETTINGS THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE
_G.setup = function()
  require("nvim-tree").setup {}
end

-- UNCOMMENT this block for diagnostics issues, substituting pattern and cmd as appropriate.
-- Requires diagnostics.enable = true in setup.
--[[
vim.api.nvim_create_autocmd("FileType", {
  pattern = "lua",
  callback = function()
    vim.lsp.start { cmd = { "lua-language-server" } }
  end,
})
]]

Steps to reproduce

  1. nvim -nu /tmp/nvt-min.lua
  2. NvimTreeOpen
  3. Open directory node
  4. Close using the 'close parent node' mapping

Expected behavior

Tree should redraw after closing parent node

Actual behavior

Tree is not redrawing

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions