diff --git a/README.md b/README.md index 64735af..13f22d5 100644 --- a/README.md +++ b/README.md @@ -136,6 +136,7 @@ mapping = { - *cmp.mapping.scroll_docs(number)* - *cmp.mapping.complete()* - *cmp.mapping.close()* +- *cmp.mapping.abort()* - *cmp.mapping.confirm({ select = bool, behavior = cmp.ConfirmBehavior.{Insert,Replace} })* In addition, You can specify vim's mode to those mapping functions. diff --git a/lua/cmp/init.lua b/lua/cmp/init.lua index c028f8b..a2bf00c 100644 --- a/lua/cmp/init.lua +++ b/lua/cmp/init.lua @@ -48,6 +48,18 @@ cmp.close = function() end end +---Abort current completion +cmp.abort = function() + if vim.fn.pumvisible() == 1 then + keymap.feedkeys(keymap.t(''), 'n', function() + core.reset() + end) + return true; + else + return false + end +end + ---Select next item if possible cmp.select_next_item = function() if vim.fn.pumvisible() == 1 then diff --git a/lua/cmp/mapping.lua b/lua/cmp/mapping.lua index a9660fa..b185034 100644 --- a/lua/cmp/mapping.lua +++ b/lua/cmp/mapping.lua @@ -28,6 +28,15 @@ mapping.close = function() end end +---Abort current completion menu if it displayed. +mapping.abort = function() + return function(fallback) + if not require('cmp').abort() then + fallback() + end + end +end + ---Scroll documentation window. mapping.scroll_docs = function(delta) return function(fallback)