diff options
author | zeertzjq <zeertzjq@outlook.com> | 2023-10-28 06:44:08 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-28 06:44:08 +0800 |
commit | d2e7cc68e99019587a4c5184a47677a6837bbee9 (patch) | |
tree | 5f289889f50f16e3ce34518fb313c8382e8d0f00 /test | |
parent | 9455f6b17c6d1009af5d37d62884fe3042abdfa0 (diff) | |
parent | 063a78fda2a5a7c3f9b1ee1b606491378bde2193 (diff) | |
download | rneovim-d2e7cc68e99019587a4c5184a47677a6837bbee9.tar.gz rneovim-d2e7cc68e99019587a4c5184a47677a6837bbee9.tar.bz2 rneovim-d2e7cc68e99019587a4c5184a47677a6837bbee9.zip |
Merge pull request #25806 from zeertzjq/vim-9.0.2074
vim-patch:9.0.{2074,2077}: Completion menu may be wrong
Diffstat (limited to 'test')
-rw-r--r-- | test/old/testdir/test_ins_complete.vim | 69 |
1 files changed, 67 insertions, 2 deletions
diff --git a/test/old/testdir/test_ins_complete.vim b/test/old/testdir/test_ins_complete.vim index 8162c23634..fdbaa5ab95 100644 --- a/test/old/testdir/test_ins_complete.vim +++ b/test/old/testdir/test_ins_complete.vim @@ -2315,17 +2315,72 @@ func Test_complete_info_index() " Ensure 'index' in complete_info() is coherent with the 'items' array. set completeopt=menu,preview - " Search forward. + " Search forward call feedkeys("Go\<C-X>\<C-N>\<F5>\<Esc>_dd", 'tx') call assert_equal("aaa", g:compl_info['items'][g:compl_info['selected']]['word']) + call assert_equal(6 , len(g:compl_info['items'])) call feedkeys("Go\<C-X>\<C-N>\<C-N>\<F5>\<Esc>_dd", 'tx') call assert_equal("bbb", g:compl_info['items'][g:compl_info['selected']]['word']) + call assert_equal(6 , len(g:compl_info['items'])) + call feedkeys("Go\<C-X>\<C-N>\<C-N>\<C-N>\<F5>\<Esc>_dd", 'tx') + call assert_equal("ccc", g:compl_info['items'][g:compl_info['selected']]['word']) + call assert_equal(6 , len(g:compl_info['items'])) + call feedkeys("Go\<C-X>\<C-N>\<C-N>\<C-N>\<C-N>\<F5>\<Esc>_dd", 'tx') + call assert_equal("ddd", g:compl_info['items'][g:compl_info['selected']]['word']) + call assert_equal(6 , len(g:compl_info['items'])) + call feedkeys("Go\<C-X>\<C-N>\<C-N>\<C-N>\<C-N>\<C-N>\<F5>\<Esc>_dd", 'tx') + call assert_equal("eee", g:compl_info['items'][g:compl_info['selected']]['word']) + call assert_equal(6 , len(g:compl_info['items'])) + call feedkeys("Go\<C-X>\<C-N>\<C-N>\<C-N>\<C-N>\<C-N>\<C-N>\<F5>\<Esc>_dd", 'tx') + call assert_equal("fff", g:compl_info['items'][g:compl_info['selected']]['word']) + call assert_equal(6 , len(g:compl_info['items'])) + " Search forward: unselected item + call feedkeys("Go\<C-X>\<C-N>\<C-N>\<C-N>\<C-N>\<C-N>\<C-N>\<C-N>\<F5>\<Esc>_dd", 'tx') + call assert_equal(6 , len(g:compl_info['items'])) + call assert_equal(-1 , g:compl_info['selected']) - " Search backward. + " Search backward call feedkeys("Go\<C-X>\<C-P>\<F5>\<Esc>_dd", 'tx') call assert_equal("fff", g:compl_info['items'][g:compl_info['selected']]['word']) + call assert_equal(6 , len(g:compl_info['items'])) call feedkeys("Go\<C-X>\<C-P>\<C-P>\<F5>\<Esc>_dd", 'tx') call assert_equal("eee", g:compl_info['items'][g:compl_info['selected']]['word']) + call assert_equal(6 , len(g:compl_info['items'])) + call feedkeys("Go\<C-X>\<C-P>\<C-P>\<C-P>\<F5>\<Esc>_dd", 'tx') + call assert_equal("ddd", g:compl_info['items'][g:compl_info['selected']]['word']) + call assert_equal(6 , len(g:compl_info['items'])) + call feedkeys("Go\<C-X>\<C-P>\<C-P>\<C-P>\<C-P>\<F5>\<Esc>_dd", 'tx') + call assert_equal("ccc", g:compl_info['items'][g:compl_info['selected']]['word']) + call assert_equal(6 , len(g:compl_info['items'])) + call feedkeys("Go\<C-X>\<C-P>\<C-P>\<C-P>\<C-P>\<C-P>\<F5>\<Esc>_dd", 'tx') + call assert_equal("bbb", g:compl_info['items'][g:compl_info['selected']]['word']) + call assert_equal(6 , len(g:compl_info['items'])) + call feedkeys("Go\<C-X>\<C-P>\<C-P>\<C-P>\<C-P>\<C-P>\<C-P>\<F5>\<Esc>_dd", 'tx') + call assert_equal("aaa", g:compl_info['items'][g:compl_info['selected']]['word']) + call assert_equal(6 , len(g:compl_info['items'])) + " search backwards: unselected item + call feedkeys("Go\<C-X>\<C-P>\<C-P>\<C-P>\<C-P>\<C-P>\<C-P>\<C-P>\<F5>\<Esc>_dd", 'tx') + call assert_equal(6 , len(g:compl_info['items'])) + call assert_equal(-1 , g:compl_info['selected']) + + " switch direction: forwards, then backwards + call feedkeys("Go\<C-X>\<C-N>\<C-P>\<C-P>\<F5>\<Esc>_dd", 'tx') + call assert_equal("fff", g:compl_info['items'][g:compl_info['selected']]['word']) + call assert_equal(6 , len(g:compl_info['items'])) + " switch direction: forwards, then backwards, then forwards again + call feedkeys("Go\<C-X>\<C-N>\<C-P>\<C-P>\<F5>\<Esc>_dd", 'tx') + call feedkeys("Go\<C-X>\<C-N>\<C-N>\<C-P>\<C-P>\<C-N>\<F5>\<Esc>_dd", 'tx') + call assert_equal("aaa", g:compl_info['items'][g:compl_info['selected']]['word']) + call assert_equal(6 , len(g:compl_info['items'])) + + " switch direction: backwards, then forwards + call feedkeys("Go\<C-X>\<C-P>\<C-N>\<C-N>\<F5>\<Esc>_dd", 'tx') + call assert_equal("aaa", g:compl_info['items'][g:compl_info['selected']]['word']) + call assert_equal(6 , len(g:compl_info['items'])) + " switch direction: backwards, then forwards, then backwards again + call feedkeys("Go\<C-X>\<C-P>\<C-P>\<C-N>\<C-N>\<C-P>\<F5>\<Esc>_dd", 'tx') + call assert_equal("fff", g:compl_info['items'][g:compl_info['selected']]['word']) + call assert_equal(6 , len(g:compl_info['items'])) " Add 'noselect', check that 'selected' is -1 when nothing is selected. set completeopt+=noselect @@ -2337,6 +2392,16 @@ func Test_complete_info_index() call feedkeys("Go\<C-X>\<C-P>\<F5>\<Esc>_dd", 'tx') call assert_equal(-1, g:compl_info['selected']) + " Check if index out of range + " https://github.com/vim/vim/pull/12971 + call feedkeys("Go\<C-X>\<C-N>\<C-P>\<F5>\<Esc>_dd", 'tx') + call assert_equal(0, g:compl_info['selected']) + call assert_equal(6 , len(g:compl_info['items'])) + call assert_equal("fff", g:compl_info['items'][g:compl_info['selected']]['word']) + call feedkeys("Go\<C-X>\<C-N>\<C-N>\<C-N>\<C-N>\<C-N>\<C-N>\<C-N>\<C-N>\<C-N>\<F5>\<Esc>_dd", 'tx') + call assert_equal("aaa", g:compl_info['items'][g:compl_info['selected']]['word']) + call assert_equal(6 , len(g:compl_info['items'])) + set completeopt& bwipe! endfunc |