fix(exit_when_last): 'exit_when_last' not working due to autocmd timing issue #141
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When the
exit_when_lastoption is set totrue, closing the last main window should automatically trigger:qato quit Neovim.However, this feature is not currently working as expected. When the last main window is closed, Neovim does not exit; instead, the edgy sidebar windows remain.
The
WinClosedevent fires during the window closing process, not after the window has been completely removed from the window list.Therefore, when
check_main()callback executes, the window being closed still technically exists in Neovim's window list. This causesvim.tbl_isempty(wins.main)to returnfalse, and the:qaexit logic is skipped.Wrapping the check_main function call in vim.schedule() defers its execution to the 'next tick' of the Neovim event loop, by which point the WinClosed event has fully completed and the window has been removed from the list.