From 827aeae48dbefcebdd14a76dd8fc6e028b2e9d9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergio=20La=C3=ADn?= Date: Tue, 24 Oct 2023 00:20:55 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(nvim):=20new=20autocmds?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit extracted from this pull request of lazyvim: https://github.com/LazyVim/LazyVim/pull/1391 --- .config/nvim/lua/config/autocmds.lua | 48 ++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) 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, +})