commit 14d047ad2f448885de39966d1963f15d3fa21089
parent 643bea31b8673f5db70816ecac61f76087019fb5
Author: zeertzjq <zeertzjq@outlook.com>
Date: Wed, 26 Jul 2023 11:58:26 +0800
test(inccommand): add a test for #20248 (#24489)
Diffstat:
1 file changed, 55 insertions(+), 1 deletion(-)
diff --git a/test/functional/ui/inccommand_user_spec.lua b/test/functional/ui/inccommand_user_spec.lua
@@ -436,7 +436,7 @@ describe("'inccommand' for user commands", function()
assert_alive()
end)
- it("no crash if preview callback executes undo", function()
+ it('no crash if preview callback executes undo #20036', function()
command('set inccommand=nosplit')
exec_lua([[
vim.api.nvim_create_user_command('Foo', function() end, {
@@ -457,6 +457,60 @@ describe("'inccommand' for user commands", function()
feed('<Esc>:Fo')
assert_alive()
end)
+
+ it('breaking undo chain in Insert mode works properly #20248', function()
+ command('set inccommand=nosplit')
+ command('inoremap . .<C-G>u')
+ exec_lua([[
+ vim.api.nvim_create_user_command('Test', function() end, {
+ nargs = 1,
+ preview = function(opts, _, _)
+ vim.cmd('norm i' .. opts.args)
+ return 1
+ end
+ })
+ ]])
+ feed(':Test a.a.a.a.')
+ screen:expect([[
+ text on line 1 |
+ more text on line 2 |
+ oh no, even more text |
+ will the text ever stop |
+ oh well |
+ did the text stop |
+ why won't it stop |
+ make the text stop |
+ a.a.a.a. |
+ {2:~ }|
+ {2:~ }|
+ {2:~ }|
+ {2:~ }|
+ {2:~ }|
+ {2:~ }|
+ {2:~ }|
+ :Test a.a.a.a.^ |
+ ]])
+ feed('<Esc>')
+ screen:expect([[
+ text on line 1 |
+ more text on line 2 |
+ oh no, even more text |
+ will the text ever stop |
+ oh well |
+ did the text stop |
+ why won't it stop |
+ make the text stop |
+ ^ |
+ {2:~ }|
+ {2:~ }|
+ {2:~ }|
+ {2:~ }|
+ {2:~ }|
+ {2:~ }|
+ {2:~ }|
+ |
+ ]])
+ end)
end)
describe("'inccommand' with multiple buffers", function()