diff --git a/src/nvim/insexpand.c b/src/nvim/insexpand.c index 6f99708e1d..09860a6a40 100644 --- a/src/nvim/insexpand.c +++ b/src/nvim/insexpand.c @@ -3635,7 +3635,7 @@ static int ins_compl_next(bool allow_get_expansion, int count, bool insert_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/test/old/testdir/test_ins_complete.vim b/test/old/testdir/test_ins_complete.vim index aeceeea9f1..ec5fd186b1 100644 --- a/test/old/testdir/test_ins_complete.vim +++ b/test/old/testdir/test_ins_complete.vim @@ -864,7 +864,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! @@ -2280,6 +2280,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"])