Vim: switch to nvim-cmp
This commit is contained in:
@@ -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', ']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>q', '<cmd>lua vim.lsp.diagnostic.set_loclist()<CR>', opts)
|
||||||
buf_set_keymap("n", "<space>f", "<cmd>lua vim.lsp.buf.formatting()<CR>", opts)
|
buf_set_keymap("n", "<space>f", "<cmd>lua vim.lsp.buf.formatting()<CR>", opts)
|
||||||
require'completion'.on_attach()
|
|
||||||
end
|
end
|
||||||
|
|
||||||
vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with(
|
vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with(
|
||||||
@@ -56,7 +55,8 @@ vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with(
|
|||||||
nvim_lsp.groovyls.setup {
|
nvim_lsp.groovyls.setup {
|
||||||
cmd = { "java", "-jar", "/home/kmcr/tools/groovy-language-server/build/libs/groovy-language-server-all.jar" },
|
cmd = { "java", "-jar", "/home/kmcr/tools/groovy-language-server/build/libs/groovy-language-server-all.jar" },
|
||||||
on_attach = on_attach,
|
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 {
|
nvim_lsp.ccls.setup {
|
||||||
@@ -70,16 +70,35 @@ nvim_lsp.ccls.setup {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
on_attach = on_attach,
|
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
|
-- Use a loop to conveniently call 'setup' on multiple servers and
|
||||||
-- map buffer local keybindings when the language server attaches
|
-- 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
|
for _, lsp in ipairs(servers) do
|
||||||
nvim_lsp[lsp].setup {
|
nvim_lsp[lsp].setup {
|
||||||
on_attach = on_attach,
|
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
|
end
|
||||||
EOF
|
EOF
|
||||||
|
|||||||
@@ -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
|
|
||||||
38
.config/nvim/after/plugin/nvim-cmp.rc.vim
Normal file
38
.config/nvim/after/plugin/nvim-cmp.rc.vim
Normal 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
|
||||||
@@ -13,16 +13,24 @@ call plug#begin('~/.config/nvim/plugins')
|
|||||||
|
|
||||||
" Code development helpers {{{
|
" Code development helpers {{{
|
||||||
Plug 'neovim/nvim-lspconfig'
|
Plug 'neovim/nvim-lspconfig'
|
||||||
Plug 'glepnir/lspsaga.nvim'
|
"Plug 'glepnir/lspsaga.nvim'
|
||||||
Plug 'SirVer/ultisnips' | Plug 'honza/vim-snippets'
|
Plug 'SirVer/ultisnips' | Plug 'honza/vim-snippets'
|
||||||
Plug 'wellle/context.vim'
|
Plug 'wellle/context.vim'
|
||||||
Plug 'dbeniamine/cheat.sh-vim'
|
Plug 'dbeniamine/cheat.sh-vim'
|
||||||
Plug 'puremourning/vimspector'
|
Plug 'puremourning/vimspector'
|
||||||
Plug 'derekwyatt/vim-fswitch'
|
Plug 'derekwyatt/vim-fswitch'
|
||||||
Plug 'nvim-lua/completion-nvim'
|
|
||||||
Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}
|
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 {{{
|
" Files switch, jump and grep-like tools {{{
|
||||||
"Plug 'preservim/nerdtree' | Plug 'Xuyuanp/nerdtree-git-plugin'
|
"Plug 'preservim/nerdtree' | Plug 'Xuyuanp/nerdtree-git-plugin'
|
||||||
Plug 'Shougo/defx.nvim', { 'do': ':UpdateRemotePlugins' }
|
Plug 'Shougo/defx.nvim', { 'do': ':UpdateRemotePlugins' }
|
||||||
|
|||||||
Reference in New Issue
Block a user