diff --git a/lua/lazyvim/config/autocmds.lua b/lua/lazyvim/config/autocmds.lua index ec1b98df..cd17eb46 100644 --- a/lua/lazyvim/config/autocmds.lua +++ b/lua/lazyvim/config/autocmds.lua @@ -88,3 +88,47 @@ vim.api.nvim_create_autocmd({ "BufWritePre" }, { vim.fn.mkdir(vim.fn.fnamemodify(file, ":p:h"), "p") end, }) + +local auto_close_filetype = { + "lazy", + "mason", + "lspinfo", + "toggleterm", + "null-ls-info", + "TelescopePrompt", + "notify", +} + +-- Auto close window when leaving +vim.api.nvim_create_autocmd("BufLeave", { + group = augroup("auto_close_win"), + callback = function(event) + local ft = vim.api.nvim_buf_get_option(event.buf, "filetype") + + if vim.fn.index(auto_close_filetype, ft) ~= -1 then + local winids = vim.fn.win_findbuf(event.buf) + for _, win in pairs(winids) do + vim.api.nvim_win_close(win, true) + end + end + end, +}) + +-- Disable leader and localleader for some filetypes +vim.api.nvim_create_autocmd("FileType", { + group = augroup("unbind_leader_key"), + pattern = { + "lazy", + "mason", + "lspinfo", + "toggleterm", + "null-ls-info", + "neo-tree-popup", + "TelescopePrompt", + "notify", + }, + callback = function(event) + vim.keymap.set("n", "", "", { buffer = event.buf, desc = "" }) + vim.keymap.set("n", "", "", { buffer = event.buf, desc = "" }) + end, +})