diff --git a/.config/nvim/lua/config/autocmds.lua b/.config/nvim/lua/config/autocmds.lua index cbb52806..d746e53b 100644 --- a/.config/nvim/lua/config/autocmds.lua +++ b/.config/nvim/lua/config/autocmds.lua @@ -2,6 +2,10 @@ -- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua -- Add any additional autocmds here +local function augroup(name) + return vim.api.nvim_create_augroup("lazyvim_" .. name, { clear = true }) +end + -- Disable diagnostics in a .env file vim.api.nvim_create_autocmd("BufRead", { pattern = ".env", @@ -17,3 +21,47 @@ vim.api.nvim_create_autocmd("BufRead", { vim.cmd("startinsert") 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, +})