better movement while using cmp

This commit is contained in:
2023-07-06 12:29:38 -04:00
parent 713bba997a
commit 0f838d6251

View File

@ -38,6 +38,12 @@ local has_words_before = function()
[1]:sub(col, col):match("%s") == nil
end
-- insert '(' after completing a function
cmp.event:on(
'confirm_done',
require('nvim-autopairs.completion.cmp').on_confirm_done()
)
local luasnip = require('luasnip')
require("luasnip.loaders.from_vscode").lazy_load()
@ -81,11 +87,13 @@ cmp.setup {
return vim_item
end
},
-- mappings -----------------------------------------------------------------
mapping = cmp.mapping.preset.insert({
["<Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
elseif luasnip.expand_or_jumpable() then
elseif luasnip.expand_or_locally_jumpable() then
luasnip.expand_or_jump()
elseif has_words_before() then
cmp.complete()
@ -102,9 +110,20 @@ cmp.setup {
fallback()
end
end, { "i", "s" }),
['<CR>'] = cmp.mapping.confirm({ select = true }),
['<CR>'] = cmp.mapping({
i = function(fallback)
if cmp.visible() and cmp.get_active_entry() then
cmp.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = false })
else
fallback()
end
end,
s = cmp.mapping.confirm({ select = true }),
c = cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = true }),
}),
['<ESC>'] = cmp.mapping.close(),
}),
sorting = {
comparators = {
cmp.config.compare.offset,