aboutsummaryrefslogtreecommitdiff
path: root/test/functional/ui/inccommand_user_spec.lua
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2023-07-26 11:58:26 +0800
committerGitHub <noreply@github.com>2023-07-26 11:58:26 +0800
commit14d047ad2f448885de39966d1963f15d3fa21089 (patch)
tree55c6565e981607f236c3309765c29c97606898fd /test/functional/ui/inccommand_user_spec.lua
parent643bea31b8673f5db70816ecac61f76087019fb5 (diff)
downloadrneovim-14d047ad2f448885de39966d1963f15d3fa21089.tar.gz
rneovim-14d047ad2f448885de39966d1963f15d3fa21089.tar.bz2
rneovim-14d047ad2f448885de39966d1963f15d3fa21089.zip
test(inccommand): add a test for #20248 (#24489)
Diffstat (limited to 'test/functional/ui/inccommand_user_spec.lua')
-rw-r--r--test/functional/ui/inccommand_user_spec.lua56
1 files changed, 55 insertions, 1 deletions
diff --git a/test/functional/ui/inccommand_user_spec.lua b/test/functional/ui/inccommand_user_spec.lua
index 8a1030fa25..62c4cac709 100644
--- 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()