0
0
mirror of https://github.com/vim/vim.git synced 2025-09-25 03:54:15 -04:00

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: #18259

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Girish Palya
2025-09-10 04:12:16 -04:00
committed by Christian Brabandt
parent 21ecb0d2e2
commit fe0061c609
2 changed files with 8 additions and 0 deletions

View File

@@ -5642,6 +5642,12 @@ func Test_autocomplete_completeopt_preinsert()
call feedkeys($"cwch\<C-N>\<Esc>n.n.", 'tx') call feedkeys($"cwch\<C-N>\<Esc>n.n.", 'tx')
call assert_equal(repeat(['changed'], 3), getline(1, 3)) 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\<ESC>", 'tx')
call DoTest("f\<C-N>\<C-N>\<BS>\<BS>\<BS>\<BS>", 'foo', 3)
%delete _ %delete _
let &l:undolevels = &l:undolevels let &l:undolevels = &l:undolevels
normal! ifoo normal! ifoo

View File

@@ -724,6 +724,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
1752,
/**/ /**/
1751, 1751,
/**/ /**/