aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorJerry <guanru0919@yahoo.com>2024-06-14 19:21:16 -0700
committerGitHub <noreply@github.com>2024-06-15 10:21:16 +0800
commit61aabe0730b547b733faaf74ff181ec8c33f8b92 (patch)
treeb369b3555b8cccb6fbd2ecca9b70f5f9e30e2cbb /test
parent199d852d9f8584217be38efb56b725aa3db62931 (diff)
downloadrneovim-61aabe0730b547b733faaf74ff181ec8c33f8b92.tar.gz
rneovim-61aabe0730b547b733faaf74ff181ec8c33f8b92.tar.bz2
rneovim-61aabe0730b547b733faaf74ff181ec8c33f8b92.zip
fix(defaults): default @/Q broken when 'ignorecase' is set (#29343)
Problem: When 'ignorecase' is set, the default keymap Q and Q would exit visual mode. This issue was raised in #28287 and a fix was applied in #28289. However, `==` operator is subject to user `ignorecase` setting. Solution: Switching to `==#` operator would guarantee case sensitive comparison between visual mode and linewise visual mode. Co-authored-by: Kuanju Chen <kuanju.chen@mksinst.com>
Diffstat (limited to 'test')
-rw-r--r--test/functional/editor/macro_spec.lua17
1 files changed, 17 insertions, 0 deletions
diff --git a/test/functional/editor/macro_spec.lua b/test/functional/editor/macro_spec.lua
index 27c5eddac8..680a70b78a 100644
--- a/test/functional/editor/macro_spec.lua
+++ b/test/functional/editor/macro_spec.lua
@@ -148,6 +148,23 @@ helloFOO]]
eq({ 0, 1, 1, 0 }, fn.getpos('v'))
end)
+ it('can be recorded and replayed in Visual mode when ignorecase', function()
+ command('set ignorecase')
+ insert('foo BAR BAR foo BAR foo BAR BAR BAR foo BAR BAR')
+ feed('0vqifofRq')
+ eq({ 0, 1, 7, 0 }, fn.getpos('.'))
+ eq({ 0, 1, 1, 0 }, fn.getpos('v'))
+ feed('Q')
+ eq({ 0, 1, 19, 0 }, fn.getpos('.'))
+ eq({ 0, 1, 1, 0 }, fn.getpos('v'))
+ feed('Q')
+ eq({ 0, 1, 27, 0 }, fn.getpos('.'))
+ eq({ 0, 1, 1, 0 }, fn.getpos('v'))
+ feed('@i')
+ eq({ 0, 1, 43, 0 }, fn.getpos('.'))
+ eq({ 0, 1, 1, 0 }, fn.getpos('v'))
+ end)
+
it('can be replayed with @ in blockwise Visual mode', function()
insert [[
hello