From f275d3faae40262121b10e9919469e36c6782c13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sindre=20T=2E=20Str=C3=B8m?= Date: Sun, 18 Apr 2021 18:43:24 +0200 Subject: [PATCH] fix(view): Fix error thrown when trying to wipe buffer in autocmd window. (#314) --- lua/nvim-tree/view.lua | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/lua/nvim-tree/view.lua b/lua/nvim-tree/view.lua index 4e54ed54..028023a4 100644 --- a/lua/nvim-tree/view.lua +++ b/lua/nvim-tree/view.lua @@ -68,9 +68,9 @@ M.View = { ---Find a rogue NvimTree buffer that might have been spawned by i.e. a session. ---@return integer|nil local function find_rogue_buffer() - for i = 1, vim.fn.bufnr("$"), 1 do - if vim.fn.bufname(i) == "NvimTree" then - return i + for _, v in ipairs(a.nvim_list_bufs()) do + if vim.fn.bufname(v) == "NvimTree" then + return v end end return nil @@ -89,9 +89,14 @@ function M._wipe_rogue_buffer() if bn then local win_ids = vim.fn.win_findbuf(bn) for _, id in ipairs(win_ids) do - a.nvim_win_close(id, true) + if vim.fn.win_gettype(id) ~= "autocmd" then + a.nvim_win_close(id, true) + end end - a.nvim_buf_delete(bn, {}) + + vim.schedule(function () + pcall(a.nvim_buf_delete, bn, {}) + end) end end