neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

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:
Mtest/functional/ui/inccommand_user_spec.lua | 56+++++++++++++++++++++++++++++++++++++++++++++++++++++++-
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()