From aa33ea86e1ce37e0d8bf4d52630c446aafcced6c Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Thu, 11 Sep 2025 07:18:00 +0800 Subject: [PATCH] vim-patch:9.1.1752: tests: need another test for v9.1.1750 behaviour Problem: tests: No test when deleting text after autocompletion with preinsert did complete an entry Solution: Verify, that after deletion autocompletion does not reinsert the deleted text. Note: the actual issue was fixed with v9.1.1750. (Girish Palya) Pre v9.1.1750 behaviour: When autocomplete is enabled with *preinsert*, deleting text after selecting a longer match could cause unintended reinsertion, e.g.: - Matches available: "foo" and "foobar". - User selects "foobar" with Ctrl-N - User deletes characters back to "foo". - Autocomplete then incorrectly re-inserts "bar", preventing deletion past "foo". v9.1.1750 removes the unwanted reinsertion so text can be deleted correctly. closes: vim/vim#18259 https://github.com/vim/vim/commit/fe0061c6093aac817ed6061b75868a97a116d9c0 Co-authored-by: Girish Palya --- test/old/testdir/test_ins_complete.vim | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/test/old/testdir/test_ins_complete.vim b/test/old/testdir/test_ins_complete.vim index 2fca84e227..104acfa7bc 100644 --- a/test/old/testdir/test_ins_complete.vim +++ b/test/old/testdir/test_ins_complete.vim @@ -5755,6 +5755,12 @@ func Test_autocomplete_completeopt_preinsert() call feedkeys($"cwch\\n.n.", 'tx') call assert_equal(repeat(['changed'], 3), getline(1, 3)) + " Select a match and delete up to text equal to another match + %delete + call setline(1, ["foobar", "foo"]) + call feedkeys("Go\", 'tx') + call DoTest("f\\\\\\", 'foo', 3) + %delete _ let &l:undolevels = &l:undolevels normal! ifoo