Mercurial > vim
view src/testdir/test_popup.vim @ 9672:6255ff1ea003 v7.4.2112
commit https://github.com/vim/vim/commit/b56195ed00a9a79aa6217cddbeedbc8cc7a5b6d8
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Jul 28 22:53:37 2016 +0200
patch 7.4.2112
Problem: getcompletion(.., 'dir') returns a match with trailing "*" when
there are no matches. (Chdiza)
Solution: Return an empty list when there are no matches. Add a trailing
slash to directories. (Yegappan Lakshmanan) Add tests for no
matches. (closes #947)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Thu, 28 Jul 2016 23:00:06 +0200 |
parents | 5fb484647e12 |
children | 0b0b9864c811 |
line wrap: on
line source
" Test for completion menu let g:months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] let g:setting = '' func ListMonths() if g:setting != '' exe ":set" g:setting endif call complete(col('.'), g:months) return '' endfunc func! Test_popup_completion_insertmode() new inoremap <F5> <C-R>=ListMonths()<CR> call feedkeys("a\<f5>\<down>\<enter>\<esc>", 'tx') call assert_equal('February', getline(1)) %d let g:setting = 'noinsertmode' call feedkeys("a\<f5>\<down>\<enter>\<esc>", 'tx') call assert_equal('February', getline(1)) call assert_false(pumvisible()) %d let g:setting = '' call feedkeys("a\<f5>". repeat("\<c-n>",12)."\<enter>\<esc>", 'tx') call assert_equal('', getline(1)) %d call feedkeys("a\<f5>\<c-p>\<enter>\<esc>", 'tx') call assert_equal('', getline(1)) %d call feedkeys("a\<f5>\<c-p>\<c-p>\<enter>\<esc>", 'tx') call assert_equal('December', getline(1)) bwipe! iunmap <F5> endfunc function! ComplTest() abort call complete(1, ['source', 'soundfold']) return '' endfunction func Test_noinsert_complete() new set completeopt+=noinsert inoremap <F5> <C-R>=ComplTest()<CR> call feedkeys("i\<F5>soun\<CR>\<CR>\<ESC>.", 'tx') call assert_equal('soundfold', getline(1)) call assert_equal('soundfold', getline(2)) bwipe! new inoremap <F5> <C-R>=Test()<CR> call feedkeys("i\<F5>\<CR>\<ESC>", 'tx') call assert_equal('source', getline(1)) bwipe! set completeopt-=noinsert iunmap <F5> endfunc function! Test() abort call complete(1, ['source', 'soundfold']) return '' endfunction