{# LSP client for Vim8 and neovim #} {{ add_source('prabirshrestha/vim-lsp') -}} {{ add_source('mattn/vim-lsp-settings') -}} " (providers are automatically detected thanks to vim-lsp-settings. " You can even install some locally using :LspInstallServer) let g:lsp_signs_enabled = 1 let g:lsp_diagnostics_echo_cursor = 1 let g:lsp_signs_error = {'text': '✗'} let g:lsp_signs_warning = {'text': '‼'} let g:lsp_signs_information = {'text': 'ℹ'} let g:lsp_signs_hint = {'text': '?'} let g:lsp_highlight_references_enabled = 1 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 gD (lsp-declaration) nmap gr (lsp-references) nmap gi (lsp-implementation) nmap rn (lsp-rename) nmap [d (lsp-previous-diagnostic) nmap ]d (lsp-next-diagnostic) nmap K (lsp-hover) nmap f (lsp-document-format) vmap f (lsp-document-range-format) inoremap lsp#scroll(+4) inoremap lsp#scroll(-4) 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