diff options
author | Jan Edmund Lazo <jan.lazo@mail.utoronto.ca> | 2020-12-02 23:29:04 -0500 |
---|---|---|
committer | Jan Edmund Lazo <jan.lazo@mail.utoronto.ca> | 2020-12-03 18:58:29 -0500 |
commit | 6bc1844b112197ab2701edd80d44f7ac77f2e466 (patch) | |
tree | db74a3102a376fdd4b0d1efadff620869abe779b /src | |
parent | c6b780bdd1c4c77dde12aaaf5a7b86960c6cfc19 (diff) | |
download | rneovim-6bc1844b112197ab2701edd80d44f7ac77f2e466.tar.gz rneovim-6bc1844b112197ab2701edd80d44f7ac77f2e466.tar.bz2 rneovim-6bc1844b112197ab2701edd80d44f7ac77f2e466.zip |
vim-patch:8.2.1673: complete_info() selected index has an invalid value
Problem: complete_info() selected index has an invalid value. (Ben Jackson)
Solution: Set the index when there is only one match. (closes vim/vim#6945)
Add test for complete_info().
https://github.com/vim/vim/commit/b806aa5bd910dba94fbde586f6019b4825813d28
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/edit.c | 1 | ||||
-rw-r--r-- | src/nvim/testdir/test_ins_complete.vim | 18 |
2 files changed, 19 insertions, 0 deletions
diff --git a/src/nvim/edit.c b/src/nvim/edit.c index 5d44c3274e..d6668439c5 100644 --- a/src/nvim/edit.c +++ b/src/nvim/edit.c @@ -5242,6 +5242,7 @@ static int ins_complete(int c, bool enable_pum) } else if (compl_curr_match->cp_next == compl_curr_match->cp_prev) { edit_submode_extra = (char_u *)_("The only match"); edit_submode_highl = HLF_COUNT; + compl_curr_match->cp_number = 0; } else { // Update completion sequence number when needed. if (compl_curr_match->cp_number == -1) { diff --git a/src/nvim/testdir/test_ins_complete.vim b/src/nvim/testdir/test_ins_complete.vim index 57a0a7aaf4..1776968afa 100644 --- a/src/nvim/testdir/test_ins_complete.vim +++ b/src/nvim/testdir/test_ins_complete.vim @@ -312,6 +312,24 @@ func Test_completefunc_args() delfunc CompleteFunc 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() |