summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-09-12 22:52:57 +0200
committerBram Moolenaar <Bram@vim.org>2020-09-12 22:52:57 +0200
commitb806aa5bd910dba94fbde586f6019b4825813d28 (patch)
tree565cfe0e7deb0f5de8e2e9dbd7a874399af14820 /src
parent4a091b9978122428e7d9154d034c640c9c8d8c13 (diff)
patch 8.2.1673: complete_info() selected index has an invalid valuev8.2.1673
Problem: complete_info() selected index has an invalid value. (Ben Jackson) Solution: Set the index when there is only one match. (closes #6945) Add test for complete_info().
Diffstat (limited to 'src')
-rw-r--r--src/insexpand.c1
-rw-r--r--src/testdir/test_ins_complete.vim18
-rw-r--r--src/version.c2
3 files changed, 21 insertions, 0 deletions
diff --git a/src/insexpand.c b/src/insexpand.c
index 03dddc3ee7..23ab0afc0a 100644
--- a/src/insexpand.c
+++ b/src/insexpand.c
@@ -4009,6 +4009,7 @@ ins_complete(int c, int enable_pum)
{
edit_submode_extra = (char_u *)_("The only match");
edit_submode_highl = HLF_COUNT;
+ compl_curr_match->cp_number = 0;
}
else
{
diff --git a/src/testdir/test_ins_complete.vim b/src/testdir/test_ins_complete.vim
index 41d6b7f50e..992fefab43 100644
--- a/src/testdir/test_ins_complete.vim
+++ b/src/testdir/test_ins_complete.vim
@@ -313,6 +313,24 @@ func Test_CompleteDone_undo()
au! CompleteDone
endfunc
+func CompleteTest(findstart, query)
+ if a:findstart
+ return col('.')
+ endif
+ return ['matched']
+endfunc
+
+func Test_completefunc_info()
+ new
+ set completeopt=menuone
+ set completefunc=CompleteTest
+ call feedkeys("i\<C-X>\<C-U>\<C-R>\<C-R>=string(complete_info())\<CR>\<ESC>", "tx")
+ call assert_equal("matched{'pum_visible': 1, 'mode': 'function', 'selected': -1, 'items': [{'word': 'matched', 'menu': '', 'user_data': '', 'info': '', 'kind': '', 'abbr': ''}]}", getline(1))
+ bwipe!
+ set completeopt&
+ set completefunc&
+endfunc
+
" Check that when using feedkeys() typeahead does not interrupt searching for
" completions.
func Test_compl_feedkeys()
diff --git a/src/version.c b/src/version.c
index 950ca40c3e..f30daf818b 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1673,
+/**/
1672,
/**/
1671,