diff --git a/config/nvim/lua/fs/autocmds.lua b/config/nvim/lua/fs/autocmds.lua index 9cd72bb..d75e536 100644 --- a/config/nvim/lua/fs/autocmds.lua +++ b/config/nvim/lua/fs/autocmds.lua @@ -1,31 +1,36 @@ -local function make_autocmds(groups) - for name, commands in pairs(groups) do - vim.cmd('augroup my_' .. name) - vim.cmd('autocmd!') - for _, item in ipairs(commands) do - vim.cmd('autocmd ' .. table.concat(item, ' ')) - end - vim.cmd('augroup END') +local augroup = vim.api.nvim_create_augroup +local autocmd = vim.api.nvim_create_autocmd + +local id = augroup("my_autocmds", { clear = true} ) + +autocmd({'BufNewFile', 'BufRead'}, { + desc = 'Make it possible to use `gf` to jump to my neovim lua modules.', + group = id, + pattern = 'init.lua', + command = "setlocal path+=~/.config/nvim/lua includeexpr=substitute(v:fname,'\\\\.','/','g')" +}) + +autocmd('InsertEnter', { + desc = 'Disable `cursorline` when entering Insert mode.', + group = id, + pattern = '*', + callback = function(args) + vim.w.had_cursorline = vim.opt.cursorline:get() + vim.opt.cursorline = false end -end +}) -make_autocmds { - buffers = { - -- Make it possible to use `gf` to jump to my configuration modules. - { 'BufNewFile,BufRead', 'init.lua', - "setlocal path+=~/.config/nvim/lua includeexpr=substitute(v:fname,'\\\\.','/','g')"}, - }, - windows = { - -- Disable cursorline when entering Insert mode (but remember it)... - { 'InsertEnter', '*', - [[let w:had_cursorline=&cursorline | set nocursorline]] }, - -- ...and re-enable when leaving if it had been set before. - { 'InsertLeave', '*', - [[if exists('w:had_cursorline') | let &cursorline=w:had_cursorline | endif]] }, - }, - yank = { - -- Briefly highlight yanked text. - { 'TextYankPost', '*', 'silent! lua vim.highlight.on_yank()' }, - }, -} +autocmd('InsertLeave', { + desc = 'Enable `cursorline` when leaving Insert mode (if it was set before entering).', + group = id, + pattern = '*', + callback = function(args) vim.opt.cursorline = vim.w.had_cursorline end +}) + +autocmd('TextYankPost', { + desc = 'Briefly highlight yanked text.', + group = id, + pattern = '*', + callback = function(args) vim.highlight.on_yank() end +})