From 85cb0b0ddc59cd1b3a911e5b4a358e5404c1d0d8 Mon Sep 17 00:00:00 2001 From: Evgeni Chasnovski Date: Thu, 22 Feb 2024 21:54:21 +0200 Subject: fix(defaults): make terminal autoclose not block other events (#27581) Problem: When terminal is autocloses, it blocks other events, like `BufEnter`. Solution: Use `nested = true`. --- test/functional/options/defaults_spec.lua | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'test/functional') diff --git a/test/functional/options/defaults_spec.lua b/test/functional/options/defaults_spec.lua index 10a0baa30b..d27fa375ee 100644 --- a/test/functional/options/defaults_spec.lua +++ b/test/functional/options/defaults_spec.lua @@ -1232,3 +1232,22 @@ describe('stdpath()', function() end) end) end) + +describe('autocommands', function() + it('closes terminal with default shell on success', function() + api.nvim_set_option_value('shell', helpers.testprg('shell-test'), {}) + command('set shellcmdflag=EXIT shellredir= shellpipe= shellquote= shellxquote=') + + -- Should not block other events + command('let g:n=0') + command('au BufEnter * let g:n = g:n + 1') + + command('terminal') + eq(eval('get(g:, "n", 0)'), 1) + + helpers.retry(nil, 1000, function() + neq(api.nvim_get_option_value('buftype', { buf = 0 }), 'terminal') + eq(eval('get(g:, "n", 0)'), 2) + end) + end) +end) -- cgit