diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2018-05-19 11:44:52 +0200 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2018-05-19 11:44:52 +0200 |
commit | d995825c6627dd99213aeeecef56663d4655f701 (patch) | |
tree | 9bcc5fd1f61f923d4b22867acdb2ec2d54687aec /test/functional/viml/completion_spec.lua | |
parent | e3707c312a290bb3c002f0d7657947922b6d187c (diff) | |
parent | 021c5875c13e0c4a5bab67e2e2ac50c4be653ad6 (diff) | |
download | rneovim-d995825c6627dd99213aeeecef56663d4655f701.tar.gz rneovim-d995825c6627dd99213aeeecef56663d4655f701.tar.bz2 rneovim-d995825c6627dd99213aeeecef56663d4655f701.zip |
Merge #8377 'TextChangedP autocommand'
Diffstat (limited to 'test/functional/viml/completion_spec.lua')
-rw-r--r-- | test/functional/viml/completion_spec.lua | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/test/functional/viml/completion_spec.lua b/test/functional/viml/completion_spec.lua index 216ccb3744..c14f7fc1a6 100644 --- a/test/functional/viml/completion_spec.lua +++ b/test/functional/viml/completion_spec.lua @@ -3,7 +3,10 @@ local Screen = require('test.functional.ui.screen') local clear, feed = helpers.clear, helpers.feed local eval, eq, neq = helpers.eval, helpers.eq, helpers.neq local feed_command, source, expect = helpers.feed_command, helpers.source, helpers.expect +local curbufmeths = helpers.curbufmeths +local command = helpers.command local meths = helpers.meths +local wait = helpers.wait describe('completion', function() local screen @@ -971,4 +974,90 @@ describe('ui/ext_popupmenu', function() eq(nil, items) -- popupmenu was hidden end) end) + + it('TextChangedP autocommand', function() + curbufmeths.set_lines(0, 1, false, { 'foo', 'bar', 'foobar'}) + source([[ + set complete=. completeopt=menuone + let g:foo = [] + autocmd! TextChanged * :call add(g:foo, "N") + autocmd! TextChangedI * :call add(g:foo, "I") + autocmd! TextChangedP * :call add(g:foo, "P") + call cursor(3, 1) + ]]) + + command('let g:foo = []') + feed('o') + wait() + feed('<esc>') + eq({'I'}, eval('g:foo')) + + command('let g:foo = []') + feed('S') + wait() + feed('f') + wait() + eq({'I', 'I'}, eval('g:foo')) + feed('<esc>') + + command('let g:foo = []') + feed('S') + wait() + feed('f') + wait() + feed('<C-N>') + wait() + eq({'I', 'I', 'P'}, eval('g:foo')) + feed('<esc>') + + command('let g:foo = []') + feed('S') + wait() + feed('f') + wait() + feed('<C-N>') + wait() + feed('<C-N>') + wait() + eq({'I', 'I', 'P', 'P'}, eval('g:foo')) + feed('<esc>') + + command('let g:foo = []') + feed('S') + wait() + feed('f') + wait() + feed('<C-N>') + wait() + feed('<C-N>') + wait() + feed('<C-N>') + wait() + eq({'I', 'I', 'P', 'P', 'P'}, eval('g:foo')) + feed('<esc>') + + command('let g:foo = []') + feed('S') + wait() + feed('f') + wait() + feed('<C-N>') + wait() + feed('<C-N>') + wait() + feed('<C-N>') + wait() + feed('<C-N>') + eq({'I', 'I', 'P', 'P', 'P', 'P'}, eval('g:foo')) + feed('<esc>') + + eq({'foo', 'bar', 'foobar', 'foo'}, eval('getline(1, "$")')) + + source([[ + au! TextChanged + au! TextChangedI + au! TextChangedP + set complete&vim completeopt&vim + ]]) + end) end) |