diff options
author | Nacho Nieva <83428506+NachoNievaG@users.noreply.github.com> | 2023-12-26 20:26:18 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-27 07:26:18 +0800 |
commit | c26dc1f77c792fe5cbefd578dc8d1e23c80d3688 (patch) | |
tree | e5419c542cdd3099a3e9d65cf7b7c4f5f3945201 /test | |
parent | 5cb906e91cb56302d0737aa80e2d890dde452029 (diff) | |
download | rneovim-c26dc1f77c792fe5cbefd578dc8d1e23c80d3688.tar.gz rneovim-c26dc1f77c792fe5cbefd578dc8d1e23c80d3688.tar.bz2 rneovim-c26dc1f77c792fe5cbefd578dc8d1e23c80d3688.zip |
feat(defaults): map Q and @x to repeat in Visual mode (#26495)
Diffstat (limited to 'test')
-rw-r--r-- | test/functional/editor/macro_spec.lua | 69 |
1 files changed, 68 insertions, 1 deletions
diff --git a/test/functional/editor/macro_spec.lua b/test/functional/editor/macro_spec.lua index 53be7dcc62..151d803faa 100644 --- a/test/functional/editor/macro_spec.lua +++ b/test/functional/editor/macro_spec.lua @@ -11,9 +11,11 @@ local meths = helpers.meths local insert = helpers.insert local curbufmeths = helpers.curbufmeths -before_each(clear) describe('macros', function() + before_each(function() + clear({args_rm = {'--cmd'}}) + end) it('can be recorded and replayed', function() feed('qiahello<esc>q') expect('hello') @@ -47,11 +49,75 @@ hello]] feed[[G3Q]] eq({'helloFOOFOO', 'hello', 'helloFOOFOOFOO'}, curbufmeths.get_lines(0, -1, false)) + + feed[[ggV3jQ]] + eq({'helloFOOFOOFOO', 'helloFOO', 'helloFOOFOOFOOFOO'}, curbufmeths.get_lines(0, -1, false)) + end) + + it('can be replayed with @', function() + insert [[hello +hello +hello]] + feed [[gg]] + + feed [[qqAFOO<esc>q]] + eq({'helloFOO', 'hello', 'hello'}, curbufmeths.get_lines(0, -1, false)) + + feed[[Q]] + eq({'helloFOOFOO', 'hello', 'hello'}, curbufmeths.get_lines(0, -1, false)) + + feed[[G3@@]] + eq({'helloFOOFOO', 'hello', 'helloFOOFOOFOO'}, curbufmeths.get_lines(0, -1, false)) + + feed[[ggV2j@@]] + eq({'helloFOOFOOFOO', 'helloFOO', 'helloFOOFOOFOOFOO'}, curbufmeths.get_lines(0, -1, false)) + end) + + it('can be replayed with @q and @w', function() + + insert [[hello +hello +hello]] + feed [[gg]] + + feed [[qqAFOO<esc>qu]] + eq({'hello', 'hello', 'hello'}, curbufmeths.get_lines(0, -1, false)) + + feed [[qwA123<esc>qu]] + eq({'hello', 'hello', 'hello'}, curbufmeths.get_lines(0, -1, false)) + + feed[[V3j@q]] + eq({'helloFOO', 'helloFOO', 'helloFOO'}, curbufmeths.get_lines(0, -1, false)) + + feed [[gg]] + feed[[Vj@w]] + eq({'helloFOO123', 'helloFOO123', 'helloFOO'}, curbufmeths.get_lines(0, -1, false)) + end) + + it('can be replayed with @q and @w visual-block', function() + insert [[hello +hello +hello]] + feed [[gg]] + + feed [[qqAFOO<esc>qu]] + eq({'hello', 'hello', 'hello'}, curbufmeths.get_lines(0, -1, false)) + + feed [[qwA123<esc>qu]] + eq({'hello', 'hello', 'hello'}, curbufmeths.get_lines(0, -1, false)) + + feed[[<C-v>3j@q]] + eq({'helloFOO', 'helloFOO', 'helloFOO'}, curbufmeths.get_lines(0, -1, false)) + + feed [[gg]] + feed[[<C-v>j@w]] + eq({'helloFOO123', 'helloFOO123', 'helloFOO'}, curbufmeths.get_lines(0, -1, false)) end) end) describe('immediately after a macro has finished executing,', function() before_each(function() + clear() command([[let @a = 'gg0']]) end) @@ -91,6 +157,7 @@ describe('immediately after a macro has finished executing,', function() end) describe('reg_recorded()', function() + before_each(clear) it('returns the correct value', function() feed [[qqyyq]] eq('q', eval('reg_recorded()')) |