-- Setup nvim-cmp. local status_ok, npairs = pcall(require, "nvim-autopairs") if not status_ok then return end -- local Rule = require("nvim-autopairs.rule") npairs.setup({ check_ts = true, ts_config = { lua = { "string", "source" }, javascript = { "string", "template_string" }, java = false, }, disable_filetype = { "TelescopePrompt", "spectre_panel" }, fast_wrap = { map = "", chars = { "{", "[", "(", '"', "'", "`" }, pattern = string.gsub([[ [%'%"%)%>%]%)%}%,] ]], "%s+", ""), offset = 0, -- Offset from pattern match end_key = "$", keys = "qwertyuiopzxcvbnmasdfghjkl", check_comma = true, highlight = "PmenuSel", highlight_grey = "LineNr", }, }) -- npairs.add_rules({ -- Rule("/", ">"):with_pair(function(opts) -- local pair = opts.line:sub(opts.col, opts.col + 1) -- if (vim.bo.filetype == "jsx" or vim.bo.filetype == "tsx") and pair == "/" then -- return npairs.esc("/>") .. "i" -- end -- end), -- }) -- If you want insert `(` after select function or method item local cmp_autopairs = require("nvim-autopairs.completion.cmp") local cmp_status_ok, cmp = pcall(require, "cmp") if not cmp_status_ok then return end cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done({ map_char = { tex = "" } }))