From 24158a72b22a6767223efedc71e8a0001559b049 Mon Sep 17 00:00:00 2001 From: hrsh7th Date: Tue, 17 Aug 2021 23:28:10 +0900 Subject: [PATCH] Fix duplicate setup --- lua/cmp/core.lua | 2 +- lua/cmp/mapping.lua | 21 +++++++++------------ 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/lua/cmp/core.lua b/lua/cmp/core.lua index cea51b9..c4e6a14 100644 --- a/lua/cmp/core.lua +++ b/lua/cmp/core.lua @@ -74,7 +74,7 @@ end core.on_keymap = function(keys, fallback) for key, action in pairs(config.get().mapping) do if key == keys then - return action(core, fallback) + return action.invoke(core, fallback) end end diff --git a/lua/cmp/mapping.lua b/lua/cmp/mapping.lua index 3525734..acefac8 100644 --- a/lua/cmp/mapping.lua +++ b/lua/cmp/mapping.lua @@ -2,22 +2,19 @@ local types = require('cmp.types') local mapping = {} -mapping.mode = function(modes, action) - if type(action) == 'table' then - if type(action.action) == 'function' then - action = action.action +mapping.mode = function(modes, action_or_invoke) + local invoke = action_or_invoke + if type(action_or_invoke) == 'table' then + if type(action_or_invoke.invoke) == 'function' then + invoke = action_or_invoke.invoke else - error('`action` must be function or result of `cmp.mapping.mode`.') + error('`invoke` must be function or result of `cmp.mapping.mode`.') end end - return setmetatable({ + return { modes = modes, - action = action, - }, { - __call = function(_, ...) - action(...) - end, - }) + invoke = invoke, + } end mapping.complete = function()