diff options
author | zeertzjq <zeertzjq@outlook.com> | 2022-07-27 06:02:13 +0800 |
---|---|---|
committer | zeertzjq <zeertzjq@outlook.com> | 2022-07-27 06:19:43 +0800 |
commit | 9f1dc1466e0391c9f592455136f5a07106acf150 (patch) | |
tree | 04e371645c8ca4395c2552789381f1fb81dd339e /test/functional | |
parent | 45e2bbae835fab479f8e900a2f9c7c47ae22caea (diff) | |
download | rneovim-9f1dc1466e0391c9f592455136f5a07106acf150.tar.gz rneovim-9f1dc1466e0391c9f592455136f5a07106acf150.tar.bz2 rneovim-9f1dc1466e0391c9f592455136f5a07106acf150.zip |
vim-patch:9.0.0082: cannot interrupt global command from command line
Problem: Cannot interrupt global command from command line.
Solution: Reset got_int in another place. (closes vim/vim#10739)
https://github.com/vim/vim/commit/3cfae39b087c2724991d385e5e8ee7d011aa8e99
Diffstat (limited to 'test/functional')
-rw-r--r-- | test/functional/legacy/ex_mode_spec.lua | 2 | ||||
-rw-r--r-- | test/functional/legacy/global_spec.lua | 51 |
2 files changed, 52 insertions, 1 deletions
diff --git a/test/functional/legacy/ex_mode_spec.lua b/test/functional/legacy/ex_mode_spec.lua index 59f4a21f5f..a8f54c6939 100644 --- a/test/functional/legacy/ex_mode_spec.lua +++ b/test/functional/legacy/ex_mode_spec.lua @@ -143,7 +143,7 @@ describe('Ex mode', function() ^ | ]]) feed('<C-C>') - sleep(10) -- Wait for Ctrl-C to flush input + sleep(10) -- Wait for input to be flushed feed('foo<CR>') screen:expect([[ Entering Ex mode. Type "visual" to go to Normal mode. | diff --git a/test/functional/legacy/global_spec.lua b/test/functional/legacy/global_spec.lua new file mode 100644 index 0000000000..9f4528530c --- /dev/null +++ b/test/functional/legacy/global_spec.lua @@ -0,0 +1,51 @@ +local helpers = require('test.functional.helpers')(after_each) +local Screen = require('test.functional.ui.screen') +local clear = helpers.clear +local exec = helpers.exec +local feed = helpers.feed +local sleep = helpers.sleep + +before_each(clear) + +describe(':global', function() + -- oldtest: Test_interrupt_global() + it('can be interrupted using Ctrl-C in cmdline mode vim-patch:9.0.0082', function() + local screen = Screen.new(75, 6) + screen:set_default_attr_ids({ + [0] = {bold = true, reverse = true}, -- MsgSeparator + [1] = {background = Screen.colors.Red, foreground = Screen.colors.White}, -- ErrorMsg + }) + screen:attach() + + exec([[ + set nohlsearch noincsearch + cnoremap ; <Cmd>sleep 10<CR> + call setline(1, repeat(['foo'], 5)) + ]]) + + feed(':g/foo/norm :<C-V>;<CR>') + sleep(10) -- Wait for :sleep to start + feed('<C-C>') + screen:expect([[ + ^foo | + foo | + foo | + foo | + foo | + {1:Interrupted} | + ]]) + + -- Also test in Ex mode + feed('gQg/foo/norm :<C-V>;<CR>') + sleep(10) -- Wait for :sleep to start + feed('<C-C>') + screen:expect([[ + {0: }| + Entering Ex mode. Type "visual" to go to Normal mode. | + :g/foo/norm :; | + | + {1:Interrupted} | + :^ | + ]]) + end) +end) |