aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2019-03-13 22:31:07 +0100
committerJustin M. Keyes <justinkz@gmail.com>2019-03-14 01:30:11 +0100
commitb1f25ea18797101f423cab23ac52c4e17377c5d4 (patch)
tree15e80cf350e3898477252c06df412bdfd227b8dc /test
parent3259e45f926bcde4052e8b989e039f6047c2b205 (diff)
downloadrneovim-b1f25ea18797101f423cab23ac52c4e17377c5d4.tar.gz
rneovim-b1f25ea18797101f423cab23ac52c4e17377c5d4.tar.bz2
rneovim-b1f25ea18797101f423cab23ac52c4e17377c5d4.zip
autocmd: do not show empty section after ++once handlers expire
Problem: If autocmd pattern only contained `++once` handlers, and all of them completed, then there would be an empty group displayed by `:autocmd Foo`. Solution: Delete the pattern if all of its commands were deleted.
Diffstat (limited to 'test')
-rw-r--r--test/functional/autocmd/autocmd_spec.lua18
1 files changed, 18 insertions, 0 deletions
diff --git a/test/functional/autocmd/autocmd_spec.lua b/test/functional/autocmd/autocmd_spec.lua
index f666f9cf75..814624d8e2 100644
--- a/test/functional/autocmd/autocmd_spec.lua
+++ b/test/functional/autocmd/autocmd_spec.lua
@@ -125,5 +125,23 @@ describe('autocmd', function()
command("put ='foo bar baz'")
feed('0llhlh')
eq(expected, eval('g:foo'))
+
+ --
+ -- :autocmd should not show empty section after ++once handlers expire.
+ --
+ expected = {
+ 'Once1',
+ 'Once2',
+ }
+ command('let g:foo = []')
+ command('autocmd! TabNew') -- Clear all TabNew handlers.
+ command('autocmd TabNew * ++once :call add(g:foo, "Once1")')
+ command('autocmd TabNew * ++once :call add(g:foo, "Once2")')
+ command('tabnew')
+ eq(expected, eval('g:foo'))
+ eq(dedent([[
+
+ --- Autocommands ---]]),
+ funcs.execute('autocmd Tabnew'))
end)
end)