func! s:setup_ls(...) abort let l:servers = lsp#get_allowed_servers() " key mappings for l:server in l:servers let l:cap = lsp#get_server_capabilities(l:server) if has_key(l:cap, 'completionProvider') setlocal completefunc=lsp#complete endif if has_key(l:cap, 'hoverProvider') setlocal keywordprg=:LspHover endif if has_key(l:cap, 'codeActionProvider') nmap ga (lsp-code-action) endif if has_key(l:cap, 'definitionProvider') nmap gd (lsp-definition) nmap gk (lsp-peek-definition) endif endfor endfunc " register language server augroup LSC autocmd! autocmd User lsp_setup call lsp#register_server({ \ 'name': 'gopls', \ 'cmd': {_->['gopls']}, \ 'allowlist': ['go'] \}) autocmd User lsp_server_init call setup_ls() autocmd BufEnter * call setup_ls() augroup END " disable diagnostics etc. let g:lsp_diagnostics_enabled = 0 let g:lsp_diagnostics_signs_enabled = 0 let g:lsp_diagnostics_virtual_text_enabled = 0 let g:lsp_diagnostics_highlights_enabled = 0 let g:lsp_document_code_action_signs_enabled = 0