From 21180efd6956509f5d031d5022b23d5fa6d3c43a Mon Sep 17 00:00:00 2001 From: Jidbo Date: Wed, 15 Dec 2021 12:31:17 +0100 Subject: [PATCH] neovim: switch to nvim-cmp --- nvim/lua/autocompletion.lua | 66 +++++++++++++++++++++++++++++++++++++ nvim/mappings.vim | 11 +++---- nvim/pluginoptions.vim | 32 +----------------- nvim/plugins.vim | 11 +++++-- 4 files changed, 80 insertions(+), 40 deletions(-) create mode 100644 nvim/lua/autocompletion.lua diff --git a/nvim/lua/autocompletion.lua b/nvim/lua/autocompletion.lua new file mode 100644 index 0000000..35c1da1 --- /dev/null +++ b/nvim/lua/autocompletion.lua @@ -0,0 +1,66 @@ +-- Setup nvim-cmp. +local cmp = require'cmp' + +cmp.setup({ + snippet = { + expand = function(args) + vim.fn["UltiSnips#Anon"](args.body) -- For `ultisnips` users. + end, + }, + mapping = { + [''] = cmp.mapping(cmp.mapping.scroll_docs(-4), { 'i', 'c' }), + [''] = cmp.mapping(cmp.mapping.scroll_docs(4), { 'i', 'c' }), + [''] = cmp.mapping(cmp.mapping.complete(), { 'i', 'c' }), + [''] = cmp.config.disable, -- Specify `cmp.config.disable` if you want to remove the default `` mapping. + [''] = cmp.mapping({ + i = cmp.mapping.abort(), + c = cmp.mapping.close(), + }), + -- Accept currently selected item. If none selected, `select` first item. + -- Set `select` to `false` to only confirm explicitly selected items. + [''] = cmp.mapping.confirm({ select = true }), + }, + sources = cmp.config.sources({ + { name = 'nvim_lsp' }, + }, { + { name = 'buffer' }, + }) +}) + +-- Use buffer source for `/` (if you enabled `native_menu`, this won't work anymore). +cmp.setup.cmdline('/', { + sources = { + { name = 'buffer' } + } +}) + +-- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore). +cmp.setup.cmdline(':', { + sources = cmp.config.sources({ + { name = 'path' } + }, { + { name = 'cmdline' } + }) +}) + +-- Setup lspconfig. +local capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities()) + +lspconfig = require "lspconfig" +lspconfig.tsserver.setup{ capabilities = capabilities } +lspconfig.intelephense.setup{ capabilities = capabilities } +lspconfig.vuels.setup{ capabilities = capabilities } +lspconfig.pylsp.setup{ capabilities = capabilities} +lspconfig.texlab.setup{ capabilities = capabilities } +lspconfig.gopls.setup { + cmd = {"gopls", "serve"}, + settings = { + gopls = { + analyses = { + unusedparams = true, + }, + staticcheck = true, + }, + }, + capabilities = capabilities +} diff --git a/nvim/mappings.vim b/nvim/mappings.vim index 7b45f55..0bebdf7 100644 --- a/nvim/mappings.vim +++ b/nvim/mappings.vim @@ -44,13 +44,10 @@ nnoremap w :Goyo nnoremap se :set spell spelllang=en nnoremap sd :set spell spelllang=de -" lsp mappings -imap (completion_trigger) - -nnoremap gd lua vim.lsp.buf.definition() +" nnoremap gd lua vim.lsp.buf.definition() nnoremap gh lua vim.lsp.buf.hover() -nnoremap gH lua vim.lsp.buf.code_action() -nnoremap gD lua vim.lsp.buf.implementation() +" nnoremap gH lua vim.lsp.buf.code_action() +" nnoremap gD lua vim.lsp.buf.implementation() nnoremap gs lua vim.lsp.buf.signature_help() -nnoremap gr lua vim.lsp.buf.references() +" nnoremap gr lua vim.lsp.buf.references() nnoremap gR lua vim.lsp.buf.rename() diff --git a/nvim/pluginoptions.vim b/nvim/pluginoptions.vim index 4d35268..13c8197 100644 --- a/nvim/pluginoptions.vim +++ b/nvim/pluginoptions.vim @@ -88,13 +88,11 @@ let g:tmuxcomplete#trigger = '' function! s:goyo_enter() set noshowcmd - set noshowmode set scrolloff=999 endfunction function! s:goyo_leave() set showcmd - set showmode set scrolloff=1 endfunction @@ -105,38 +103,10 @@ let g:goyo_width = 120 " AUTOCOMPLETION " ========================= -lua require'lspconfig'.tsserver.setup{ on_attach=require'completion'.on_attach } -lua require'lspconfig'.intelephense.setup{ on_attach=require'completion'.on_attach } -lua require'lspconfig'.vuels.setup{ on_attach=require'completion'.on_attach } -lua require'lspconfig'.pylsp.setup{ on_attach=require'completion'.on_attach } -lua require'lspconfig'.texlab.setup{ on_attach=require'completion'.on_attach } -lua <