-- require('nvim-autopairs').setup() -- local npairs = require('nvim-autopairs') -- local function imap(lhs, rhs, opts) -- local options = {noremap = false} -- if opts then options = vim.tbl_extend('force', options, opts) end -- vim.api.nvim_set_keymap('i', lhs, rhs, options) -- end -- _G.MUtils = {} -- -- TEST -- vim.g.completion_confirm_key = "" -- MUtils.completion_confirm = function() -- if vim.fn.pumvisible() ~= 0 then -- if vim.fn.complete_info()["selected"] ~= -1 then -- vim.fn["compe#confirm"]() -- -- return npairs.esc("") -- return npairs.esc("") -- else -- vim.defer_fn(function() -- vim.fn["compe#confirm"]("") -- end, 20) -- return npairs.esc("") -- end -- else -- return npairs.check_break_line_char() -- end -- end -- -- TEST -- MUtils.completion_confirm = function() -- if vim.fn.pumvisible() ~= 0 then -- if vim.fn.complete_info()["selected"] ~= -1 then -- vim.fn["compe#confirm"]() -- return npairs.esc("") -- else -- vim.api.nvim_select_popupmenu_item(0, false, false, {}) -- vim.fn["compe#confirm"]() -- return npairs.esc("") -- end -- else -- return npairs.check_break_line_char() -- end -- end -- MUtils.tab = function() -- if vim.fn.pumvisible() ~= 0 then -- return npairs.esc("") -- else -- if vim.fn["vsnip#available"](1) ~= 0 then -- vim.fn.feedkeys(string.format('%c%c%c(vsnip-expand-or-jump)', 0x80, 253, 83)) -- return npairs.esc("") -- else -- return npairs.esc("") -- end -- end -- end -- MUtils.s_tab = function() -- if vim.fn.pumvisible() ~= 0 then -- return npairs.esc("") -- else -- if vim.fn["vsnip#jumpable"](-1) ~= 0 then -- vim.fn.feedkeys(string.format('%c%c%c(vsnip-jump-prev)', 0x80, 253, 83)) -- return npairs.esc("") -- else -- return npairs.esc("") -- end -- end -- end -- -- Autocompletion and snippets -- vim.api.nvim_set_keymap('i', '', 'v:lua.MUtils.completion_confirm()', {expr = true, noremap = true}) -- -- imap("", "v:lua.MUtils.completion_confirm()", {expr = true, noremap = true}) -- imap("", "v:lua.MUtils.tab()", {expr = true, noremap = true}) -- imap("", "v:lua.MUtils.s_tab()", {expr = true, noremap = true}) local remap = vim.api.nvim_set_keymap local npairs = require('nvim-autopairs') -- skip it, if you use another global object _G.MUtils= {} vim.g.completion_confirm_key = "" MUtils.completion_confirm=function() if vim.fn.pumvisible() ~= 0 then if vim.fn.complete_info()["selected"] ~= -1 then return vim.fn["compe#confirm"](npairs.esc("")) else return npairs.esc("") end else return npairs.autopairs_cr() end end remap('i' , '','v:lua.MUtils.completion_confirm()', {expr = true , noremap = true})