diff --git a/init.lua b/init.lua index e006f9a9..3701b15b 100644 --- a/init.lua +++ b/init.lua @@ -1,8 +1,9 @@ -- General mappings require('plugins') -require('nv-utils') require('nv-globals') +require('nv-utils') vim.cmd('luafile ~/.config/nvim/nv-settings.lua') +require('nv-autocommands') -- require('config') require('settings') require('keymappings') @@ -59,6 +60,5 @@ require('lsp.html-ls') require('lsp.efm-general-ls') require('lsp.virtual_text') --- Source config last -- vim.lsp.callbacks["textDocument/publishDiagnostics"] = function() end -- vim.lsp.handlers["textDocument/publishDiagnostics"] = nil diff --git a/lua/lsp/clangd.lua b/lua/lsp/clangd.lua index 010415ad..f5ae3ccb 100644 --- a/lua/lsp/clangd.lua +++ b/lua/lsp/clangd.lua @@ -1,4 +1,4 @@ -require'lspconfig'.clangd.setup{ +require'lspconfig'.clangd.setup { cmd = {DATA_PATH .. "/lspinstall/cpp/clangd/bin/clangd"}, on_attach = require'lsp'.common_on_attach } diff --git a/lua/nv-autocommands/init.lua b/lua/nv-autocommands/init.lua new file mode 100644 index 00000000..e5743e1b --- /dev/null +++ b/lua/nv-autocommands/init.lua @@ -0,0 +1,48 @@ +local utils = require('nv-utils') + +local auto_formatters = { } + +local python_autoformat = {'BufWritePre', '*.py', 'lua vim.lsp.buf.formatting_sync(nil, 1000)'} +if O.python.autoformat then table.insert(auto_formatters, python_autoformat) end + +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)'} +if O.tsserver.autoformat then + table.insert(auto_formatters, javascript_autoformat) + table.insert(auto_formatters, javascriptreact_autoformat) +end + +local lua_format = {'BufWritePre', '*.lua', 'lua vim.lsp.buf.formatting_sync(nil, 1000)'} +if O.lua.autoformat then table.insert(auto_formatters, lua_format) end + +local json_format = {'BufWritePre', '*.json', 'lua vim.lsp.buf.formatting_sync(nil, 1000)'} +if O.json.autoformat then table.insert(auto_formatters, json_format) end + +utils.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'} + + -- {'User', 'GoyoLeave', 'lua require(\'galaxyline\').disable_galaxyline()'}, + -- {'User', 'GoyoEnter', 'lua require(\'galaxyline\').galaxyline_augroup()'}, + }, + _java = { + {'FileType', 'java', 'luafile ~/.config/nvim/lua/lsp/java-ls.lua'}, + {'FileType', 'java', 'nnoremap ca lua require(\'jdtls\').code_action()'} + }, + _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 WinLeave 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'} + }, + _auto_formatters = auto_formatters +}) diff --git a/lua/nv-globals.lua b/lua/nv-globals.lua index c2fdd771..b4e548a9 100644 --- a/lua/nv-globals.lua +++ b/lua/nv-globals.lua @@ -1,6 +1,5 @@ O = { - - auto_close_tree = 0, + auto_close_tree = 0, auto_complete = true, colorscheme = 'nvcode', python = { @@ -10,7 +9,15 @@ O = { isort = false, diagnostics = {virtual_text = true, signs = true, underline = true} }, - lua = {formatter = '', autoformat = false, virtual_text = true}, + + lua = { + + -- @usage can be lua-format + formatter = '', + + autoformat = false, + diagnostics = {virtual_text = true, signs = true, underline = true} + }, sh = { linter = '', formatter = '', @@ -23,9 +30,9 @@ O = { autoformat = false, diagnostics = {virtual_text = true, signs = true, underline = true} }, + json = {formatter = '', autoformat = false, diagnostics = {virtual_text = true, signs = true, underline = true}} -- css = {formatter = '', autoformat = false, virtual_text = true}, -- json = {formatter = '', autoformat = false, virtual_text = true} - } DATA_PATH = vim.fn.stdpath('data') diff --git a/lua/nv-utils/init.lua b/lua/nv-utils/init.lua index 237eafc6..c177cb09 100644 --- a/lua/nv-utils/init.lua +++ b/lua/nv-utils/init.lua @@ -22,35 +22,6 @@ function nv_utils.define_augroups(definitions) -- {{{1 end end -nv_utils.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'}, - {'FileType', 'java', 'luafile ~/.config/nvim/lua/lsp/java-ls.lua'}, - {'FileType', 'java', 'nnoremap ca lua require(\'jdtls\').code_action()'}, - {'FileType', 'markdown', 'setlocal wrap'}, {'FileType', 'markdown', 'setlocal spell'}, - {'BufWinEnter', '.sol', 'setlocal filetype=solidity'}, - - -- 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 WinLeave set showtabline=2'}, - {'BufRead', '*.sol', 'setlocal filetype=solidity'}, {'BufNewFile', '*.sol', 'setlocal filetype=solidity'}, - - -- {'BufWritePre', '*.jsx', 'lua vim.lsp.buf.formatting_sync(nil, 1000)'}, - -- {'BufWritePre', '*.js', 'lua vim.lsp.buf.formatting_sync(nil, 1000)'}, - -- {'BufWritePre', '*.py', 'lua vim.lsp.buf.formatting_sync(nil, 1000)'}, - -- {'BufWritePre', '*.lua', 'lua vim.lsp.buf.formatting_sync(nil, 1000)'}, - -- {'BufWritePre', '*.json', 'lua vim.lsp.buf.formatting_sync(nil, 1000)'} - -- {'User', 'GoyoLeave', 'lua require(\'galaxyline\').disable_galaxyline()'}, - -- {'User', 'GoyoEnter', 'lua require(\'galaxyline\').galaxyline_augroup()'}, - } -}) - --- Add this to lightbulb, java makes this annoying tho --- autocmd CursorHold,CursorHoldI * lua require'nvim-lightbulb'.update_lightbulb() - -- lsp function nv_utils.add_to_workspace_folder() diff --git a/nv-settings.lua b/nv-settings.lua index ad17272f..a77e25c0 100644 --- a/nv-settings.lua +++ b/nv-settings.lua @@ -5,15 +5,11 @@ Formatters and linters should be filled in as strings with either a global executable or a path to an executable -]] - - --- general +]] -- general O.auto_complete = true O.colorscheme = 'nvcode' O.auto_close_tree = 0 - -- python -- add things like O.python.formatter.yapf.exec_path -- add things like O.python.linter.flake8.exec_path @@ -21,15 +17,20 @@ O.auto_close_tree = 0 O.python.formatter = 'yapf' O.python.linter = 'flake8' O.python.isort = true -O.python.autoformat = false +O.python.autoformat = true O.python.diagnostics.virtual_text = true O.python.diagnostics.signs = true O.python.diagnostics.underline = true -- lua O.lua.formatter = 'lua-format' +-- O.lua.formatter = 'lua-format' +O.lua.autoformat = true -- javascript O.tsserver.formatter = 'prettier' O.tsserver.linter = nil -O.tsserver.autoformat = false +O.tsserver.autoformat = true + +-- json +O.json.autoformat = true diff --git a/test.py b/test.py new file mode 100644 index 00000000..6cf32a8b --- /dev/null +++ b/test.py @@ -0,0 +1,3 @@ + +def thing(parameter_list): + pass