diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-09-12 22:52:57 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-09-12 22:52:57 +0200 |
commit | b806aa5bd910dba94fbde586f6019b4825813d28 (patch) | |
tree | 565cfe0e7deb0f5de8e2e9dbd7a874399af14820 | |
parent | 4a091b9978122428e7d9154d034c640c9c8d8c13 (diff) | |
download | vim-git-b806aa5bd910dba94fbde586f6019b4825813d28.tar.gz |
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().
-rw-r--r-- | src/insexpand.c | 1 | ||||
-rw-r--r-- | src/testdir/test_ins_complete.vim | 18 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 21 insertions, 0 deletions
diff --git a/src/insexpand.c b/src/insexpand.c index 03dddc3ee..23ab0afc0 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 41d6b7f50..992fefab4 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 950ca40c3..f30daf818 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, |