✨ feat(nvim): autopairs extra
This commit is contained in:
parent
21709f022d
commit
9280fd9e45
1 changed files with 51 additions and 0 deletions
51
.config/nvim/lua/plugins/extras/coding/autopairs.lua
Normal file
51
.config/nvim/lua/plugins/extras/coding/autopairs.lua
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
return {
|
||||||
|
{
|
||||||
|
"hrsh7th/nvim-cmp",
|
||||||
|
dependencies = {
|
||||||
|
"windwp/nvim-autopairs",
|
||||||
|
opts = {},
|
||||||
|
},
|
||||||
|
opts = function()
|
||||||
|
local cmp = require("cmp")
|
||||||
|
local cmp_autopairs = require("nvim-autopairs.completion.cmp")
|
||||||
|
local Rule = require("nvim-autopairs.rule")
|
||||||
|
local npairs = require("nvim-autopairs")
|
||||||
|
local cond = require("nvim-autopairs.conds")
|
||||||
|
|
||||||
|
npairs.add_rules({
|
||||||
|
Rule("%(.*%)%s*%=>$", " { }", { "typescript", "typescriptreact", "javascript" })
|
||||||
|
:use_regex(true)
|
||||||
|
:set_end_pair_length(2),
|
||||||
|
|
||||||
|
Rule("=", "")
|
||||||
|
:with_pair(cond.not_inside_quote())
|
||||||
|
:with_pair(function(opts)
|
||||||
|
local last_char = opts.line:sub(opts.col - 1, opts.col - 1)
|
||||||
|
if last_char:match("[%w%=%s]") then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end)
|
||||||
|
:replace_endpair(function(opts)
|
||||||
|
local prev_2char = opts.line:sub(opts.col - 2, opts.col - 1)
|
||||||
|
local next_char = opts.line:sub(opts.col, opts.col)
|
||||||
|
next_char = next_char == " " and "" or " "
|
||||||
|
if prev_2char:match("%w$") then
|
||||||
|
return "<bs> =" .. next_char
|
||||||
|
end
|
||||||
|
if prev_2char:match("%=$") then
|
||||||
|
return next_char
|
||||||
|
end
|
||||||
|
if prev_2char:match("=") then
|
||||||
|
return "<bs><bs>=" .. next_char
|
||||||
|
end
|
||||||
|
return ""
|
||||||
|
end)
|
||||||
|
:set_end_pair_length(0)
|
||||||
|
:with_move(cond.none())
|
||||||
|
:with_del(cond.none()),
|
||||||
|
})
|
||||||
|
cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done())
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue