diff options
Diffstat (limited to 'lua/conf/autos.lua')
-rw-r--r-- | lua/conf/autos.lua | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/lua/conf/autos.lua b/lua/conf/autos.lua new file mode 100644 index 0000000..51ed58a --- /dev/null +++ b/lua/conf/autos.lua @@ -0,0 +1,50 @@ +local misc = require('core.misc') +local auto, augroup = misc.auto, misc.augroup + +-- auto commands which interact with bufferes without modifying them +local bufcheck = augroup('bufcheck') +-- auto commands which modify things on the filesystem +local fsmod = augroup('fsmod') + +auto('FocusGained', { + group = bufcheck, + desc = 'Update contents of file.', + command = 'checktime', +}) + +auto('TextYankPost', { + pattern = '*', + group = bufcheck, + desc = 'Highlight on yank.', + callback = function() + vim.highlight.on_yank { timeout = 250 } + end +}) + +auto('BufRead', { + pattern = '*', + group = bufcheck, + desc = 'Return to the last place the buffer was closed in.', + callback = function() + vim.cmd([[call setpos(".", getpos("'\""))]]) + vim.api.nvim_input('zz') + end +}) + +auto('BufWritePre', { + pattern = '*', + group = fsmod, + desc = 'remove trailing spaces on file save', + command = [[%s/\s\+$//e]] +}) + +auto('BufWritePre', { + pattern = '*', + group = fsmod, + desc = 'Basically mkdir -p.', + callback = function(ctx) + if ctx.match:match("^%w%w+://") then return end + local dir = vim.fn.fnamemodify(ctx.file, ':p:h') + vim.fn.mkdir(dir, 'p') + end +}) |