From e108a70f9115fc503c96628748185267afd15f00 Mon Sep 17 00:00:00 2001 From: zztrieuzz Date: Thu, 23 Sep 2021 11:23:42 +0700 Subject: [PATCH] feat: map to delete pair --- README.md | 1 + lua/nvim-autopairs.lua | 24 +++++++++++++++++++++--- tests/nvim-autopairs_spec.lua | 13 ++++++++++++- 3 files changed, 34 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index f2299cf..e9333cf 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,7 @@ local enable_afterquote = true -- add bracket pairs after quote local enable_check_bracket_line = true --- check bracket in same line local check_ts = false local map_bs = true -- map the key +local map_c_w = false -- map to delete an pair if possible ``` diff --git a/lua/nvim-autopairs.lua b/lua/nvim-autopairs.lua index bd09143..78f23e3 100644 --- a/lua/nvim-autopairs.lua +++ b/lua/nvim-autopairs.lua @@ -13,6 +13,7 @@ M.state = { local default = { map_bs = true, + map_c_w = false, disable_filetype = { 'TelescopePrompt', 'spectre_panel' }, ignored_next_char = string.gsub([[ [%w%%%'%[%"%.] ]], '%s+', ''), check_ts = false, @@ -302,12 +303,21 @@ M.on_attach = function(bufnr) { expr = true, noremap = true } ) end + if M.config.map_c_w then + api.nvim_buf_set_keymap( + bufnr, + 'i', + '', + string.format('v:lua.MPairs.autopairs_c_w(%d)', bufnr), + { expr = true, noremap = true } + ) + end api.nvim_buf_set_var(bufnr, 'nvim-autopairs', 1) end -M.autopairs_bs = function(bufnr) +local autopairs_delete = function(bufnr,key) if is_disable() then - return utils.esc(utils.key.bs) + return utils.esc(key) end local line = utils.text_get_current_line(bufnr) local _, col = utils.get_cursor() @@ -343,7 +353,15 @@ M.autopairs_bs = function(bufnr) end end end - return utils.esc(utils.key.bs) + return utils.esc(key) +end + +M.autopairs_c_w = function (bufnr) + return autopairs_delete(bufnr, "U") +end + +M.autopairs_bs = function (bufnr) + return autopairs_delete(bufnr,utils.key.bs) end M.autopairs_map = function(bufnr, char) diff --git a/tests/nvim-autopairs_spec.lua b/tests/nvim-autopairs_spec.lua index 09cb171..b24c6d6 100644 --- a/tests/nvim-autopairs_spec.lua +++ b/tests/nvim-autopairs_spec.lua @@ -485,7 +485,18 @@ local data = { before = [[{{("It doesn't name %s", ''), 'ErrorMsg'| }}, ]], after = [[{{("It doesn't name %s", ''), 'ErrorMsg''|' }}, ]], end_cursor = 42, - } + }, + { + setup_func = function() + npairs.setup({ + map_c_w = true + }) + end, + name = "map ", + key = "", + before = [[aa'|' ]], + after = [[aa| ]], + }, } local run_data = {}