diff options
author | glacambre <code@lacamb.re> | 2022-01-25 07:59:17 +0100 |
---|---|---|
committer | glacambre <code@lacamb.re> | 2022-02-05 13:02:33 +0100 |
commit | 5b34c2ab73d62431f391d454e68a84332148d609 (patch) | |
tree | 96baf10d78ad63e6cbc0297ac4f04d59bbfaeb38 /test/functional/api/vim_spec.lua | |
parent | 806a7c976d78da2bf7a46499452b4a3e30fae798 (diff) | |
download | rneovim-5b34c2ab73d62431f391d454e68a84332148d609.tar.gz rneovim-5b34c2ab73d62431f391d454e68a84332148d609.tar.bz2 rneovim-5b34c2ab73d62431f391d454e68a84332148d609.zip |
fix(--headless): do not block on press-enter prompts when no UI
This commit fixes #9358, where emitting multiple messages with 'echo' or
a single one with 'echom' or 'echoerr' would result in a press-enter
prompt that couldn't be dismissed by pressing enter.
This requires adapting a few tests to spawn a UI before testing whether
press-enter prompts are blocking.
It also fixes #11718, as when combined with #15910 it enables making
sure that neovim never blocks and emits messages on startup.
Diffstat (limited to 'test/functional/api/vim_spec.lua')
-rw-r--r-- | test/functional/api/vim_spec.lua | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/test/functional/api/vim_spec.lua b/test/functional/api/vim_spec.lua index b5b10c049e..937b6559de 100644 --- a/test/functional/api/vim_spec.lua +++ b/test/functional/api/vim_spec.lua @@ -333,6 +333,7 @@ describe('API', function() describe('nvim_command_output', function() it('does not induce hit-enter prompt', function() + nvim("ui_attach", 80, 20, {}) -- Induce a hit-enter prompt use nvim_input (non-blocking). nvim('command', 'set cmdheight=1') nvim('input', [[:echo "hi\nhi2"<CR>]]) @@ -1093,7 +1094,20 @@ describe('API', function() eq({mode='n', blocking=false}, nvim("get_mode")) end) + it("during press-enter prompt without UI returns blocking=false", function() + eq({mode='n', blocking=false}, nvim("get_mode")) + command("echom 'msg1'") + command("echom 'msg2'") + command("echom 'msg3'") + command("echom 'msg4'") + command("echom 'msg5'") + eq({mode='n', blocking=false}, nvim("get_mode")) + nvim("input", ":messages<CR>") + eq({mode='n', blocking=false}, nvim("get_mode")) + end) + it("during press-enter prompt returns blocking=true", function() + nvim("ui_attach", 80, 20, {}) eq({mode='n', blocking=false}, nvim("get_mode")) command("echom 'msg1'") command("echom 'msg2'") @@ -1117,6 +1131,7 @@ describe('API', function() -- TODO: bug #6247#issuecomment-286403810 it("batched with input", function() + nvim("ui_attach", 80, 20, {}) eq({mode='n', blocking=false}, nvim("get_mode")) command("echom 'msg1'") command("echom 'msg2'") |