local remap = vim.api.nvim_set_keymap local npairs = require('nvim-autopairs') npairs.setup({ map_bs = false }) vim.g.coq_settings = { keymap = { recommended = false } } -- these mappings are coq recommended mappings unrelated to nvim-autopairs remap('i', '', [[pumvisible() ? "" : ""]], { expr = true, noremap = true }) remap('i', '', [[pumvisible() ? "" : ""]], { expr = true, noremap = true }) remap('i', '', [[pumvisible() ? "" : ""]], { expr = true, noremap = true }) remap('i', '', [[pumvisible() ? "" : ""]], { expr = true, noremap = true }) -- skip it, if you use another global object _G.MUtils= {} MUtils.CR = function() if vim.fn.pumvisible() ~= 0 then if vim.fn.complete_info({ 'selected' }).selected ~= -1 then return npairs.esc('') else return npairs.esc('') .. npairs.autopairs_cr() end else return npairs.autopairs_cr() end end remap('i', '', 'v:lua.MUtils.CR()', { expr = true, noremap = true }) MUtils.BS = function() if vim.fn.pumvisible() ~= 0 and vim.fn.complete_info({ 'mode' }).mode == 'eval' then return npairs.esc('') .. npairs.autopairs_bs() else return npairs.autopairs_bs() end end remap('i', '', 'v:lua.MUtils.BS()', { expr = true, noremap = true })