From 2ad7100749f73a7addbb4c956b8fa595ebbc1822 Mon Sep 17 00:00:00 2001 From: Sanchayan Maity Date: Mon, 25 May 2020 17:50:09 +0530 Subject: [PATCH] nvim: Configure nvim-completion & remove conflicting LSP bindings Signed-off-by: Sanchayan Maity --- nvim/.config/nvim/after/plugin/nvim_lsp.vim | 12 ++++---- nvim/.config/nvim/keymappings.vim | 5 +++ nvim/.config/nvim/plugin_settings.vim | 34 +++++++++++++++++++++ 3 files changed, 45 insertions(+), 6 deletions(-) diff --git a/nvim/.config/nvim/after/plugin/nvim_lsp.vim b/nvim/.config/nvim/after/plugin/nvim_lsp.vim index 59e7097..dd3e297 100644 --- a/nvim/.config/nvim/after/plugin/nvim_lsp.vim +++ b/nvim/.config/nvim/after/plugin/nvim_lsp.vim @@ -1,9 +1,9 @@ -nnoremap gd lua vim.lsp.buf.declaration() -nnoremap lua vim.lsp.buf.definition() -nnoremap K lua vim.lsp.buf.hover() -nnoremap gD lua vim.lsp.buf.implementation() -nnoremap lua vim.lsp.buf.signature_help() -nnoremap 1gD lua vim.lsp.buf.type_definition() +nnoremap gd lua vim.lsp.buf.definition() +nnoremap gk lua vim.lsp.buf.hover() +nnoremap gD lua vim.lsp.buf.declaration() +nnoremap gi lua vim.lsp.buf.implementation() +nnoremap gs lua vim.lsp.buf.signature_help() +nnoremap gt lua vim.lsp.buf.type_definition() nnoremap gr lua vim.lsp.buf.references() nnoremap g0 lua vim.lsp.buf.document_symbol() nnoremap gW lua vim.lsp.buf.workspace_symbol() diff --git a/nvim/.config/nvim/keymappings.vim b/nvim/.config/nvim/keymappings.vim index 764947a..55f9471 100644 --- a/nvim/.config/nvim/keymappings.vim +++ b/nvim/.config/nvim/keymappings.vim @@ -163,6 +163,11 @@ nnoremap " Map to ; to : for easy access to command mode. Behaviour of ; can be taken " care of by f due to clever-f nnoremap ; : + +" For nvim-completion +imap lua require'source'.prevCompletion() +imap lua require'source'.nextCompletion() + " Asynchronous make command! -bang -nargs=* -complete=file Make call asyncdo#run(0, &makeprg, ) command! -bang -nargs=* -complete=file LMake call asyncdo#lrun(0, &makeprg, ) diff --git a/nvim/.config/nvim/plugin_settings.vim b/nvim/.config/nvim/plugin_settings.vim index 469ac8a..a6e7026 100644 --- a/nvim/.config/nvim/plugin_settings.vim +++ b/nvim/.config/nvim/plugin_settings.vim @@ -68,5 +68,39 @@ let g:diagnostic_show_sign = 1 let g:diagnostic_auto_popup_while_jump = 1 let g:diagnostic_insert_delay = 1 +" For nvim-completion +let g:completion_enable_auto_popup = 1 +let g:completion_auto_change_source = 1 +let g:completion_chain_complete_list = { + \ 'c': [ + \ {'mode': 'keyn'}, + \ {'mode': 'tags'}, + \ {'mode': ''}, + \ {'mode': ''} + \], + \ 'haskell': [ + \ {'mode': 'keyn'}, + \ {'mode': 'tags'}, + \ {'mode': ''}, + \ {'mode': ''}, + \ {'mode': 'omni'} + \], + \ 'rust': [ + \ {'complete_items': ['lsp']}, + \ {'mode': 'keyn'} + \], + \ 'purescript': [ + \ {'mode': 'keyn'}, + \ {'mode': 'omni'}, + \ {'mode': ''}, + \ {'mode': ''} + \], + \ 'default': [ + \ {'mode': 'keyn'}, + \ {'mode': ''}, + \ {'mode': ''}, + \], + \} + lua require'nvim_lsp'.rust_analyzer.setup{} lua require'nvim_lsp'.rust_analyzer.setup{on_attach=require'diagnostic'.on_attach}