local api = vim.api -- Highlight on yank local yankGrp = api.nvim_create_augroup('YankHighlight', { clear = true }) api.nvim_create_autocmd('TextYankPost', { command = 'silent! lua vim.highlight.on_yank()', group = yankGrp, }) -- Filetypes local fileGrp = api.nvim_create_augroup('file_type', { clear = true }) api.nvim_create_autocmd({ 'BufRead', 'BufNewFile' }, { pattern = { '*.simvis', '*.manifest' }, callback = function() vim.bo.filetype = 'xml' end, group = fileGrp, }) api.nvim_create_autocmd({ 'BufRead', 'BufNewFile' }, { pattern = { '*.simcfg', '*.simcon', '*.simudex' }, callback = function() vim.bo.filetype = 'xml' end, group = fileGrp, }) api.nvim_create_autocmd({ 'BufRead', 'BufNewFile' }, { pattern = { 'JenkinsFile*' }, callback = function() vim.bo.filetype = 'groovy' end, group = fileGrp, }) api.nvim_create_autocmd({ 'BufRead', 'BufNewFile' }, { pattern = { 'SConstruct', 'SConscript' }, callback = function() vim.bo.filetype = 'python' end, group = fileGrp, }) api.nvim_create_autocmd({ 'BufRead', 'BufNewFile' }, { pattern = { 'doskey'}, callback = function() vim.bo.filetype = 'dosini' end, group = fileGrp, }) api.nvim_create_autocmd({ 'BufRead', 'BufNewFile' }, { pattern = { '.clangd', '.clang-tidy'}, callback = function() vim.bo.filetype = 'yaml' end, group = fileGrp, }) -- Read and write shada file api.nvim_create_autocmd({ 'FocusLost' }, { command = [[wshada]] }) api.nvim_create_autocmd({ 'FocusGained' }, { command = [[rshada]] }) -- go to last loc when opening a buffer -- api.nvim_create_autocmd( -- 'BufReadPost', -- { command = [[if line("'\"") > 1 && line("'\"") <= line("$") | execute "normal! g`\"" | endif]] } -- ) -- Check if we need to reload the file when it changed api.nvim_create_autocmd({ 'FocusGained', 'BufEnter' }, { command = [[:checktime]] }) -- windows to close with "q" api.nvim_create_autocmd( 'FileType', { pattern = { 'help', 'startuptime', 'qf', 'lspinfo' }, command = [[nnoremap q :close]] } ) api.nvim_create_autocmd('FileType', { pattern = 'man', command = [[nnoremap q :quit]] }) -- show cursor line only in active window local cursorGrp = api.nvim_create_augroup('CursorLine', { clear = true }) api.nvim_create_autocmd({ 'InsertLeave', 'WinEnter' }, { pattern = '*', command = 'set cursorline', group = cursorGrp }) api.nvim_create_autocmd( { 'InsertEnter', 'WinLeave' }, { pattern = '*', command = 'set nocursorline', group = cursorGrp } ) -- don't auto comment new line api.nvim_create_autocmd('BufEnter', { command = [[set formatoptions-=cro]] }) -- Keep window ratio when resize api.nvim_create_autocmd('VimResized', {command = [[wincmd =]]})