aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuangxiong Lin <[email protected]>2022-04-09 14:03:41 +0800
committerGuangxiong Lin <[email protected]>2022-04-09 14:03:41 +0800
commit144b3386e9efbcc52c4233e59f5995b0f0be0fc1 (patch)
tree1212b1ac0e2e79b3341eb12794d0f4557cc9b5b0
parent7f46db0ec4dfc6549faf9e9c957527a5433f81a8 (diff)
downloaddotfiles-144b3386e9efbcc52c4233e59f5995b0f0be0fc1.tar.gz
dotfiles-144b3386e9efbcc52c4233e59f5995b0f0be0fc1.tar.bz2
dotfiles-144b3386e9efbcc52c4233e59f5995b0f0be0fc1.zip
Use clangd to help complete c-family language (vim)
-rw-r--r--.vim/after/plugin/lsp.vim8
-rw-r--r--.vim/after/plugin/mucomplete.vim9
2 files changed, 17 insertions, 0 deletions
diff --git a/.vim/after/plugin/lsp.vim b/.vim/after/plugin/lsp.vim
index 9183f7d..a5f6e73 100644
--- a/.vim/after/plugin/lsp.vim
+++ b/.vim/after/plugin/lsp.vim
@@ -17,6 +17,14 @@ if executable('gopls')
\ })
endif
+if executable('clangd')
+ au User lsp_setup call lsp#register_server({
+ \ 'name': 'clangd',
+ \ 'cmd': {server_info->['clangd']},
+ \ 'allowlist': ['c', 'cpp'],
+ \ })
+endif
+
function! s:on_lsp_buffer_enabled() abort
setlocal omnifunc=lsp#complete
if exists('+tagfunc') | setlocal tagfunc=lsp#tagfunc | endif
diff --git a/.vim/after/plugin/mucomplete.vim b/.vim/after/plugin/mucomplete.vim
index 5287c25..cdfbe11 100644
--- a/.vim/after/plugin/mucomplete.vim
+++ b/.vim/after/plugin/mucomplete.vim
@@ -7,6 +7,15 @@ let g:mucomplete#can_complete = {}
let s:default_cond = { t -> t =~# '\%(\.\)$' }
let g:mucomplete#can_complete.default = { 'omni': s:default_cond }
+let s:c_cond = { t -> t =~# '\%(\.\|->\)$' }
+let g:mucomplete#can_complete.c = { 'omni': s:c_cond }
+let g:mucomplete#can_complete.objc = { 'omni': s:c_cond }
+
+let s:cpp_cond = { t -> t =~# '\%(\.\|->\|::\)$' }
+let g:mucomplete#can_complete.cpp = { 'omni': s:cpp_cond }
+let g:mucomplete#can_complete.objcpp = { 'omni': s:cpp_cond }
+let g:mucomplete#can_complete.cuda = { 'omni': s:cpp_cond }
+
let g:mucomplete#chains = {}
let g:mucomplete#chains.default =
\ [ 'ulti', 'user', 'omni', 'tags', 'keyn', 'path' ]