From 7229822ab06dceb2dd3c872c7081be877e9fc736 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9A=AE=E6=99=A8?= Date: Tue, 29 Aug 2023 11:08:17 +0800 Subject: [PATCH] feat(autocmds): add new autocmd --- lua/lazyvim/config/autocmds.lua | 44 +++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) 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, +})