diff --git a/config/vim/.vim/vimrc b/config/vim/.vim/vimrc index 0cbc139..51944db 100644 --- a/config/vim/.vim/vimrc +++ b/config/vim/.vim/vimrc @@ -113,9 +113,39 @@ call plug#begin(pluginDir) Plug 'editorconfig/editorconfig-vim' Plug 'prabirshrestha/vim-lsp' Plug 'mattn/vim-lsp-settings' + " Plug 'fatih/vim-go' + Plug 'prabirshrestha/asyncomplete.vim' + Plug 'prabirshrestha/asyncomplete-lsp.vim' Plug 'freitass/todo.txt-vim' call plug#end() +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 rn (lsp-rename) + nmap [g (lsp-previous-diagnostic) + nmap ]g (lsp-next-diagnostic) + nmap K (lsp-hover) + " nnoremap lsp#scroll(+4) + " nnoremap lsp#scroll(-4) + + let g:lsp_format_sync_timeout = 1000 + autocmd! BufWritePre *.rs,*.go call execute('LspDocumentFormatSync') +endfunction + +augroup lsp_install + au! + " call s:on_lsp_buffer_enabled only for languages that has the server registered. + autocmd User lsp_buffer_enabled call s:on_lsp_buffer_enabled() +augroup END + "local rc "-------- if filereadable(expand("~/.local/.vimrc"))