feat(cmp): create undo point right before confirming a completion
This commit is contained in:
@ -36,7 +36,15 @@ return {
|
||||
["<C-f>"] = cmp.mapping.scroll_docs(4),
|
||||
["<C-Space>"] = cmp.mapping.complete(),
|
||||
["<C-e>"] = cmp.mapping.abort(),
|
||||
["<CR>"] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
|
||||
["<CR>"] = function(fallback)
|
||||
if cmp.visible() then
|
||||
LazyVim.create_undo()
|
||||
if cmp.confirm({ select = true }) then
|
||||
return
|
||||
end
|
||||
end
|
||||
return fallback()
|
||||
end,
|
||||
["<S-CR>"] = cmp.mapping.confirm({
|
||||
behavior = cmp.ConfirmBehavior.Replace,
|
||||
select = true,
|
||||
|
@ -190,4 +190,12 @@ function M.dedup(list)
|
||||
return ret
|
||||
end
|
||||
|
||||
M.CREATE_UNDO = vim.api.nvim_replace_termcodes("<c-G>u", true, true, true)
|
||||
function M.create_undo()
|
||||
if vim.api.nvim_get_mode().mode == "i" then
|
||||
dd("undo")
|
||||
vim.api.nvim_feedkeys(M.CREATE_UNDO, "n", false)
|
||||
end
|
||||
end
|
||||
|
||||
return M
|
||||
|
Reference in New Issue
Block a user