config.nvim/lua/plugins/nvim-autopairs.lua

41 lines
1.3 KiB
Lua
Raw Normal View History

local remap = vim.api.nvim_set_keymap
local npairs = require('nvim-autopairs')
2021-10-25 12:10:08 +08:00
npairs.setup({map_bs = false})
-- these mappings are coq recommended mappings unrelated to nvim-autopairs
2021-10-25 12:10:08 +08:00
remap('i', '<esc>', [[pumvisible() ? "<c-e><esc>" : "<esc>"]],
{expr = true, noremap = true})
remap('i', '<c-c>', [[pumvisible() ? "<c-e><c-c>" : "<c-c>"]],
{expr = true, noremap = true})
remap('i', '<tab>', [[pumvisible() ? "<c-n>" : "<tab>"]],
{expr = true, noremap = true})
remap('i', '<s-tab>', [[pumvisible() ? "<c-p>" : "<bs>"]],
{expr = true, noremap = true})
-- skip it, if you use another global object
2021-10-25 12:10:08 +08:00
_G.MUtils = {}
MUtils.CR = function()
2021-10-25 12:10:08 +08:00
if vim.fn.pumvisible() ~= 0 then
if vim.fn.complete_info({'selected'}).selected ~= -1 then
return npairs.esc('<c-y>')
else
return npairs.esc('<c-e>') .. npairs.autopairs_cr()
end
else
2021-10-25 12:10:08 +08:00
return npairs.autopairs_cr()
end
end
2021-10-25 12:10:08 +08:00
remap('i', '<cr>', 'v:lua.MUtils.CR()', {expr = true, noremap = true})
MUtils.BS = function()
2021-10-25 12:10:08 +08:00
if vim.fn.pumvisible() ~= 0 and vim.fn.complete_info({'mode'}).mode ==
'eval' then
return npairs.esc('<c-e>') .. npairs.autopairs_bs()
else
return npairs.autopairs_bs()
end
end
2021-10-25 12:10:08 +08:00
remap('i', '<bs>', 'v:lua.MUtils.BS()', {expr = true, noremap = true})