aboutsummaryrefslogtreecommitdiff
path: root/test/functional/legacy/ex_mode_spec.lua
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2022-07-27 07:25:13 +0800
committerGitHub <noreply@github.com>2022-07-27 07:25:13 +0800
commit2fdb0de1975b015d8745141eaa18e62af793e0ef (patch)
treeda96e28622a4caf0a304f1827439b01a88829778 /test/functional/legacy/ex_mode_spec.lua
parent49d2256ae5b747830160a1dd1f3f532cf726b394 (diff)
parentfc55f8263c6c8d8851fa2b6290083a64da1ebd28 (diff)
downloadrneovim-2fdb0de1975b015d8745141eaa18e62af793e0ef.tar.gz
rneovim-2fdb0de1975b015d8745141eaa18e62af793e0ef.tar.bz2
rneovim-2fdb0de1975b015d8745141eaa18e62af793e0ef.zip
Merge pull request #19528 from zeertzjq/vim-9.0.0051
vim-patch:9.0.{0051,0082,0083,0086}: cmdline fixes
Diffstat (limited to 'test/functional/legacy/ex_mode_spec.lua')
-rw-r--r--test/functional/legacy/ex_mode_spec.lua51
1 files changed, 51 insertions, 0 deletions
diff --git a/test/functional/legacy/ex_mode_spec.lua b/test/functional/legacy/ex_mode_spec.lua
index 98f113bbd0..a8f54c6939 100644
--- a/test/functional/legacy/ex_mode_spec.lua
+++ b/test/functional/legacy/ex_mode_spec.lua
@@ -6,6 +6,7 @@ local eq = helpers.eq
local eval = helpers.eval
local feed = helpers.feed
local meths = helpers.meths
+local sleep = helpers.sleep
before_each(clear)
@@ -122,4 +123,54 @@ describe('Ex mode', function()
|
]])
end)
+
+ it('pressing Ctrl-C in :append inside a loop in Ex mode does not hang', function()
+ local screen = Screen.new(60, 6)
+ screen:set_default_attr_ids({
+ [0] = {bold = true, reverse = true}, -- MsgSeparator
+ [1] = {bold = true, foreground = Screen.colors.Blue}, -- NonText
+ })
+ screen:attach()
+ feed('gQ')
+ feed('for i in range(1)<CR>')
+ feed('append<CR>')
+ screen:expect([[
+ {0: }|
+ Entering Ex mode. Type "visual" to go to Normal mode. |
+ :for i in range(1) |
+ |
+ : append |
+ ^ |
+ ]])
+ feed('<C-C>')
+ sleep(10) -- Wait for input to be flushed
+ feed('foo<CR>')
+ screen:expect([[
+ Entering Ex mode. Type "visual" to go to Normal mode. |
+ :for i in range(1) |
+ |
+ : append |
+ foo |
+ ^ |
+ ]])
+ feed('.<CR>')
+ screen:expect([[
+ :for i in range(1) |
+ |
+ : append |
+ foo |
+ . |
+ : ^ |
+ ]])
+ feed('endfor<CR>')
+ feed('vi<CR>')
+ screen:expect([[
+ ^foo |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ |
+ ]])
+ end)
end)