From b3fd83a0eae2d6353dc72ed62ba32949cc11a1b0 Mon Sep 17 00:00:00 2001 From: glacambre Date: Fri, 19 Apr 2019 07:49:05 +0200 Subject: Reset stop_insert_mode in terminal_enter rather than terminal_check Problem: Using `:stopinsert` while in normal mode in a terminal buffer prevents neovim from entering insert mode. Solution: Move `stop_insert_mode = false` from terminal_check to terminal_enter to be consistent with edit.c, as suggested by bfredl in #9889. Closes https://github.com/neovim/neovim/issues/9889. --- test/functional/terminal/ex_terminal_spec.lua | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'test/functional/terminal/ex_terminal_spec.lua') diff --git a/test/functional/terminal/ex_terminal_spec.lua b/test/functional/terminal/ex_terminal_spec.lua index ca5737db7f..f3849709e3 100644 --- a/test/functional/terminal/ex_terminal_spec.lua +++ b/test/functional/terminal/ex_terminal_spec.lua @@ -106,6 +106,15 @@ describe(':terminal', function() command('stopinsert') eq({ blocking=false, mode='n' }, nvim('get_mode')) end) + + it(':stopinsert in normal mode doesn\'t break insert mode #9889', function() + command(':terminal') + eq({ blocking=false, mode='n' }, nvim('get_mode')) + command(':stopinsert') + eq({ blocking=false, mode='n' }, nvim('get_mode')) + feed('a') + eq({ blocking=false, mode='t' }, nvim('get_mode')) + end) end) describe(':terminal (with fake shell)', function() -- cgit