diff options
author | zeertzjq <zeertzjq@outlook.com> | 2022-07-27 07:25:13 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-27 07:25:13 +0800 |
commit | 2fdb0de1975b015d8745141eaa18e62af793e0ef (patch) | |
tree | da96e28622a4caf0a304f1827439b01a88829778 /test/functional/legacy/ex_mode_spec.lua | |
parent | 49d2256ae5b747830160a1dd1f3f532cf726b394 (diff) | |
parent | fc55f8263c6c8d8851fa2b6290083a64da1ebd28 (diff) | |
download | rneovim-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.lua | 51 |
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) |