diff --git a/lua/cmp/config/mapping.lua b/lua/cmp/config/mapping.lua index b830009..de5d87f 100644 --- a/lua/cmp/config/mapping.lua +++ b/lua/cmp/config/mapping.lua @@ -1,6 +1,5 @@ local types = require('cmp.types') local misc = require('cmp.utils.misc') -local feedkeys = require('cmp.utils.feedkeys') local keymap = require('cmp.utils.keymap') local function merge_keymaps(base, override) @@ -43,10 +42,24 @@ mapping.preset.insert = function(override) i = mapping.select_prev_item({ behavior = types.cmp.SelectBehavior.Select }), }, [''] = { - i = mapping.select_next_item({ behavior = types.cmp.SelectBehavior.Insert }), + i = function() + local cmp = require('cmp') + if cmp.visible() then + cmp.select_next_item({ behavior = types.cmp.SelectBehavior.Insert }) + else + cmp.complete() + end + end, }, [''] = { - i = mapping.select_prev_item({ behavior = types.cmp.SelectBehavior.Insert }), + i = function() + local cmp = require('cmp') + if cmp.visible() then + cmp.select_prev_item({ behavior = types.cmp.SelectBehavior.Insert }) + else + cmp.complete() + end + end, }, [''] = { i = mapping.confirm({ select = false }), @@ -60,13 +73,23 @@ end ---Mapping preset cmdline-mode configuration. mapping.preset.cmdline = function(override) return merge_keymaps(override or {}, { + [''] = { + c = function() + local cmp = require('cmp') + if cmp.visible() then + cmp.select_next_item() + else + cmp.complete() + end + end, + }, [''] = { c = function() local cmp = require('cmp') if cmp.visible() then cmp.select_next_item() else - feedkeys.call(keymap.t(''), 'n') + cmp.complete() end end, }, @@ -76,7 +99,7 @@ mapping.preset.cmdline = function(override) if cmp.visible() then cmp.select_prev_item() else - feedkeys.call(keymap.t(''), 'n') + cmp.complete() end end, }, @@ -101,7 +124,10 @@ mapping.preset.cmdline = function(override) end, }, [''] = { - c = mapping.close(), + c = mapping.abort(), + }, + [''] = { + c = mapping.confirm({ select = false }), }, }) end