You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.8 KiB
63 lines
1.8 KiB
9 months ago
|
local remap = vim.api.nvim_set_keymap
|
||
|
local npairs = require('nvim-autopairs')
|
||
|
|
||
|
npairs.setup({ map_bs = false, map_cr = false })
|
||
|
|
||
|
vim.g.coq_settings = { keymap = { recommended = false } }
|
||
|
|
||
|
-- these mappings are coq recommended mappings unrelated to nvim-autopairs
|
||
|
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
|
||
|
_G.MUtils= {}
|
||
|
|
||
|
MUtils.CR = function()
|
||
|
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
|
||
|
return npairs.autopairs_cr()
|
||
|
end
|
||
|
end
|
||
|
remap('i', '<cr>', '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('<c-e>') .. npairs.autopairs_bs()
|
||
|
else
|
||
|
return npairs.autopairs_bs()
|
||
|
end
|
||
|
end
|
||
|
remap('i', '<bs>', 'v:lua.MUtils.BS()', { expr = true, noremap = true })
|
||
|
|
||
|
|
||
|
-- put this to setup function and press <a-e> to use fast_wrap
|
||
|
npairs.setup({
|
||
|
fast_wrap = {},
|
||
|
})
|
||
|
|
||
|
-- change default fast_wrap
|
||
|
npairs.setup({
|
||
|
fast_wrap = {
|
||
|
map = '<M-e>',
|
||
|
chars = { '{', '[', '(', '"', "'" },
|
||
|
pattern = [=[[%'%"%>%]%)%}%,]]=],
|
||
|
end_key = '$',
|
||
|
before_key = 'h',
|
||
|
after_key = 'l',
|
||
|
cursor_pos_before = true,
|
||
|
keys = 'qwertyuiopzxcvbnmasdfghjkl',
|
||
|
manual_position = true,
|
||
|
highlight = 'Search',
|
||
|
highlight_grey='Comment'
|
||
|
},
|
||
|
})
|
||
|
|
||
|
npairs.remove_rule('`')
|