diff options
Diffstat (limited to 'pkgs/custom-neovim/asset/rc.vim')
-rw-r--r-- | pkgs/custom-neovim/asset/rc.vim | 40 |
1 files changed, 22 insertions, 18 deletions
diff --git a/pkgs/custom-neovim/asset/rc.vim b/pkgs/custom-neovim/asset/rc.vim index 822ac87..202b1ad 100644 --- a/pkgs/custom-neovim/asset/rc.vim +++ b/pkgs/custom-neovim/asset/rc.vim @@ -126,25 +126,29 @@ let g:localvimrc_persistent = 2 let g:wordmotion_prefix = '<Leader>' nmap <S-w> <Leader>w +let g:lsp_auto_enable = 0 + " spinning up a language client only makes " sense if such a client is available if executable('cquery') - let g:LanguageClient_serverCommands = { 'cpp': [ 'cquery' ] } - let g:LanguageClient_hoverPreview = "Never" - - set completefunc=LanguageClient#complete - set completeopt-=preview - - inoremap <C-n> <C-x><C-o> - " allow completion selection via CR without inserting a new line - imap <expr><CR> pumvisible() ? "\<C-y>" : "\<CR>" - - noremap <leader>lc :call LanguageClient_contextMenu()<CR> - noremap <leader>lr :call LanguageClient_rename()<CR> - nnoremap <silent> gd :call LanguageClient#textDocument_definition()<CR> - nnoremap <silent> gt :call LanguageClient#textDocument_typeDefinition()<CR> - nnoremap <silent> gi :call LanguageClient#textDocument_implementation()<CR> - - nmap <c-t> :Denite workspaceSymbol<CR> - nmap <a-t> :Denite documentSymbol<CR> + let g:lsp_auto_enable = 1 + + autocmd User lsp_setup call lsp#register_server({ + \ 'name': 'cquery', + \ 'cmd': {server_info->['cquery']}, + \ 'root_uri': {server_info->lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), 'compile_commands.json'))}, + \ 'initialization_options': { 'cacheDirectory': '/tmp/cquery' }, + \ 'whitelist': ['c', 'cpp', 'cc'], + \ }) + + nnoremap <silent> gd :LspDefinition<CR> + nnoremap <silent> gt :LspTypeDefinition<CR> + nnoremap <silent> gi :LspImplementation<CR> + nnoremap <silent> gr :LspReferences<CR> + + nmap <c-t> :LspWorkspaceSymbol<CR> + nmap <a-t> :LspDocumentSymbol<CR> + + autocmd FileType cpp setlocal omnifunc=lsp#complete + inoremap <C-m> <C-x><C-o> endif |