aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorNacho Nieva <83428506+NachoNievaG@users.noreply.github.com>2023-12-26 20:26:18 -0300
committerGitHub <noreply@github.com>2023-12-27 07:26:18 +0800
commitc26dc1f77c792fe5cbefd578dc8d1e23c80d3688 (patch)
treee5419c542cdd3099a3e9d65cf7b7c4f5f3945201 /test
parent5cb906e91cb56302d0737aa80e2d890dde452029 (diff)
downloadrneovim-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.lua69
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()'))