From 5f047bc5f9b10be56a6cb2fb887cb838d3631819 Mon Sep 17 00:00:00 2001 From: Lopi-py <70210066+Lopi-py@users.noreply.github.com> Date: Thu, 17 Feb 2022 02:19:42 -0500 Subject: [PATCH] fix: close windows properly (#924) --- lua/nvim-tree/actions/remove-file.lua | 14 ++++++++++---- lua/nvim-tree/utils.lua | 8 +++++++- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/lua/nvim-tree/actions/remove-file.lua b/lua/nvim-tree/actions/remove-file.lua index c52b2cb3..530faef3 100644 --- a/lua/nvim-tree/actions/remove-file.lua +++ b/lua/nvim-tree/actions/remove-file.lua @@ -6,6 +6,14 @@ local events = require'nvim-tree.events' local M = {} +local function close_windows(windows) + for _, window in ipairs(windows) do + if a.nvim_win_is_valid(window) then + a.nvim_win_close(window, true) + end + end +end + local function clear_buffer(absolute_path) local bufs = vim.fn.getbufinfo({bufloaded = 1, buflisted = 1}) for _, buf in pairs(bufs) do @@ -16,10 +24,8 @@ local function clear_buffer(absolute_path) vim.cmd(':bn') a.nvim_set_current_win(winnr) end - vim.api.nvim_buf_delete(buf.bufnr, { force = true }) - if buf.windows[1] and vim.api.nvim_win_is_valid(buf.bufnr) then - vim.api.nvim_win_close(buf.windows[1], true) - end + a.nvim_buf_delete(buf.bufnr, { force = true }) + close_windows(buf.windows) return end end diff --git a/lua/nvim-tree/utils.lua b/lua/nvim-tree/utils.lua index e05d64b9..79893a69 100644 --- a/lua/nvim-tree/utils.lua +++ b/lua/nvim-tree/utils.lua @@ -1,3 +1,5 @@ +local has_notify, notify = pcall(require, 'notify') + local a = vim.api local uv = vim.loop @@ -11,7 +13,11 @@ end function M.warn(msg) vim.schedule(function() - vim.notify("[NvimTree] "..msg, vim.log.levels.WARN) + if has_notify then + notify(msg, vim.log.levels.WARN, { title = "NvimTree" }) + else + vim.notify("[NvimTree] "..msg, vim.log.levels.WARN) + end end) end