nvim-tree / nvim-tree/nvim-tree.lua
Unwanted Group Population
Nobody has claimed this yet.
- Dominant language
- Lua
- Stars
- 8.6k
- Forks
- 639
- Avg merge
- 1d 14h
- Merged PRs (30d)
- 2
Description
Description
Closed folders have their group populated unnecessarily.
Neovim version
NVIM v0.10.1
Build type: RelWithDebInfo
LuaJIT 2.1.1725453128
Operating system and version
Linux 6.10.10-arch1-1
Windows variant
No response
nvim-tree version
03ae60313b1138bfed5e5de889cdbf80756e1397
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({
renderer = {
group_empty = true,
}
})
end
Steps to reproduce
: ; mkdir -p foo{1,2,3}/bar/baz
: ; touch foo{1,2,3}/bar/baz/0
Open foo1/bar/baz/0
Refresh
Expected behavior
No change
~/src/nvim-tree/r/group-fail│
foo1/bar/baz │~
0 │~
foo2 │~
foo3 │~
Actual behavior
foo2 and foo3 are expanded:
~/src/nvim-tree/r/group-fail│
foo1/bar/baz │~
0 │~
foo2/bar/baz │~
foo3/bar/baz │~
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the provided clean-room Neovim setup, create the foo1/foo2/foo3 directory structure, and reproduce the refresh behavior with renderer.group_empty enabled. Trace the refresh and grouped-folder population entry points, then verify that refreshing an open path no longer expands equivalent closed folders such as foo2 and foo3.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- lua
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100