From d97a5cbd1158c9d28b77df04aae30652a7d0f40c Mon Sep 17 00:00:00 2001 From: Oliver Hartmann Date: Sun, 12 Sep 2021 20:25:50 +0200 Subject: [PATCH] autocommands --- init.lua | 5 ++--- lua/autocommands.lua | 48 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 3 deletions(-) create mode 100644 lua/autocommands.lua diff --git a/init.lua b/init.lua index ca6f6ba..d59acdc 100644 --- a/init.lua +++ b/init.lua @@ -52,9 +52,8 @@ utils.opt('o', 'list', true) utils.opt('o', 'updatetime', 300) utils.opt('o', 'wrap', true) --- Highlight on yank -vim.cmd 'au TextYankPost * lua vim.highlight.on_yank {on_visual = false}' - +-------------------- AUTOCOMMANDS -------------------------- +require("autocommands") -------------------- MAPPINGS ------------------------------ -- to navigate the completion menu utils.map('i', '', 'pumvisible() ? "\\" : "\\"', {expr = true}) diff --git a/lua/autocommands.lua b/lua/autocommands.lua new file mode 100644 index 0000000..d017d18 --- /dev/null +++ b/lua/autocommands.lua @@ -0,0 +1,48 @@ +function nvim_create_augroups(definitions) + for group_name, definition in pairs(definitions) do + vim.cmd('augroup ' .. group_name) + vim.cmd('autocmd!') + for _, def in ipairs(definition) do + local command = table.concat(vim.tbl_flatten{'autocmd', def}, ' ') + vim.cmd(command) + end + vim.cmd('augroup END') + end +end + +local autocmds = { + change_header = { + {'BufWritePre', '*', 'lua changeheader()'} + }; + packer = { + { 'BufWritePost', 'plugins.lua', 'PackerCompile' }; + }; + restore_cursor = { + { 'BufRead', '*', [[call setpos(".", getpos("'\""))]] }; + }; + save_shada = { + {'VimLeave', '*', 'wshada!'}; + }; + resize_windows_proportionally = { + { 'VimResized', '*', ':wincmd =' }; + }; + toggle_search_highlighting = { + { 'InsertEnter', '*', 'setlocal nohlsearch' }; + }; + lua_highlight = { + { 'TextYankPost', '*', [[silent! lua vim.highlight.on_yank() {higroup='IncSearch', timeout=400}]] }; + }; + ansi_esc_log = { + { 'BufEnter', '*.log', ':AnsiEsc' }; + }; + file_type = { + {'BufRead,BufNewFile', '*.simvis', 'set filetype=xml'}; + {'BufRead,BufNewFile', '*.simcfg,*.simcon,*.simudex', 'set filetype=cfg'} + {'BufRead,BufNewFile', 'Jenkinsfile*', 'set filetype=groovy'} + {'BufRead,BufNewFile', '*.manifest', 'set filetype=xml'} + {'BufRead,BufNewFile', 'SConstruct,SConscript', 'set filetype=python'} + } +} + +nvim_create_augroups(autocmds) +