diff options
-rw-r--r-- | pkgs/custom-neovim/asset/rc.vim | 40 | ||||
-rw-r--r-- | pkgs/custom-neovim/default.nix | 4 | ||||
-rw-r--r-- | pkgs/custom-neovim/plugins.nix | 18 |
3 files changed, 41 insertions, 21 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 diff --git a/pkgs/custom-neovim/default.nix b/pkgs/custom-neovim/default.nix index ca1fc75..1dff1f7 100644 --- a/pkgs/custom-neovim/default.nix +++ b/pkgs/custom-neovim/default.nix @@ -17,9 +17,7 @@ in pkgs.neovim.override { # autocomplete fzfWrapper fzf-vim - LanguageClient-neovim - deoplete-nvim - denite + async vim-lsp # load project specific config vim-localvimrc diff --git a/pkgs/custom-neovim/plugins.nix b/pkgs/custom-neovim/plugins.nix index 9ff92f2..5e0f6ea 100644 --- a/pkgs/custom-neovim/plugins.nix +++ b/pkgs/custom-neovim/plugins.nix @@ -76,6 +76,24 @@ in { }; }; + vim-lsp = buildVimPlugin { + name = "vim-lsp"; + src = fetchgit { + url = "https://github.com/prabirshrestha/vim-lsp.git"; + rev = "0310241af11adc6c3a7ba93955bc27b15744c957"; + sha256 = "0ccd6is75qlk8mg9wpwp1ypq68p7lgbq1c1jbpr6pwr59s53r4lx"; + }; + }; + + async = buildVimPlugin { + name = "async"; + src = fetchgit { + url = "https://github.com/prabirshrestha/async.vim.git"; + rev = "f3014550d7a799097e56b094104dd2cd66cf2612"; + sha256 = "0zn25qwycynagrij5rsp1x7kbfz612gn7xda0hvm4y7qr3pal77p"; + }; + }; + vim-color-akr = buildVimPlugin { name = "vim-color-akr"; src = ./asset/vim-color-akr; |