diff options
author | zeertzjq <zeertzjq@outlook.com> | 2023-07-26 11:58:26 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-26 11:58:26 +0800 |
commit | 14d047ad2f448885de39966d1963f15d3fa21089 (patch) | |
tree | 55c6565e981607f236c3309765c29c97606898fd /test/functional/ui/inccommand_user_spec.lua | |
parent | 643bea31b8673f5db70816ecac61f76087019fb5 (diff) | |
download | rneovim-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.lua | 56 |
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() |