diff options
| author | Justin M. Keyes <justinkz@gmail.com> | 2018-05-19 11:48:37 +0200 |
|---|---|---|
| committer | Justin M. Keyes <justinkz@gmail.com> | 2018-05-19 11:48:37 +0200 |
| commit | fb28b0c734c259b0964615ea2ddeb4aabeb23fe8 (patch) | |
| tree | 2f4a9a7217955b5dd37632bb4fb6e31b1bda2afb /src/nvim/testdir | |
| parent | a82ac8accb0dba4c13b670c69f0024c94c59cdd4 (diff) | |
| parent | d995825c6627dd99213aeeecef56663d4655f701 (diff) | |
| download | rneovim-fb28b0c734c259b0964615ea2ddeb4aabeb23fe8.tar.gz rneovim-fb28b0c734c259b0964615ea2ddeb4aabeb23fe8.tar.bz2 rneovim-fb28b0c734c259b0964615ea2ddeb4aabeb23fe8.zip | |
Merge #8377 'TextChangedP autocommand'
Diffstat (limited to 'src/nvim/testdir')
| -rw-r--r-- | src/nvim/testdir/test_autocmd.vim | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/src/nvim/testdir/test_autocmd.vim b/src/nvim/testdir/test_autocmd.vim index 24651b75e1..238de5a87d 100644 --- a/src/nvim/testdir/test_autocmd.vim +++ b/src/nvim/testdir/test_autocmd.vim @@ -1165,3 +1165,60 @@ func Test_nocatch_wipe_dummy_buffer() call assert_fails('lv½ /x', 'E480') au! endfunc + +" Test TextChangedI and TextChangedP +func Test_ChangedP() abort + " Nvim does not support test_override(). + throw 'skipped: see test/functional/viml/completion_spec.lua' + new + call setline(1, ['foo', 'bar', 'foobar']) + call test_override("char_avail", 1) + set complete=. completeopt=menuone + + func! TextChangedAutocmd(char) + let g:autocmd .= a:char + endfunc + + au! TextChanged <buffer> :call TextChangedAutocmd('N') + au! TextChangedI <buffer> :call TextChangedAutocmd('I') + au! TextChangedP <buffer> :call TextChangedAutocmd('P') + + call cursor(3, 1) + let g:autocmd = '' + call feedkeys("o\<esc>", 'tnix') + call assert_equal('I', g:autocmd) + + let g:autocmd = '' + call feedkeys("Sf", 'tnix') + call assert_equal('II', g:autocmd) + + let g:autocmd = '' + call feedkeys("Sf\<C-N>", 'tnix') + call assert_equal('IIP', g:autocmd) + + let g:autocmd = '' + call feedkeys("Sf\<C-N>\<C-N>", 'tnix') + call assert_equal('IIPP', g:autocmd) + + let g:autocmd = '' + call feedkeys("Sf\<C-N>\<C-N>\<C-N>", 'tnix') + call assert_equal('IIPPP', g:autocmd) + + let g:autocmd = '' + call feedkeys("Sf\<C-N>\<C-N>\<C-N>\<C-N>", 'tnix') + call assert_equal('IIPPPP', g:autocmd) + + call assert_equal(['foo', 'bar', 'foobar', 'foo'], getline(1, '$')) + " TODO: how should it handle completeopt=noinsert,noselect? + + " CleanUp + call test_override("char_avail", 0) + au! TextChanged + au! TextChangedI + au! TextChangedP + delfu TextChangedAutocmd + unlet! g:autocmd + set complete&vim completeopt&vim + + bw! +endfunc |