vim.api.nvim_create_augroup('_general', { clear = true }) vim.api.nvim_create_autocmd('BufEnter', { pattern = '*', group = '_general', callback = function() if vim.api.nvim_buf_line_count(0) < 10000 then vim.opt_local.foldmethod = 'expr' vim.opt_local.foldexpr = 'nvim_treesitter#foldexpr()' else vim.opt_local.foldmethod = 'indent' vim.opt_local.list = false end end, }) vim.api.nvim_create_autocmd('FileType', { pattern = 'qf,help,man,lspinfo,query,alpha', command = 'nnoremap q :close', group = '_general', }) vim.api.nvim_create_autocmd('FileType', { pattern = 'qf', command = 'set formatoptions-=cro', group = '_general', }) vim.api.nvim_create_autocmd('BufWritePre', { callback = function() vim.lsp.buf.format { filter = function(client) return client.name ~= 'tsserver' end, } end, group = '_general', }) vim.api.nvim_create_autocmd('FileType', { pattern = 'gitcommit,markdown', command = 'setlocal wrap spell', group = '_general', }) vim.api.nvim_create_autocmd('VimResized', { command = 'tabdo wincmd =', group = '_general', })