From c26dc1f77c792fe5cbefd578dc8d1e23c80d3688 Mon Sep 17 00:00:00 2001 From: Nacho Nieva <83428506+NachoNievaG@users.noreply.github.com> Date: Tue, 26 Dec 2023 20:26:18 -0300 Subject: feat(defaults): map Q and @x to repeat in Visual mode (#26495) --- test/functional/editor/macro_spec.lua | 69 ++++++++++++++++++++++++++++++++++- 1 file changed, 68 insertions(+), 1 deletion(-) (limited to 'test') 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('qiahelloq') 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 [[qqAFOOq]] + 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 [[qqAFOOqu]] + eq({'hello', 'hello', 'hello'}, curbufmeths.get_lines(0, -1, false)) + + feed [[qwA123qu]] + 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 [[qqAFOOqu]] + eq({'hello', 'hello', 'hello'}, curbufmeths.get_lines(0, -1, false)) + + feed [[qwA123qu]] + eq({'hello', 'hello', 'hello'}, curbufmeths.get_lines(0, -1, false)) + + feed[[3j@q]] + eq({'helloFOO', 'helloFOO', 'helloFOO'}, curbufmeths.get_lines(0, -1, false)) + + feed [[gg]] + feed[[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()')) -- cgit