From 7b703b42da815fb280c6fd7b73961c2e87bcff07 Mon Sep 17 00:00:00 2001 From: Steven Arcangeli Date: Thu, 5 Jan 2023 10:09:36 -0800 Subject: [PATCH] fix: always close keymap help window (#17) --- lua/oil/keymap_util.lua | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/lua/oil/keymap_util.lua b/lua/oil/keymap_util.lua index 0a6d5bb..32db327 100644 --- a/lua/oil/keymap_util.lua +++ b/lua/oil/keymap_util.lua @@ -85,7 +85,7 @@ M.show_help = function(keymaps) local editor_width = vim.o.columns local editor_height = util.get_editor_height() - vim.api.nvim_open_win(bufnr, true, { + local winid = vim.api.nvim_open_win(bufnr, true, { relative = "editor", row = math.max(0, (editor_height - #lines) / 2), col = math.max(0, (editor_width - max_line - 1) / 2), @@ -95,6 +95,22 @@ M.show_help = function(keymaps) style = "minimal", border = "rounded", }) + local function close() + if vim.api.nvim_win_is_valid(winid) then + vim.api.nvim_win_close(winid, true) + end + end + vim.api.nvim_create_autocmd("BufLeave", { + callback = close, + once = true, + nested = true, + buffer = bufnr, + }) + vim.api.nvim_create_autocmd("WinLeave", { + callback = close, + once = true, + nested = true, + }) end return M