Mercurial > vim
view src/testdir/test_popup.vim @ 9560:1e68dfd7931b v7.4.2057
commit https://github.com/vim/vim/commit/da861d631d7e22654faee2789286c685ad548911
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Jul 17 15:46:27 2016 +0200
patch 7.4.2057
Problem: eval.c is too big.
Solution: Move List functions to list.c
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 17 Jul 2016 16:00:05 +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