Vim: switch to nvim-cmp

This commit is contained in:
Robert Kmieć
2021-10-08 01:26:38 +02:00
parent 93946407ca
commit e26321dce5
4 changed files with 72 additions and 52 deletions

View File

@@ -36,7 +36,6 @@ local on_attach = function(client, bufnr)
buf_set_keymap('n', ']d', '<cmd>lua vim.lsp.diagnostic.goto_next()<CR>', opts)
buf_set_keymap('n', '<space>q', '<cmd>lua vim.lsp.diagnostic.set_loclist()<CR>', opts)
buf_set_keymap("n", "<space>f", "<cmd>lua vim.lsp.buf.formatting()<CR>", opts)
require'completion'.on_attach()
end
vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with(
@@ -56,7 +55,8 @@ vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with(
nvim_lsp.groovyls.setup {
cmd = { "java", "-jar", "/home/kmcr/tools/groovy-language-server/build/libs/groovy-language-server-all.jar" },
on_attach = on_attach,
on_publish_diagnostics = diagnostic_handler
on_publish_diagnostics = diagnostic_handler,
capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities())
}
nvim_lsp.ccls.setup {
@@ -70,16 +70,35 @@ nvim_lsp.ccls.setup {
},
},
on_attach = on_attach,
on_publish_diagnostics = diagnostic_handler
on_publish_diagnostics = diagnostic_handler,
capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities())
}
nvim_lsp.pylsp.setup {
settings = {
pylint = {
enabled = false
},
pyflakes = {
enabled = false,
},
},
flags = {
debounce_text_changes = 150,
},
on_attach = on_attach,
on_publish_diagnostics = diagnostic_handler,
capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities())
}
-- Use a loop to conveniently call 'setup' on multiple servers and
-- map buffer local keybindings when the language server attaches
local servers = { "pylsp", "cmake", "rust_analyzer" }
local servers = { "cmake", "rust_analyzer" }
for _, lsp in ipairs(servers) do
nvim_lsp[lsp].setup {
on_attach = on_attach,
on_publish_diagnostics = diagnostic_handler
on_publish_diagnostics = diagnostic_handler,
capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities())
}
end
EOF

View File

@@ -1,45 +0,0 @@
lua << EOF
local saga = require 'lspsaga'
-- add your config value here
-- default value
-- use_saga_diagnostic_sign = true
-- error_sign = '',
-- warn_sign = '',
-- hint_sign = '',
-- infor_sign = '',
-- dianostic_header_icon = '  ',
-- code_action_icon = ' ',
-- code_action_prompt = {
-- enable = true,
-- sign = true,
-- sign_priority = 20,
-- virtual_text = true,
-- },
-- finder_definition_icon = ' ',
-- finder_reference_icon = ' ',
-- max_preview_lines = 10, -- preview lines of lsp_finder and definition preview
-- finder_action_keys = {
-- open = 'o', vsplit = 's',split = 'i',quit = 'q',scroll_down = '<C-f>', scroll_up = '<C-b>' -- quit can be a table
-- },
-- code_action_keys = {
-- quit = 'q',exec = '<CR>'
-- },
-- rename_action_keys = {
-- quit = '<C-c>',exec = '<CR>' -- quit can be a table
-- },
-- definition_preview_icon = ' '
-- "single" "double" "round" "plus"
-- border_style = "single"
-- rename_prompt_prefix = '➤',
-- if you don't use nvim-lspconfig you must pass your server name and
-- the related filetypes into this table
-- like server_filetype_map = {metals = {'sbt', 'scala'}}
-- server_filetype_map = {}
--saga.init_lsp_saga {
-- your custom option here
--}
saga.init_lsp_saga()
EOF

View File

@@ -0,0 +1,38 @@
lua << EOF
-- Setup nvim-cmp.
local cmp = require'cmp'
cmp.setup({
snippet = {
expand = function(args)
-- For `vsnip` user.
vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` user.
-- For `luasnip` user.
-- require('luasnip').lsp_expand(args.body)
-- For `ultisnips` user.
vim.fn["UltiSnips#Anon"](args.body)
end,
},
mapping = {
['<C-d>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping.complete(),
['<C-e>'] = cmp.mapping.close(),
['<CR>'] = cmp.mapping.confirm({ select = true }),
},
sources = {
{ name = 'nvim_lsp' },
{ name = 'path' },
{ name = 'ultisnips' },
{ name = 'buffer' },
{ name = 'calc' },
}
})
EOF

View File

@@ -13,16 +13,24 @@ call plug#begin('~/.config/nvim/plugins')
" Code development helpers {{{
Plug 'neovim/nvim-lspconfig'
Plug 'glepnir/lspsaga.nvim'
"Plug 'glepnir/lspsaga.nvim'
Plug 'SirVer/ultisnips' | Plug 'honza/vim-snippets'
Plug 'wellle/context.vim'
Plug 'dbeniamine/cheat.sh-vim'
Plug 'puremourning/vimspector'
Plug 'derekwyatt/vim-fswitch'
Plug 'nvim-lua/completion-nvim'
Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}
" }}}
" Completion {{{
Plug 'hrsh7th/cmp-nvim-lsp'
Plug 'hrsh7th/cmp-buffer'
Plug 'hrsh7th/cmp-path'
Plug 'hrsh7th/cmp-calc'
Plug 'hrsh7th/nvim-cmp'
Plug 'quangnguyen30192/cmp-nvim-ultisnips'
" }}}
" Files switch, jump and grep-like tools {{{
"Plug 'preservim/nerdtree' | Plug 'Xuyuanp/nerdtree-git-plugin'
Plug 'Shougo/defx.nvim', { 'do': ':UpdateRemotePlugins' }