copilot.lua
copilot.lua copied to clipboard
feature request: undo accepted text
Current behavior:
- Type 123
- Copilot suggests 456
- You accept suggestion
- You press undo
- Observe that entire line is deleted
Desired behavior:
- Type 123
- Copilot suggests 456
- You accept suggestion
- You press undo
- Observe that only 456 is deleted. You are still left with the original text you manually typed: 123
Workaround attempts
I tried this after disabling the default accept keymap, but the it acts in a weird manner. Instead of undoing the suggestion, it only moves the cursor without removing any text.
map("i", "<M-f>", function()
-- 1. preserve undo point
vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes("<c-g>u", true, false, true), "t", false)
-- 2. then accept suggestion
require("copilot.suggestion").accept()
end)
This one doesn't work either. Here, pressing undo removes the entire line.
map("i", "<M-f>", function()
-- 1. simulate exiting then re-entering insert mode to trigger undopoint
vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes("<Esc>a", true, false, true), "t", false)
-- 2. then accept suggestion
require("copilot.suggestion").accept()
end)
This is also probably a regression from https://github.com/neovim/neovim/pull/24901 🤔
What is your Neovim version?
I'm on nightly.
NVIM v0.10.0-dev-d2983dc
Build type: Release
LuaJIT 2.1.1693350652