aboutsummaryrefslogtreecommitdiff
path: root/test/functional/legacy
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2024-08-25 06:07:43 +0800
committerGitHub <noreply@github.com>2024-08-25 06:07:43 +0800
commitcf44121f7fb6f55a22e644a1e5e1f1dc6b90c27a (patch)
tree5c98c222adf773301fc32f847dbb20618899ecf9 /test/functional/legacy
parent84f1c5e072565f946f8632fb72424553b773f8c0 (diff)
downloadrneovim-cf44121f7fb6f55a22e644a1e5e1f1dc6b90c27a.tar.gz
rneovim-cf44121f7fb6f55a22e644a1e5e1f1dc6b90c27a.tar.bz2
rneovim-cf44121f7fb6f55a22e644a1e5e1f1dc6b90c27a.zip
vim-patch:9.1.0694: matchparen is slow on a long line (#30134)
Problem: The matchparen plugin is slow on a long line. Solution: Don't use a regexp to get char at and before cursor. (zeertzjq) Example: ```vim call setline(1, repeat(' foobar', 100000)) runtime plugin/matchparen.vim normal! $hhhhhhhh ``` closes: vim/vim#15568 https://github.com/vim/vim/commit/81e7513c86459c40676bd983f73c2722096d67a9
Diffstat (limited to 'test/functional/legacy')
-rw-r--r--test/functional/legacy/matchparen_spec.lua79
1 files changed, 75 insertions, 4 deletions
diff --git a/test/functional/legacy/matchparen_spec.lua b/test/functional/legacy/matchparen_spec.lua
index 3841761515..df0d80f0ab 100644
--- a/test/functional/legacy/matchparen_spec.lua
+++ b/test/functional/legacy/matchparen_spec.lua
@@ -120,8 +120,7 @@ describe('matchparen', function()
]])
feed('i<C-X><C-N><C-N>')
- screen:expect {
- grid = [[
+ screen:expect([[
aa |
aaa |
aaaa |
@@ -131,7 +130,79 @@ describe('matchparen', function()
{4: aaaa }{1: }|
{1:~ }|
{5:-- }{6:match 2 of 3} |
- ]],
- }
+ ]])
+ end)
+
+ -- oldtest: Test_matchparen_mbyte()
+ it("works with multibyte chars in 'matchpairs'", function()
+ local screen = Screen.new(30, 10)
+ screen:set_default_attr_ids({
+ [0] = { bold = true, foreground = Screen.colors.Blue },
+ [1] = { background = Screen.colors.Cyan },
+ [2] = { bold = true },
+ })
+ screen:attach()
+
+ exec([[
+ source $VIMRUNTIME/plugin/matchparen.vim
+ call setline(1, ['aaaaaaaa(', 'bbbb)cc'])
+ set matchpairs+=(:)
+ ]])
+
+ screen:expect([[
+ ^aaaaaaaa( |
+ bbbb)cc |
+ {0:~ }|*7
+ |
+ ]])
+ feed('$')
+ screen:expect([[
+ aaaaaaaa{1:^(} |
+ bbbb{1:)}cc |
+ {0:~ }|*7
+ |
+ ]])
+ feed('j')
+ screen:expect([[
+ aaaaaaaa( |
+ bbbb)c^c |
+ {0:~ }|*7
+ |
+ ]])
+ feed('2h')
+ screen:expect([[
+ aaaaaaaa{1:(} |
+ bbbb{1:^)}cc |
+ {0:~ }|*7
+ |
+ ]])
+ feed('0')
+ screen:expect([[
+ aaaaaaaa( |
+ ^bbbb)cc |
+ {0:~ }|*7
+ |
+ ]])
+ feed('kA')
+ screen:expect([[
+ aaaaaaaa{1:(}^ |
+ bbbb{1:)}cc |
+ {0:~ }|*7
+ {2:-- INSERT --} |
+ ]])
+ feed('<Down>')
+ screen:expect([[
+ aaaaaaaa( |
+ bbbb)cc^ |
+ {0:~ }|*7
+ {2:-- INSERT --} |
+ ]])
+ feed('<C-W>')
+ screen:expect([[
+ aaaaaaaa{1:(} |
+ bbbb{1:)}^ |
+ {0:~ }|*7
+ {2:-- INSERT --} |
+ ]])
end)
end)