From 9c3f1f019184753ec8a465af599169c032d59290 Mon Sep 17 00:00:00 2001 From: James Dixon Date: Thu, 29 Apr 2021 18:54:52 -0400 Subject: [PATCH] ale -> vim-lsp --- files/vim/.vim/vimrc | 137 ++++++++++++++++++++++++++----------------- 1 file changed, 82 insertions(+), 55 deletions(-) diff --git a/files/vim/.vim/vimrc b/files/vim/.vim/vimrc index 8844768..6241b97 100644 --- a/files/vim/.vim/vimrc +++ b/files/vim/.vim/vimrc @@ -7,7 +7,6 @@ "General Settings "================ "{{{ - "source system defaults if filereadable(expand('$VIMRUNTIME/defaults.vim')) unlet! g:skip_defaults_vim @@ -186,13 +185,6 @@ nnoremap obs :OpenBrowserSearch nmap gx (openbrowser-smart-search) vmap gx (openbrowser-smart-search) -"ale -nnoremap at :ALEToggle -nmap af (ale_fix) -nmap aK (ale_hover) -nmap agd (ale_go_to_definition) -nmap agd (ale_go_to_definition) - "vim-emmet let g:user_emmet_leader_key = '' @@ -202,7 +194,7 @@ nnoremap ggt :GitGutterToggle "vim-fugitive nnoremap gw :Gwrite nnoremap gl :Glog -nnoremap gs :Git +nnoremap g :Git nnoremap gd :Gdiffsplit nnoremap gp :Gpush nnoremap ga :Git add % @@ -278,10 +270,10 @@ call plug#begin(pluginDir) "toml Plug 'cespare/vim-toml' - " ==== general language support ==== "linting and lsp - Plug 'w0rp/ale' + Plug 'prabirshrestha/vim-lsp' + Plug 'mattn/vim-lsp-settings' " ==== misc editor plugins ==== Plug 'editorconfig/editorconfig-vim' @@ -301,30 +293,58 @@ let g:netrw_browsex_viewer = "xdg-open" let g:NetrwIsOpen = 0 "for toggle function let g:netrw_nogx = 1 -"ale -let g:ale_linters = { -\ 'python': ['flake8', 'pylint'], -\ 'javascript': ['eslint'], -\ 'ruby': ['rubocop'], -\ 'markdown': ['mdl', 'write-good'] -\} +"vim-lsp +function! s:on_lsp_buffer_enabled() abort + setlocal omnifunc=lsp#complete + setlocal signcolumn=yes + if exists('+tagfunc') | setlocal tagfunc=lsp#tagfunc | endif + nmap gd (lsp-definition) + nmap gs (lsp-document-symbol-search) + nmap gS (lsp-workspace-symbol-search) + nmap gr (lsp-references) + nmap gi (lsp-implementation) + nmap gt (lsp-type-definition) + nmap [g (lsp-previous-diagnostic) + nmap ]g (lsp-next-diagnostic) + nmap gp (lsp-previous-diagnostic) + nmap gn (lsp-next-diagnostic) + nmap K (lsp-hover) -let g:ale_fixers = { -\ '*': ['remove_trailing_lines', 'trim_whitespace'], -\ 'python': ['yapf', 'black'], -\ 'javascript': ['prettier', 'eslint'], -\ 'ruby': ['rubocop'], -\ 'css': ['prettier'], -\ 'scss': ['prettier'], -\ 'html': ['prettier'], -\ 'markdown': ['prettier'] -\} + nmap pdf (lsp-peek-definition) + nmap pdc (lsp-peek-declaration) + nmap pdi (lsp-peek-implementation) + nmap ca (lsp-code-action) + nmap cl (lsp-code-lens) + nmap r (lsp-rename) + nmap s (lsp-status) + nmap di (lsp-document-diagnostics) + nmap df (lsp-document-format) + + inoremap lsp#scroll(+4) + inoremap lsp#scroll(-4) + + let g:lsp_format_sync_timeout = 1000 + " let g:lsp_document_highlight_enabled = 0 + " let g:lsp_diagnostics_enabled = 0 + " highlight lspReference ctermfg=red guifg=red ctermbg=green guibg=green + + " refer to doc to add more commands + " https://github.com/prabirshrestha/vim-lsp#supported-commands +endfunction + +"lsp-settings configs +" let g:lsp_settings = { +" \ 'pyls-all': { +" \ 'workspace_config': { +" \ 'pyls': { +" \ 'configurationSources': ['flake8'] +" \ } +" \ } +" \ } +" \} + +" let g:lsp_settings_filetype_python = ['pyls-all', 'pyright-langserver', 'jedi-language-server'] -let g:ale_sign_error = '->' -let g:ale_sign_warning = '--' -let g:ale_lint_on_save = 1 -let g:ale_fix_on_save_ignore = 1 -highlight clear SignColumn "vim-markdown let g:vim_markdown_folding_disabled = 1 @@ -352,7 +372,6 @@ command! Trim %s/\s\+$// "Functions "========= "{{{ - "toggle functions "---------------- function! ToggleColorColumn() @@ -405,24 +424,6 @@ endfunction "============ "{{{ if has("autocmd") - "global autocmds - "----------------- - augroup global - autocmd! - "keep equal proportions when windows resized - autocmd VimResized * wincmd = - "save cursor position in a file - autocmd BufReadPost * if line("'\"") > 1 && line("'\"") - \ <= line("$") | exe "normal! g'\"" | endif - augroup END - - "general filetype autocmds - "------------------------- - augroup emmet_group - autocmd! - autocmd BufNewFile,BufRead *html*,*css*,*js* EmmetInstall - augroup END - "language specific filetype functions (run by autocmds) "------------------ function FT_python() @@ -451,7 +452,7 @@ if has("autocmd") endfunction function FT_markdown() - setlocal spell + " setlocal spell endfunction function FT_halftab() @@ -460,13 +461,39 @@ if has("autocmd") "language specific autocmds "-------------------------- - augroup language_group + augroup language_ft_group + autocmd! autocmd FileType python call FT_python() autocmd FileType ruby,eruby call FT_ruby() autocmd FileType go call FT_go() autocmd FileType html call FT_html() autocmd FileType markdown call FT_markdown() autocmd FileType sh,ruby,bash,html,css,scss,javascript,json,toml,yaml call FT_halftab() + autocmd BufNewFile,BufRead *html*,*css*,*js* EmmetInstall + augroup END + + "lsp autocmds + "------------ + augroup lsp_install + autocmd! + autocmd User lsp_buffer_enabled call s:on_lsp_buffer_enabled() + augroup END + + augroup lsp_ft_group + autocmd! + " autoformat with LSP + " autocmd BufWritePre *.rs call execute('LspDocumentFormatSync') + augroup END + + "global autocmds + "----------------- + augroup global + autocmd! + "keep equal proportions when windows resized + autocmd VimResized * wincmd = + "save cursor position in a file + autocmd BufReadPost * if line("'\"") > 1 && line("'\"") + \ <= line("$") | exe "normal! g'\"" | endif augroup END endif "}}} @@ -486,7 +513,7 @@ endif " colorscheme 1989 " colorscheme PaperColor " colorscheme gruvbox -" colorscheme jellybeans +colorscheme jellybeans " colorscheme molokai " colorscheme Benokai " colorscheme Monokai