vim: use nvim 0.7 new API for create autocmds in lua

This commit is contained in:
Fernando Schauenburg 2022-07-01 22:30:50 +02:00
parent cedb033443
commit 10466e0391

View file

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