autocmds: TermEnter, TermLeave #8550

fix #8428
This commit is contained in:
Usama Hameed
2019-09-15 03:54:19 +05:00
committed by Justin M. Keyes
parent 8c88d98df9
commit fc27dc98d7
5 changed files with 53 additions and 7 deletions

View File

@@ -9,8 +9,7 @@ local ok = helpers.ok
local feed = helpers.feed
local iswin = helpers.iswin
describe('TermClose event', function()
describe('autocmd TermClose', function()
before_each(function()
clear()
nvim('set_option', 'shell', nvim_dir .. '/shell-test')
@@ -92,3 +91,37 @@ describe('TermClose event', function()
feed('<c-c>:qa!<cr>')
end)
end)
it('autocmd TermEnter, TermLeave', function()
clear()
command('let g:evs = []')
command('autocmd TermOpen * call add(g:evs, ["TermOpen", mode()])')
command('autocmd TermClose * call add(g:evs, ["TermClose", mode()])')
command('autocmd TermEnter * call add(g:evs, ["TermEnter", mode()])')
command('autocmd TermLeave * call add(g:evs, ["TermLeave", mode()])')
command('terminal')
feed('i')
eq({ {'TermOpen', 'n'}, {'TermEnter', 't'}, }, eval('g:evs'))
feed([[<C-\><C-n>]])
feed('A')
eq({ {'TermOpen', 'n'}, {'TermEnter', 't'}, {'TermLeave', 'n'}, {'TermEnter', 't'}, }, eval('g:evs'))
-- TermLeave is also triggered by :quit.
command('split foo')
command('wincmd w')
feed('i')
command('q!')
eq(
{
{'TermOpen', 'n'},
{'TermEnter', 't'},
{'TermLeave', 'n'},
{'TermEnter', 't'},
{'TermLeave', 'n'},
{'TermEnter', 't'},
{'TermClose', 't'},
{'TermLeave', 'n'},
},
eval('g:evs'))
end)