aboutsummaryrefslogtreecommitdiff
path: root/test/functional/legacy
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2023-11-13 10:47:12 +0800
committerGitHub <noreply@github.com>2023-11-13 10:47:12 +0800
commit2a58aa57098a4876afa8d865d6d9ec32407d7f11 (patch)
treee8c1a4a50df202b64adf0edfbfe0a4255ea0c808 /test/functional/legacy
parent6fa9f457234449f5c62fefeb6a7f87b5f36e819c (diff)
downloadrneovim-2a58aa57098a4876afa8d865d6d9ec32407d7f11.tar.gz
rneovim-2a58aa57098a4876afa8d865d6d9ec32407d7f11.tar.bz2
rneovim-2a58aa57098a4876afa8d865d6d9ec32407d7f11.zip
vim-patch:9.0.2102: matchparen highlight not cleared in completion mode (#26019)
Problem: matchparen highlight not cleared in completion mode Solution: Clear matchparen highlighting in completion mode Remove hard-coded hack in insexpand.c to clear the :3match before displaying the completion menu. Add a test for matchparen highlighting. While at it, move all test tests related to the matchparen plugin into a separate test file. closes: vim/vim#13493 closes: vim/vim#13524 https://github.com/vim/vim/commit/9588666360e94de3ff58d4bc79aa9148fbf5fc44 Co-authored-by: Christian Brabandt <cb@256bit.org>
Diffstat (limited to 'test/functional/legacy')
-rw-r--r--test/functional/legacy/display_spec.lua73
-rw-r--r--test/functional/legacy/matchparen_spec.lua116
2 files changed, 116 insertions, 73 deletions
diff --git a/test/functional/legacy/display_spec.lua b/test/functional/legacy/display_spec.lua
index 89120baea9..9c6f521882 100644
--- a/test/functional/legacy/display_spec.lua
+++ b/test/functional/legacy/display_spec.lua
@@ -9,34 +9,6 @@ local command = helpers.command
describe('display', function()
before_each(clear)
- -- oldtest: Test_visual_block_scroll()
- it('redraws properly after scrolling with matchparen loaded and scrolloff=1', function()
- local screen = Screen.new(30, 7)
- screen:attach()
- screen:set_default_attr_ids({
- [1] = {bold = true},
- [2] = {background = Screen.colors.LightGrey},
- })
-
- exec([[
- source $VIMRUNTIME/plugin/matchparen.vim
- set scrolloff=1
- call setline(1, ['a', 'b', 'c', 'd', 'e', '', '{', '}', '{', 'f', 'g', '}'])
- call cursor(5, 1)
- ]])
-
- feed('V<c-d><c-d>')
- screen:expect([[
- {2:{} |
- {2:}} |
- {2:{} |
- {2:f} |
- ^g |
- } |
- {1:-- VISUAL LINE --} |
- ]])
- end)
-
-- oldtest: Test_display_scroll_at_topline()
it('scroll when modified at topline vim-patch:8.2.1488', function()
local screen = Screen.new(20, 4)
@@ -86,51 +58,6 @@ describe('display', function()
]])
end)
- -- oldtest: Test_matchparen_clear_highlight()
- it('matchparen highlight is cleared when switching buffer', function()
- local screen = Screen.new(20, 5)
- screen:set_default_attr_ids({
- [0] = {bold = true, foreground = Screen.colors.Blue},
- [1] = {background = Screen.colors.Cyan},
- })
- screen:attach()
-
- local screen1 = [[
- {1:^()} |
- {0:~ }|
- {0:~ }|
- {0:~ }|
- |
- ]]
- local screen2 = [[
- ^aa |
- {0:~ }|
- {0:~ }|
- {0:~ }|
- |
- ]]
-
- exec([[
- source $VIMRUNTIME/plugin/matchparen.vim
- set hidden
- call setline(1, ['()'])
- normal 0
- ]])
- screen:expect(screen1)
-
- exec([[
- enew
- exe "normal iaa\<Esc>0"
- ]])
- screen:expect(screen2)
-
- feed('<C-^>')
- screen:expect(screen1)
-
- feed('<C-^>')
- screen:expect(screen2)
- end)
-
local function run_test_display_lastline(euro)
local screen = Screen.new(75, 10)
screen:set_default_attr_ids({
diff --git a/test/functional/legacy/matchparen_spec.lua b/test/functional/legacy/matchparen_spec.lua
new file mode 100644
index 0000000000..22d9247698
--- /dev/null
+++ b/test/functional/legacy/matchparen_spec.lua
@@ -0,0 +1,116 @@
+local helpers = require('test.functional.helpers')(after_each)
+
+local Screen = require('test.functional.ui.screen')
+local clear = helpers.clear
+local exec = helpers.exec
+local feed = helpers.feed
+
+describe('matchparen', function()
+ before_each(clear)
+
+ -- oldtest: Test_visual_block_scroll()
+ it('redraws properly after scrolling with scrolloff=1', function()
+ local screen = Screen.new(30, 7)
+ screen:attach()
+ screen:set_default_attr_ids({
+ [1] = {bold = true},
+ [2] = {background = Screen.colors.LightGrey},
+ })
+
+ exec([[
+ source $VIMRUNTIME/plugin/matchparen.vim
+ set scrolloff=1
+ call setline(1, ['a', 'b', 'c', 'd', 'e', '', '{', '}', '{', 'f', 'g', '}'])
+ call cursor(5, 1)
+ ]])
+
+ feed('V<c-d><c-d>')
+ screen:expect([[
+ {2:{} |
+ {2:}} |
+ {2:{} |
+ {2:f} |
+ ^g |
+ } |
+ {1:-- VISUAL LINE --} |
+ ]])
+ end)
+
+ -- oldtest: Test_matchparen_clear_highlight()
+ it('matchparen highlight is cleared when switching buffer', function()
+ local screen = Screen.new(20, 5)
+ screen:set_default_attr_ids({
+ [0] = {bold = true, foreground = Screen.colors.Blue},
+ [1] = {background = Screen.colors.Cyan},
+ })
+ screen:attach()
+
+ local screen1 = [[
+ {1:^()} |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ |
+ ]]
+ local screen2 = [[
+ ^aa |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ |
+ ]]
+
+ exec([[
+ source $VIMRUNTIME/plugin/matchparen.vim
+ set hidden
+ call setline(1, ['()'])
+ normal 0
+ ]])
+ screen:expect(screen1)
+
+ exec([[
+ enew
+ exe "normal iaa\<Esc>0"
+ ]])
+ screen:expect(screen2)
+
+ feed('<C-^>')
+ screen:expect(screen1)
+
+ feed('<C-^>')
+ screen:expect(screen2)
+ end)
+
+ -- oldtest: Test_matchparen_pum_clear()
+ it('is cleared when completion popup is shown', function()
+ local screen = Screen.new(30, 9)
+ screen:attach()
+ screen:set_default_attr_ids({
+ [0] = {bold = true, foreground = Screen.colors.Blue};
+ [1] = {background = Screen.colors.Plum1};
+ [2] = {background = Screen.colors.Grey};
+ [3] = {bold = true};
+ [4] = {bold = true, foreground = Screen.colors.SeaGreen};
+ })
+
+ exec([[
+ source $VIMRUNTIME/plugin/matchparen.vim
+ set completeopt=menuone
+ call setline(1, ['aa', 'aaa', 'aaaa', '(a)'])
+ call cursor(4, 3)
+ ]])
+
+ feed('i<C-X><C-N><C-N>')
+ screen:expect{grid=[[
+ aa |
+ aaa |
+ aaaa |
+ (aaa^) |
+ {1: aa }{0: }|
+ {2: aaa }{0: }|
+ {1: aaaa }{0: }|
+ {0:~ }|
+ {3:-- }{4:match 2 of 3} |
+ ]]}
+ end)
+end)