| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 | -- TODO when autocommands are better in lua, scope these to plugins and langslocal utils = require('lv-utils')local auto_formatters = {}if O.lang.python.active then    local python_autoformat = {        'BufWritePre', '*.py', 'lua vim.lsp.buf.formatting_sync(nil, 1000)'    }    if O.lang.python.autoformat then        table.insert(auto_formatters, python_autoformat)    endendif O.lang.tsserver.active then    local javascript_autoformat = {        'BufWritePre', '*.js', 'lua vim.lsp.buf.formatting_sync(nil, 1000)'    }    local javascriptreact_autoformat = {        'BufWritePre', '*.jsx', 'lua vim.lsp.buf.formatting_sync(nil, 1000)'    }    local typescript_autoformat = {        'BufWritePre', '*.ts', 'lua vim.lsp.buf.formatting_sync(nil, 1000)'    }    local typescriptreact_autoformat = {        'BufWritePre', '*.tsx', 'lua vim.lsp.buf.formatting_sync(nil, 1000)'    }    if O.lang.tsserver.autoformat then        table.insert(auto_formatters, javascript_autoformat)        table.insert(auto_formatters, javascriptreact_autoformat)        table.insert(auto_formatters, typescript_autoformat)        table.insert(auto_formatters, typescriptreact_autoformat)    endendif O.lang.lua.active then    local lua_format = {        'BufWritePre', '*.lua', 'lua vim.lsp.buf.formatting_sync(nil, 1000)'    }    if O.lang.lua.autoformat then table.insert(auto_formatters, lua_format) endendif O.lang.json.active then    local json_format = {        'BufWritePre', '*.json', 'lua vim.lsp.buf.formatting_sync(nil, 1000)'    }    if O.lang.json.autoformat then table.insert(auto_formatters, json_format) endendif O.lang.ruby.active then    local ruby_format = {        'BufWritePre', '*.rb', 'lua vim.lsp.buf.formatting_sync(nil,1000)'    }    if O.lang.ruby.autoformat then table.insert(auto_formatters, ruby_format) endendif O.lang.go.active then    local go_format = {        'BufWritePre', '*.go', 'lua vim.lsp.buf.formatting_sync(nil,1000)'    }    if O.lang.go.autoformat then table.insert(auto_formatters, go_format) endendif O.lang.rust.active then    local rust_format = {        'BufWritePre', '*.rs', 'lua vim.lsp.buf.formatting_sync(nil,1000)'    }    if O.lang.rust.autoformat then table.insert(auto_formatters, rust_format) endendutils.define_augroups({    _general_settings = {        {            'TextYankPost', '*',            'lua require(\'vim.highlight\').on_yank({higroup = \'Search\', timeout = 200})'        }, {            'BufWinEnter', '*',            'setlocal formatoptions-=c formatoptions-=r formatoptions-=o'        },        {            'BufRead', '*',            'setlocal formatoptions-=c formatoptions-=r formatoptions-=o'        }, {            'BufNewFile', '*',            'setlocal formatoptions-=c formatoptions-=r formatoptions-=o'        }, {'VimLeavePre', '*', 'set title set titleold='},        {'FileType', 'qf', 'set nobuflisted'},        -- {'BufWinEnter', 'lv-config.lua', 'PackerCompile'},        -- {'BufWinLeave', 'lv-config.lua', 'PackerCompile'},        -- {'BufWritePost', 'lv-config.lua', 'PackerCompile'}        -- {'User', 'GoyoLeave', 'lua require(\'galaxyline\').disable_galaxyline()'},        -- {'User', 'GoyoEnter', 'lua require(\'galaxyline\').galaxyline_augroup()'},    },    _java = {        -- {'FileType', 'java', 'luafile '..CONFIG_PATH..'/lua/lsp/java-ls.lua'},        {            'FileType', 'java',            'nnoremap ca <Cmd>lua require(\'jdtls\').code_action()<CR>'        }    },    _go = {        -- Go generally requires Tabs instead of spaces.        {'FileType', 'go', 'setlocal tabstop=4'},        {'FileType', 'go', 'setlocal shiftwidth=4'},        {'FileType', 'go', 'setlocal softtabstop=4'},        {'FileType', 'go', 'setlocal noexpandtab'}    },    _dashboard = {        -- seems to be nobuflisted that makes my stuff disapear will do more testing        {            'FileType', 'dashboard',            'setlocal nocursorline noswapfile synmaxcol& signcolumn=no norelativenumber nocursorcolumn nospell  nolist  nonumber bufhidden=wipe colorcolumn= foldcolumn=0 matchpairs= '        }, {            'FileType', 'dashboard',            'set showtabline=0 | autocmd BufLeave <buffer> set showtabline=2'        }    },    _markdown = {        {'FileType', 'markdown', 'setlocal wrap'},        {'FileType', 'markdown', 'setlocal spell'}    },    -- _solidity = {    --     {'BufWinEnter', '.sol', 'setlocal filetype=solidity'}, {'BufRead', '*.sol', 'setlocal filetype=solidity'},    --     {'BufNewFile', '*.sol', 'setlocal filetype=solidity'}    -- },    -- _gemini = {    --     {'BufWinEnter', '.gmi', 'setlocal filetype=markdown'}, {'BufRead', '*.gmi', 'setlocal filetype=markdown'},    --     {'BufNewFile', '*.gmi', 'setlocal filetype=markdown'}    -- },    _buffer_bindings = {        {'FileType', 'dashboard', 'nnoremap <silent> <buffer> q :q<CR>'},        {'FileType', 'lspinfo', 'nnoremap <silent> <buffer> q :q<CR>'},        {'FileType', 'floaterm', 'nnoremap <silent> <buffer> q :q<CR>'}    },    _auto_formatters = auto_formatters})
 |