1" Test insert mode completion does not get stuck when looping around. 2" In a separate file to avoid the settings to leak to other test cases. 3 4set complete+=kspell 5set completeopt+=menu 6set completeopt+=menuone 7set completeopt+=noselect 8set completeopt+=noinsert 9let g:autocompletion = v:true 10 11func Test_ins_complete_no_halt() 12 function! OpenCompletion() 13 if pumvisible() && (g:autocompletion == v:true) 14 call feedkeys("\<C-e>\<C-n>", "i") 15 return 16 endif 17 if ((v:char >= 'a' && v:char <= 'z') || (v:char >= 'A' && v:char <= 'Z')) && (g:autocompletion == v:true) 18 call feedkeys("\<C-n>", "i") 19 redraw 20 endif 21 endfunction 22 23 autocmd InsertCharPre * noautocmd call OpenCompletion() 24 25 setlocal spell! spelllang=en_us 26 27 call feedkeys("iauto-complete-halt-test test test test test test test test test test test test test test test test test test test\<C-c>", "tx!") 28 call assert_equal(["auto-complete-halt-test test test test test test test test test test test test test test test test test test test"], getline(1, "$")) 29endfunc 30 31func Test_auto_complete_backwards_no_halt() 32 function! OpenCompletion() 33 if pumvisible() && (g:autocompletion == v:true) 34 call feedkeys("\<C-e>\<C-p>", "i") 35 return 36 endif 37 if ((v:char >= 'a' && v:char <= 'z') || (v:char >= 'A' && v:char <= 'Z')) && (g:autocompletion == v:true) 38 call feedkeys("\<C-p>", "i") 39 redraw 40 endif 41 endfunction 42 43 autocmd InsertCharPre * noautocmd call OpenCompletion() 44 45 setlocal spell! spelllang=en_us 46 47 call feedkeys("iauto-complete-halt-test test test test test test test test test test test test test test test test test test test\<C-c>", "tx!") 48 call assert_equal(["auto-complete-halt-test test test test test test test test test test test test test test test test test test test"], getline(1, "$")) 49endfunc 50 51" vim: shiftwidth=2 sts=2 expandtab 52