From e022a99f6d12406236355e8cd41038250e1798ed Mon Sep 17 00:00:00 2001 From: Blallo Date: Fri, 28 Jan 2022 12:30:52 +0100 Subject: [PATCH] Refactor config loading and change ALE and languageClient configs --- .gitmodules | 3 ++ archbootstrap.sh | 2 ++ config/after/ale.vim | 40 +++++++++++++++++++++ config/{ => before}/airline.vim | 0 config/{ => before}/ale.vim | 45 ------------------------ config/{ => before}/deoplete.vim | 0 config/{ => before}/fzf.vim | 0 config/{ => before}/indent.vim | 0 config/before/language-client.vim | 52 ++++++++++++++++++++++++++++ config/{ => before}/mucomplete.vim | 0 config/{ => before}/neosnippets.vim | 0 config/{ => before}/nerdtree.vim | 0 config/{ => before}/plug.vim | 0 config/{ => before}/powerline.vim | 0 config/{ => before}/rg.vim | 0 config/{ => before}/theme.vim | 0 config/{ => before}/vim-go.vim | 0 config/{ => before}/vim-rooter.vim | 0 config/language-client.vim | 34 ------------------ pack/vendor/start/docker-compose.vim | 1 + vimrc | 29 +++++++++------- 21 files changed, 114 insertions(+), 92 deletions(-) create mode 100644 config/after/ale.vim rename config/{ => before}/airline.vim (100%) rename config/{ => before}/ale.vim (64%) rename config/{ => before}/deoplete.vim (100%) rename config/{ => before}/fzf.vim (100%) rename config/{ => before}/indent.vim (100%) create mode 100644 config/before/language-client.vim rename config/{ => before}/mucomplete.vim (100%) rename config/{ => before}/neosnippets.vim (100%) rename config/{ => before}/nerdtree.vim (100%) rename config/{ => before}/plug.vim (100%) rename config/{ => before}/powerline.vim (100%) rename config/{ => before}/rg.vim (100%) rename config/{ => before}/theme.vim (100%) rename config/{ => before}/vim-go.vim (100%) rename config/{ => before}/vim-rooter.vim (100%) delete mode 100644 config/language-client.vim create mode 160000 pack/vendor/start/docker-compose.vim diff --git a/.gitmodules b/.gitmodules index a847727..8d62a40 100644 --- a/.gitmodules +++ b/.gitmodules @@ -95,3 +95,6 @@ [submodule "pack/vendor/start/indentLine"] path = pack/vendor/start/indentLine url = https://github.com/Yggdroot/indentLine +[submodule "pack/vendor/start/docker-compose.vim"] + path = pack/vendor/start/docker-compose.vim + url = https://github.com/skanehira/docker-compose.vim diff --git a/archbootstrap.sh b/archbootstrap.sh index ebb478b..ca160de 100755 --- a/archbootstrap.sh +++ b/archbootstrap.sh @@ -10,6 +10,8 @@ sudo pacman -Sy \ mypy \ python-greenlet +echo "Install from AUR: typescript-language-server" + pip3 install --user pynvim mkdir .{swp,backup,undo} diff --git a/config/after/ale.vim b/config/after/ale.vim new file mode 100644 index 0000000..6ca2740 --- /dev/null +++ b/config/after/ale.vim @@ -0,0 +1,40 @@ +function! s:getValaProjectRoot(buffer) abort + let l:cur_path_abs = fnamemodify(a:buffer, ':p:h') + let l:maybe_doap_file = expand(l:cur_path_abs . s:sep . '*.doap') + if !empty(l:maybe_doap_file) + return l:cur_path_abs + endif + + for l:path in ale#path#Upwards(expand('#' . a:buffer . ':p:h')) + if filereadable(expand(l:path . '*.doap')) + return l:path + endif + endfor + + return '' +endfunction + +function! s:curPath(buffer) abort + let l:cur_path = fnamemodify(a:buffer, ':p:h') + return l:cur_path +endfunction + +call ale#linter#Define('vala', { +\ 'name': 'vala-language-server', +\ 'lsp': 'stdio', +\ 'output_stream': 'both', +\ 'executable': '/usr/bin/vala-language-server', +\ 'command': '%e', +\ 'project_root': function('s:getValaProjectRoot'), +\ 'callback': 'ale#handlers#unix#HandleAsWarning', +\}) + +call ale#linter#Define('promql', { +\ 'name': 'promql-langserver', +\ 'lsp': 'stdio', +\ 'output_stream': 'both', +\ 'executable': '/usr/local/bin/promql-langserver', +\ 'command': '%e', +\ 'project_root': function('s:curPath'), +\ 'callback': 'ale#handlers#unix#HandleAsWarning', +\}) diff --git a/config/airline.vim b/config/before/airline.vim similarity index 100% rename from config/airline.vim rename to config/before/airline.vim diff --git a/config/ale.vim b/config/before/ale.vim similarity index 64% rename from config/ale.vim rename to config/before/ale.vim index e487f1d..84961ea 100644 --- a/config/ale.vim +++ b/config/before/ale.vim @@ -45,49 +45,6 @@ let g:ale_fixers = { \ 'scss': ['prettier'], \} -function! s:getValaProjectRoot(buffer) abort - let l:cur_path_abs = fnamemodify(a:buffer, ':p:h') - let l:maybe_doap_file = expand(l:cur_path_abs . s:sep . '*.doap') - if !empty(l:maybe_doap_file) - return l:cur_path_abs - endif - - for l:path in ale#path#Upwards(expand('#' . a:buffer . ':p:h')) - if filereadable(expand(l:path . '*.doap')) - return l:path - endif - endfor - - return '' -endfunction - -function! s:curPath(buffer) abort - let l:cur_path = fnamemodify(a:buffer, ':p:h') - return l:cur_path -endfunction - -packloadall - -call ale#linter#Define('vala', { -\ 'name': 'vala-language-server', -\ 'lsp': 'stdio', -\ 'output_stream': 'both', -\ 'executable': '/usr/bin/vala-language-server', -\ 'command': '%e', -\ 'project_root': function('s:getValaProjectRoot'), -\ 'callback': 'ale#handlers#unix#HandleAsWarning', -\}) - -call ale#linter#Define('promql', { -\ 'name': 'promql-langserver', -\ 'lsp': 'stdio', -\ 'output_stream': 'both', -\ 'executable': '/usr/local/bin/promql-langserver', -\ 'command': '%e', -\ 'project_root': function('s:curPath'), -\ 'callback': 'ale#handlers#unix#HandleAsWarning', -\}) - let g:ale_rust_rls_config = { \ 'rust': { \ 'clippy_preference': 'on' @@ -117,5 +74,3 @@ let g:ale_fix_on_save = 1 let g:ale_hover_to_preview = 1 let g:ale_float_preview = 1 let g:ale_floating_window_border = ['│', '─', '╭', '╮', '╯', '╰'] - -packloadall diff --git a/config/deoplete.vim b/config/before/deoplete.vim similarity index 100% rename from config/deoplete.vim rename to config/before/deoplete.vim diff --git a/config/fzf.vim b/config/before/fzf.vim similarity index 100% rename from config/fzf.vim rename to config/before/fzf.vim diff --git a/config/indent.vim b/config/before/indent.vim similarity index 100% rename from config/indent.vim rename to config/before/indent.vim diff --git a/config/before/language-client.vim b/config/before/language-client.vim new file mode 100644 index 0000000..0f59b95 --- /dev/null +++ b/config/before/language-client.vim @@ -0,0 +1,52 @@ +""" LanguageClient +" Required for operations modifying multiple buffers like rename. +set hidden + +" let g:LanguageClient_serverCommands = { +" \ 'javascript': ['/usr/local/bin/javascript-typescript-stdio'], +" \ 'javascript.jsx': ['tcp://127.0.0.1:2089'], +" \ 'python': ['/usr/local/bin/pyls'], +" \ 'ruby': ['~/.rbenv/shims/solargraph', 'stdio'], +" \ } + +let g:LanguageClient_serverCommands = { +\ 'rust': ['/usr/bin/rustup', 'run', 'stable', 'rls'], +\ 'elixir': ['/usr/lib/elixir-ls/language_server.sh'], +\ 'elm': ['/usr/bin/elm-language-server'], +\ 'python': ['/usr/bin/pyls'], +\ 'go': ['/usr/bin/gopls'], +\ 'promql': ['/usr/local/bin/promql-langserver'], +\ 'java': ['/usr/bin/java-language-server'], +\ 'typescript': ['/usr/bin/typescript-language-server', '--stdio'], +\ 'typescriptreact': ['/usr/bin/typescript-language-server', '--stdio'], +\ } + +let g:LanguageClient_rootMarkers = { +\ 'elm': ['elm.json'], +\ 'typescript': ['package.json'], +\ 'typescriptreact': ['package.json'], +\ } + +let g:LanguageClient_hoverPreview = 'always' +let g:LanguageClient_loggingFile = expand('~/.vim/LanguageClient.log') + +function LC_maps() + if has_key(g:LanguageClient_serverCommands, &filetype) + nnoremap K :call LanguageClient#textDocument_hover() + nnoremap gdd :call LanguageClient#textDocument_definition() + nnoremap gdi :call LanguageClient#textDocument_implementation() + nnoremap gdt :call LanguageClient#textDocument_typeDefinition() + nnoremap gds :call LanguageClient#textDocument_documentSymbol() + nnoremap gdr :call LanguageClient#textDocument_references() + nnoremap :call LanguageClient#textDocument_rename() + + " noremap (lcn-menu) + " noremap K (lcn-hover) + " noremap gd (lcn-definition) + " noremap (lcn-rename) + + set formatexpr=LanguageClient#textDocument_rangeFormatting_sync() + endif +endfunction + +autocmd FileType * call LC_maps() diff --git a/config/mucomplete.vim b/config/before/mucomplete.vim similarity index 100% rename from config/mucomplete.vim rename to config/before/mucomplete.vim diff --git a/config/neosnippets.vim b/config/before/neosnippets.vim similarity index 100% rename from config/neosnippets.vim rename to config/before/neosnippets.vim diff --git a/config/nerdtree.vim b/config/before/nerdtree.vim similarity index 100% rename from config/nerdtree.vim rename to config/before/nerdtree.vim diff --git a/config/plug.vim b/config/before/plug.vim similarity index 100% rename from config/plug.vim rename to config/before/plug.vim diff --git a/config/powerline.vim b/config/before/powerline.vim similarity index 100% rename from config/powerline.vim rename to config/before/powerline.vim diff --git a/config/rg.vim b/config/before/rg.vim similarity index 100% rename from config/rg.vim rename to config/before/rg.vim diff --git a/config/theme.vim b/config/before/theme.vim similarity index 100% rename from config/theme.vim rename to config/before/theme.vim diff --git a/config/vim-go.vim b/config/before/vim-go.vim similarity index 100% rename from config/vim-go.vim rename to config/before/vim-go.vim diff --git a/config/vim-rooter.vim b/config/before/vim-rooter.vim similarity index 100% rename from config/vim-rooter.vim rename to config/before/vim-rooter.vim diff --git a/config/language-client.vim b/config/language-client.vim deleted file mode 100644 index 284306f..0000000 --- a/config/language-client.vim +++ /dev/null @@ -1,34 +0,0 @@ -""" LanguageClient -" Required for operations modifying multiple buffers like rename. -set hidden - -" let g:LanguageClient_serverCommands = { -" \ 'javascript': ['/usr/local/bin/javascript-typescript-stdio'], -" \ 'javascript.jsx': ['tcp://127.0.0.1:2089'], -" \ 'python': ['/usr/local/bin/pyls'], -" \ 'ruby': ['~/.rbenv/shims/solargraph', 'stdio'], -" \ } - -let g:LanguageClient_serverCommands = { -\ 'rust': ['/usr/bin/rustup', 'run', 'stable', 'rls'], -\ 'elixir': ['/usr/lib/elixir-ls/language_server.sh'], -\ 'elm': ['/usr/bin/elm-language-server'], -\ 'python': ['/usr/bin/pyls'], -\ 'go': ['/usr/bin/gopls'], -\ 'promql': ['/usr/local/bin/promql-langserver'], -\ 'java': ['/usr/bin/java-language-server'] -\ } - -let g:LanguageClient_rootMarkers = { -\ 'elm': ['elm.json'], -\ } - -let g:LanguageClient_hoverPreview = 'always' - -" note that if you are using Plug mapping you should not use `noremap` mappings. -nmap (lcn-menu) -" Or map each action separately -nmap K (lcn-hover) -nmap gd (lcn-definition) -nmap (lcn-rename) - diff --git a/pack/vendor/start/docker-compose.vim b/pack/vendor/start/docker-compose.vim new file mode 160000 index 0000000..8a6dbc8 --- /dev/null +++ b/pack/vendor/start/docker-compose.vim @@ -0,0 +1 @@ +Subproject commit 8a6dbc869200f11d00f532e6bee8f2e7ce4ef64e diff --git a/vimrc b/vimrc index 5413f82..600ba9c 100644 --- a/vimrc +++ b/vimrc @@ -17,17 +17,21 @@ let g:python_host_prog='/usr/bin/python' """ source " all other includes are in alphabetical order -source $VIMHOME/config/ale.vim -source $VIMHOME/config/fzf.vim -source $VIMHOME/config/indent.vim -source $VIMHOME/config/language-client.vim -source $VIMHOME/config/mucomplete.vim -source $VIMHOME/config/nerdtree.vim -source $VIMHOME/config/powerline.vim -source $VIMHOME/config/rg.vim -source $VIMHOME/config/theme.vim " this sets the colorscheme -source $VIMHOME/config/vim-go.vim -source $VIMHOME/config/vim-rooter.vim +source $VIMHOME/config/before/ale.vim +source $VIMHOME/config/before/fzf.vim +source $VIMHOME/config/before/indent.vim +source $VIMHOME/config/before/language-client.vim +source $VIMHOME/config/before/mucomplete.vim +source $VIMHOME/config/before/nerdtree.vim +source $VIMHOME/config/before/powerline.vim +source $VIMHOME/config/before/rg.vim +source $VIMHOME/config/before/theme.vim " this sets the colorscheme +source $VIMHOME/config/before/vim-go.vim +source $VIMHOME/config/before/vim-rooter.vim + +packloadall + +source $VIMHOME/config/after/ale.vim """ general @@ -37,8 +41,6 @@ set nospell " au VimLeave * :!clear syntax on -packloadall - silent! helptags ALL " Enable persistent undo @@ -153,6 +155,7 @@ nnoremap :FZF nnoremap f :Buffers nnoremap :Files nnoremap :Rg +nnoremap k :exe "Rg " . expand("") nnoremap s :call Fzf_dev() nnoremap c :Commits nnoremap b :Git blame