From 2e3cd52fa02b1a208c97992b1bca3b04f7be66d4 Mon Sep 17 00:00:00 2001 From: nwounkn Date: Tue, 17 Oct 2023 11:05:38 +0200 Subject: [PATCH] patch 9.0.2039: completion shows current word after completion restart Problem: completion shows current word after completion restart Solution: remove the word being completed after completion restart The word being completed is shown in a completion list after completion restart, because it isn't removed from the current buffer before searching for matches. Also adjust `Test_complete_add_onechar` to match the new behavior. closes: #13349 Signed-off-by: Christian Brabandt Co-authored-by: nwounkn --- src/insexpand.c | 2 +- src/testdir/test_ins_complete.vim | 13 ++++++++++++- src/version.c | 2 ++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/insexpand.c b/src/insexpand.c index f225cd3844..ad4edc184e 100644 --- a/src/insexpand.c +++ b/src/insexpand.c @@ -4157,7 +4157,7 @@ ins_compl_next( ins_compl_update_shown_match(); if (allow_get_expansion && insert_match - && (!(compl_get_longest || compl_restarting) || compl_used_match)) + && (!compl_get_longest || compl_used_match)) // Delete old text to be replaced ins_compl_delete(); diff --git a/src/testdir/test_ins_complete.vim b/src/testdir/test_ins_complete.vim index c7f9e9b28b..a4ac26e06c 100644 --- a/src/testdir/test_ins_complete.vim +++ b/src/testdir/test_ins_complete.vim @@ -818,7 +818,7 @@ func Test_complete_add_onechar() setlocal complete=. call setline(1, ['workhorse', 'workload']) normal Go - exe "normal aWOR\\\\\\\\r\\" + exe "normal aWOR\\\\\\\\\\" call assert_equal('workh', getline(3)) set ignorecase& backspace& close! @@ -2248,6 +2248,17 @@ func GetCompleteInfo() return '' endfunc +func Test_completion_restart() + new + set complete=. completeopt=menuone backspace=2 + call setline(1, 'workhorse workhorse') + exe "normal $a\\\\=GetCompleteInfo()\" + call assert_equal(1, len(g:compl_info['items'])) + call assert_equal('workhorse', g:compl_info['items'][0]['word']) + set complete& completeopt& backspace& + bwipe! +endfunc + func Test_complete_info_index() new call setline(1, ["aaa", "bbb", "ccc", "ddd", "eee", "fff"]) diff --git a/src/version.c b/src/version.c index a0ac2d0772..208d7a8819 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2039, /**/ 2038, /**/