-
-
Notifications
You must be signed in to change notification settings - Fork 628
Open
Labels
bugSomething isn't workingSomething isn't workingregressionExisting functionality brokenExisting functionality brokenreproducedIssue confirmedIssue confirmed
Description
Description
After version 0a06f65, when trying to filter for files, the floating window closes automatically. I noticed in this commit there's a lot of refactoring, haven't had time to look into it yet.
Neovim version
NVIM v0.11.2
Build type: Release
LuaJIT 2.1.1748459687
Operating system and version
MacOs 15.5
Windows variant
No response
nvim-tree version
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()
local HEIGHT_RATIO = 0.85 -- You can change this
local WIDTH_RATIO = 0.79 -- You can change this too
local floating = true
local view = {
-- relativenumber = false,
-- width = 45,
adaptive_size = true,
side = "right",
}
if floating then
view = {
-- relativenumber = true,
float = {
enable = true,
open_win_config = function()
local screen_w = vim.opt.columns:get()
local screen_h = vim.opt.lines:get() - vim.opt.cmdheight:get()
local window_w = screen_w * WIDTH_RATIO
local window_h = screen_h * HEIGHT_RATIO
local window_w_int = math.floor(window_w)
local window_h_int = math.floor(window_h)
local center_x = (screen_w - window_w) / 2
local center_y = ((vim.opt.lines:get() - window_h) / 2) - vim.opt.cmdheight:get()
return {
border = "rounded",
relative = "editor",
row = center_y,
col = center_x,
width = window_w_int,
height = window_h_int,
}
end,
},
width = function()
return math.floor(vim.opt.columns:get() * WIDTH_RATIO)
end,
}
end
local tree_api = require("nvim-tree.api")
require("nvim-tree").setup({
on_attach = function(bufnr)
local function opts(desc)
return { desc = "nvim-tree: " .. desc, buffer = bufnr, noremap = true, silent = true, nowait = true }
end
local map = vim.keymap.set
map("n", "K", tree_api.node.show_info_popup, opts("Info"))
map("n", "<C-t>", tree_api.node.open.tab, opts("Open: New Tab"))
map("n", "<C-v>", tree_api.node.open.vertical, opts("Open: Vertical Split"))
map("n", "<C-s>", tree_api.node.open.horizontal, opts("Open: Horizontal Split"))
map("n", "<BS>", tree_api.node.navigate.parent_close, opts("Close Directory"))
map("n", "<CR>", tree_api.node.open.edit, opts("Open"))
map("n", ".", tree_api.node.run.cmd, opts("Run Command"))
map("n", "a", tree_api.fs.create, opts("Create File Or Directory"))
map("n", "bd", tree_api.marks.bulk.delete, opts("Delete Bookmarked"))
map("n", "bD", tree_api.marks.bulk.trash, opts("Trash Bookmarked"))
map("n", "bmv", tree_api.marks.bulk.move, opts("Move Bookmarked"))
map("n", "B", tree_api.tree.toggle_no_buffer_filter, opts("Toggle Filter: No Buffer"))
map("n", "y", tree_api.fs.copy.node, opts("Copy"))
map("n", "d", tree_api.fs.remove, opts("Delete"))
map("n", "D", tree_api.fs.trash, opts("Trash"))
map("n", "E", tree_api.tree.expand_all, opts("Expand All"))
map("n", "F", tree_api.live_filter.clear, opts("Live Filter: Clear"))
map("n", "f", tree_api.live_filter.start, opts("Live Filter: Start"))
map("n", "g?", tree_api.tree.toggle_help, opts("Help"))
map("n", "H", tree_api.tree.toggle_hidden_filter, opts("Toggle Filter: Dotfiles"))
map("n", "I", tree_api.tree.toggle_gitignore_filter, opts("Toggle Filter: Git Ignore"))
map("n", "M", tree_api.tree.toggle_no_bookmark_filter, opts("Toggle Filter: No Bookmark"))
map("n", "m", tree_api.marks.toggle, opts("Toggle Bookmark"))
map("n", "p", tree_api.fs.paste, opts("Paste"))
map("n", "P", tree_api.node.navigate.parent, opts("Parent Directory"))
map("n", "q", tree_api.tree.close, opts("Close"))
map("n", "r", tree_api.fs.rename_full, opts("Rename"))
map("n", "R", tree_api.tree.reload, opts("Refresh"))
map("n", "W", tree_api.tree.collapse_all, opts("Collapse"))
map("n", "x", tree_api.fs.cut, opts("Cut"))
map("n", "gc", tree_api.fs.copy.filename, opts("Copy Name"))
map("n", "c", tree_api.fs.copy.relative_path, opts("Copy Relative Path"))
map("n", "C", tree_api.fs.copy.absolute_path, opts("Copy Absolute Path"))
end,
disable_netrw = true,
hijack_netrw = true,
sort = {
sorter = "case_sensitive",
},
view = view,
renderer = {
group_empty = true,
indent_markers = { enable = true },
highlight_git = true,
root_folder_label = ":t",
},
actions = {
change_dir = {
enable = false,
restrict_above_cwd = true,
},
},
filters = {
custom = { "node_modules", "^\\.git$", "^\\.github$" },
},
git = {
enable = false,
},
update_focused_file = {
enable = true,
},
})
if floating then
vim.api.nvim_create_augroup("NvimTreeResize", {
clear = true,
})
vim.api.nvim_create_autocmd({ "VimResized" }, {
group = "NvimTreeResize",
callback = function()
if require("nvim-tree.view").is_visible() then
tree_api.tree.close()
tree_api.tree.open()
end
end,
})
end
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 {
name = "my-luals",
cmd = { "lua-language-server" },
root_dir = vim.loop.cwd(),
}
end,
})
]]
Steps to reproduce
- Use the config above
- Run
:lua require('nvim-tree.api').tree.toggle()
- Press the
f
key to filter
Expected behavior
Should filter
Actual behavior
The floating window closes
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workingregressionExisting functionality brokenExisting functionality brokenreproducedIssue confirmedIssue confirmed