From 03dc05a28cdb1f2ca31050a21665c7a56035d1eb Mon Sep 17 00:00:00 2001 From: "flyingscorpio@clevo" Date: Sat, 13 Aug 2022 12:54:02 +0200 Subject: [PATCH] Complete the completion setup --- .../files/lua/plugins/options/completion.lua | 55 ++++++++++--------- roles/neovim/files/lua/plugins/packer.lua | 3 +- 2 files changed, 31 insertions(+), 27 deletions(-) diff --git a/roles/neovim/files/lua/plugins/options/completion.lua b/roles/neovim/files/lua/plugins/options/completion.lua index 45f464f..497ede0 100644 --- a/roles/neovim/files/lua/plugins/options/completion.lua +++ b/roles/neovim/files/lua/plugins/options/completion.lua @@ -2,30 +2,33 @@ vim.opt.completeopt = { 'menu', 'menuone', 'noselect' } local cmp = require'cmp' - -cmp.setup({ - snippet = { - expand = function(args) - require('luasnip').lsp_expand(args.body) -- For `luasnip` users. - end, - }, - window = { - -- completion = cmp.config.window.bordered(), - -- documentation = cmp.config.window.bordered(), - }, - mapping = cmp.mapping.preset.insert({ - [''] = cmp.mapping.scroll_docs(-4), - [''] = cmp.mapping.scroll_docs(4), - [''] = cmp.mapping.complete(), - [''] = cmp.mapping.abort(), - [''] = cmp.mapping.select_next_item(), - [''] = cmp.mapping.select_prev_item(), - [''] = cmp.mapping.confirm({ select = false }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. - }), - sources = cmp.config.sources({ - { name = 'nvim_lsp' }, - { name = 'luasnip' }, - }, { +if cmp then + cmp.setup({ + snippet = { + expand = function(args) + require('luasnip').lsp_expand(args.body) + end, + }, + window = { + -- completion = cmp.config.window.bordered(), + -- documentation = cmp.config.window.bordered(), + }, + mapping = cmp.mapping.preset.insert({ + [''] = cmp.mapping.scroll_docs(-4), + [''] = cmp.mapping.scroll_docs(4), + [''] = cmp.mapping.complete(), + [''] = cmp.mapping.abort(), + [''] = cmp.mapping.select_next_item(), + [''] = cmp.mapping.select_prev_item(), + [''] = cmp.mapping.confirm({ select = false }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. + }), + sources = cmp.config.sources({ + { name = 'nvim_lua' }, + { name = 'nvim_lsp' }, + { name = 'path' }, + { name = 'luasnip' }, { name = 'buffer' }, - }) -}) + }), + experimental = { ghost_text = true } + }) +end diff --git a/roles/neovim/files/lua/plugins/packer.lua b/roles/neovim/files/lua/plugins/packer.lua index 8e655ea..272a32e 100644 --- a/roles/neovim/files/lua/plugins/packer.lua +++ b/roles/neovim/files/lua/plugins/packer.lua @@ -22,9 +22,10 @@ return require('packer').startup(function(use) -- Completion use 'hrsh7th/nvim-cmp' - use 'hrsh7th/cmp-nvim-lsp' use 'hrsh7th/cmp-buffer' use 'hrsh7th/cmp-path' + use 'hrsh7th/cmp-nvim-lua' + use 'hrsh7th/cmp-nvim-lsp' -- LuaSnip use 'L3MON4D3/LuaSnip'