2023-01-15 00:17:41 +07:00
|
|
|
-- Setup nvim-cmp.
|
|
|
|
local status_ok, npairs = pcall(require, "nvim-autopairs")
|
|
|
|
if not status_ok then
|
|
|
|
return
|
|
|
|
end
|
|
|
|
|
2024-02-18 21:29:22 +07:00
|
|
|
local Rule = require("nvim-autopairs.rule")
|
|
|
|
|
2023-01-15 00:17:41 +07:00
|
|
|
npairs.setup({
|
|
|
|
check_ts = true,
|
|
|
|
ts_config = {
|
|
|
|
lua = { "string", "source" },
|
|
|
|
javascript = { "string", "template_string" },
|
|
|
|
java = false,
|
|
|
|
},
|
|
|
|
disable_filetype = { "TelescopePrompt", "spectre_panel" },
|
|
|
|
fast_wrap = {
|
|
|
|
map = "<M-e>",
|
2024-02-18 21:29:22 +07:00
|
|
|
chars = { "{", "[", "(", '"', "'", "`" },
|
2023-01-15 00:17:41 +07:00
|
|
|
pattern = string.gsub([[ [%'%"%)%>%]%)%}%,] ]], "%s+", ""),
|
|
|
|
offset = 0, -- Offset from pattern match
|
|
|
|
end_key = "$",
|
|
|
|
keys = "qwertyuiopzxcvbnmasdfghjkl",
|
|
|
|
check_comma = true,
|
|
|
|
highlight = "PmenuSel",
|
|
|
|
highlight_grey = "LineNr",
|
|
|
|
},
|
|
|
|
})
|
|
|
|
|
2024-02-18 21:29:22 +07:00
|
|
|
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("/>") .. "<esc>i"
|
|
|
|
end
|
|
|
|
end),
|
|
|
|
})
|
2023-02-05 12:50:48 +07:00
|
|
|
-- If you want insert `(` after select function or method item
|
2023-01-15 00:17:41 +07:00
|
|
|
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 = "" } }))
|