neovim/test/functional/legacy/063_match_and_matchadd_spec.lua
bfredl e61228a214 fix(tests): needing two calls to setup a screen is cringe
Before calling "attach" a screen object is just a dummy container for
(row, col) values whose purpose is to be sent as part of the "attach"
function call anyway.

Just create the screen in an attached state directly. Keep the complete
(row, col, options) config together. It is still completely valid to
later detach and re-attach as needed, including to another session.
2024-11-14 12:40:57 +01:00

38 lines
1.3 KiB
Lua

-- Tests for adjusting window and contents
local n = require('test.functional.testnvim')()
local Screen = require('test.functional.ui.screen')
local clear, command = n.clear, n.command
local insert = n.insert
describe('063: Test for ":match", "matchadd()" and related functions', function()
setup(clear)
it('is working', function()
local screen = Screen.new(40, 5)
command('highlight MyGroup1 term=bold ctermbg=red guibg=red')
command('highlight MyGroup2 term=italic ctermbg=green guibg=green')
command('highlight MyGroup3 term=underline ctermbg=blue guibg=blue')
-- Check that "matchaddpos()" positions matches correctly
insert('abcdefghijklmnopq')
command("call matchaddpos('MyGroup1', [[1, 5], [1, 8, 3]], 10, 3)")
screen:expect([[
abcd{30:e}fg{30:hij}klmnop^q |
{1:~ }|*3
|
]])
command('call clearmatches()')
command("call setline(1, 'abcdΣabcdef')")
command("call matchaddpos('MyGroup1', [[1, 4, 2], [1, 9, 2]])")
screen:expect([[
abc{30:dΣ}ab{30:cd}e^f |
{1:~ }|*3
|
]])
end)
end)