feat(nvim): new autocmds

extracted from this pull request of lazyvim: https://github.com/LazyVim/LazyVim/pull/1391
This commit is contained in:
Sergio Laín 2023-10-24 00:20:55 +02:00
parent 5e25fdb12d
commit 827aeae48d
No known key found for this signature in database
GPG key ID: 14C9B8080681777B

View file

@ -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", "<leader>", "<nop>", { buffer = event.buf, desc = "" })
vim.keymap.set("n", "<localleader>", "<nop>", { buffer = event.buf, desc = "" })
end,
})