From 0f104854dab0b9edc9dd90bb70fdd782568283ef Mon Sep 17 00:00:00 2001 From: Steven Arcangeli Date: Thu, 5 Jan 2023 18:56:48 -0800 Subject: [PATCH] fix: close floating oil window on WinLeave (#17) --- lua/oil/init.lua | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/lua/oil/init.lua b/lua/oil/init.lua index aaeefc1..dc78553 100644 --- a/lua/oil/init.lua +++ b/lua/oil/init.lua @@ -238,6 +238,19 @@ M.open_float = function(dir) border = config.float.border, zindex = 45, }) + local winleave_autocmd + winleave_autocmd = vim.api.nvim_create_autocmd("WinLeave", { + callback = vim.schedule_wrap(function() + if util.is_floating_win() then + return + end + if vim.api.nvim_win_is_valid(winid) then + vim.api.nvim_win_close(winid, true) + end + vim.api.nvim_del_autocmd(winleave_autocmd) + end), + nested = true, + }) for k, v in pairs(config.float.win_options) do vim.api.nvim_win_set_option(winid, k, v) end