From 53f49c5145d05a53b997d3f647f97e5ac8e9bd5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wuelner=20Mart=C3=ADnez?= Date: Sat, 11 Feb 2023 07:31:42 -0600 Subject: [PATCH] feat(mapping): add all native mappings (#1430) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(mapping): fully mimics the behavior of native `` and `` Signed-off-by: Wuelner Martínez * feat(mapping): added more native mappings to the `cmdline` preset Signed-off-by: Wuelner Martínez * fix(mapping): improved `` and `` mapppings of `cmdline` Signed-off-by: Wuelner Martínez --------- Signed-off-by: Wuelner Martínez --- lua/cmp/config/mapping.lua | 38 ++++++++++++++++++++++++++++++++------ 1 file changed, 32 insertions(+), 6 deletions(-) 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