nix/config/nvim/plugin/autocmds.lua

47 lines
1.4 KiB
Lua

local api = vim.api
local augroup = api.nvim_create_augroup("UserAutocmds", { clear = true })
local function maybe_load_canola(bufnr)
local name = api.nvim_buf_get_name(bufnr)
if name == "" or vim.bo[bufnr].filetype == "canola" or vim.fn.isdirectory(name) == 0 then return end
pcall(vim.cmd.packadd, "canola.nvim")
pcall(vim.cmd, "silent keepalt Canola " .. vim.fn.fnameescape(name))
end
api.nvim_create_autocmd("TextYankPost", {
group = augroup,
callback = function() vim.highlight.on_yank { higroup = "Visual", timeout = 200 } end,
})
api.nvim_create_autocmd("BufReadPost", {
group = augroup,
callback = function()
if ({ gitcommit = true, gitrebase = true })[vim.bo.filetype] then return end
local mark = api.nvim_buf_get_mark(0, '"')
if mark[1] > 0 and mark[1] <= api.nvim_buf_line_count(0) then pcall(api.nvim_win_set_cursor, 0, mark) end
end,
})
api.nvim_create_autocmd("BufEnter", {
group = augroup,
nested = true,
callback = function(args)
if vim.v.vim_did_enter == 1 then maybe_load_canola(args.buf) end
end,
})
api.nvim_create_autocmd("VimEnter", {
group = augroup,
nested = true,
callback = function() maybe_load_canola(0) end,
})
api.nvim_create_autocmd("VimResized", {
group = augroup,
callback = function()
local tab = vim.fn.tabpagenr()
vim.cmd "tabdo wincmd ="
vim.cmd("tabnext " .. tab)
end,
})