diff options
author | zeertzjq <zeertzjq@outlook.com> | 2022-04-07 21:13:09 +0800 |
---|---|---|
committer | zeertzjq <zeertzjq@outlook.com> | 2022-04-07 21:42:07 +0800 |
commit | 2a574f7aaaf5cd0803faa9e4337bf3e21e8b8d2a (patch) | |
tree | 25196ecabe19a4d834e79a48ea54115c8d4579f1 /test | |
parent | dc9e436986bec15b027c2a8d78782f514c046a8b (diff) | |
download | rneovim-2a574f7aaaf5cd0803faa9e4337bf3e21e8b8d2a.tar.gz rneovim-2a574f7aaaf5cd0803faa9e4337bf3e21e8b8d2a.tar.bz2 rneovim-2a574f7aaaf5cd0803faa9e4337bf3e21e8b8d2a.zip |
fix(input): fix clearing of reg_executing
vim-patch:8.2.4705
Diffstat (limited to 'test')
-rw-r--r-- | test/functional/editor/macro_spec.lua | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/test/functional/editor/macro_spec.lua b/test/functional/editor/macro_spec.lua index c0c9256af2..f97fe44ba2 100644 --- a/test/functional/editor/macro_spec.lua +++ b/test/functional/editor/macro_spec.lua @@ -6,11 +6,13 @@ local feed = helpers.feed local clear = helpers.clear local expect = helpers.expect local command = helpers.command +local meths = helpers.meths local insert = helpers.insert local curbufmeths = helpers.curbufmeths +before_each(clear) + describe('macros', function() - before_each(clear) it('can be recorded and replayed', function() feed('qiahello<esc>q') expect('hello') @@ -47,9 +49,34 @@ hello]] end) end) -describe('reg_recorded()', function() - before_each(clear) +describe('immediately after a macro has finished executing,', function() + before_each(function() + command([[let @a = 'gg0']]) + end) + + describe('characters from a mapping are not treated as a part of the macro #18015', function() + before_each(function() + command('nnoremap s qa') + end) + + it('if the macro does not end with a <Nop> mapping', function() + feed('@asq') -- "q" from "s" mapping should start recording a macro instead of being no-op + eq({mode = 'n', blocking = false}, meths.get_mode()) + expect('') + eq('', eval('@a')) + end) + it('if the macro ends with a <Nop> mapping', function() + command('nnoremap 0 <Nop>') + feed('@asq') -- "q" from "s" mapping should start recording a macro instead of being no-op + eq({mode = 'n', blocking = false}, meths.get_mode()) + expect('') + eq('', eval('@a')) + end) + end) +end) + +describe('reg_recorded()', function() it('returns the correct value', function() feed [[qqyyq]] eq('q', eval('reg_recorded()')) |