.files/nvim.lua/.config/nvim/lua/completion.lua

52 lines
1.3 KiB
Lua
Raw Normal View History

-- nvim cmp
2023-01-08 04:16:41 +01:00
-- setup completion menu
vim.cmd([[
set completeopt=menu,menuone,noselect
]])
-- setup cmp proper: pretty much default config
local cmp = require'cmp'
return cmp.setup({
snippet = {
expand = function(args)
require'snippy'.expand_snippet(args.body)
2023-01-08 04:16:41 +01:00
end,
},
mapping = cmp.mapping.preset.insert({
['<C-b>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping.complete(),
['<C-e>'] = cmp.mapping.abort(),
2023-01-08 04:16:41 +01:00
['<CR>'] = cmp.mapping.confirm({
behavior = cmp.ConfirmBehavior.Insert,
select = false,
})
}),
sources = cmp.config.sources({
{ name = 'nvim_lsp' },
{ name = 'snippy' }, -- For snippy users.
{ name = 'buffer' },
{ name = 'path' },
{ name = 'nvim_lua' },
}),
formatting = {
format = function(entry, vim_item)
vim_item.kind = string.format('%s', vim_item.kind)
vim_item.menu = ({
nvim_lsp = '[LSP]',
buffer = '[B]',
path = '[F]',
snippy = '[S]',
nvim_lua = '[vim]',
})[entry.source.name]
return vim_item
end,
}
})