Files
neovim/src/nvim/testdir/test_matchadd_conceal_utf8.vim
zeertzjq ca64b589cd vim-patch:8.1.{1524,1544}: tests are silently skipped (#19276)
This is a port of these two patches combined:

vim-patch:8.1.1524: tests are silently skipped

Problem:    Tests are silently skipped.
Solution:   Throw an exception for skipped tests in more places.
b0f94c1ff3

vim-patch:8.1.1544: some balloon tests don't run when they can

Problem:    Some balloon tests don't run when they can.
Solution:   Split GUI balloon tests off into a separate file. (Ozaki Kiichi,
            closes vim/vim#4538)  Change the feature check into a command for
            consistency.
b46fecd345

Omit test_lua.vim: previous patches are N/A
Omit test_memory_usage.vim: previous patches are N/A
Omit test_textprop.vim: previous patches are N/A
Omit test_winbar.vim: previous patches are N/A
Omit test_termcodes.vim: mostly N/A
Skip Test_mouse_positon() because it uses test_setmouse().
Cannot throw error in a Test_nocatch_ test.
Use latest `CheckFeature clipboard_working` for test_quotestar.vim
2022-07-08 08:26:25 +08:00

40 lines
1.0 KiB
VimL

" Test for matchadd() and conceal feature using utf-8.
source check.vim
CheckFeature conceal
func s:screenline(lnum) abort
let line = []
for c in range(1, winwidth(0))
call add(line, nr2char(a:lnum->screenchar(c)))
endfor
return s:trim(join(line, ''))
endfunc
func s:trim(str) abort
return matchstr(a:str,'^\s*\zs.\{-}\ze\s*$')
endfunc
func Test_match_using_multibyte_conceal_char()
new
setlocal concealcursor=n conceallevel=1
1put='# This is a Test'
" 1234567890123456
let expect = '#ˑThisˑisˑaˑTest'
call cursor(1, 1)
call matchadd('Conceal', '\%2l ', 20, -1, {'conceal': "\u02d1"})
redraw!
let lnum = 2
call assert_equal(expect, s:screenline(lnum))
call assert_notequal(screenattr(lnum, 1), screenattr(lnum, 2))
call assert_equal(screenattr(lnum, 2), screenattr(lnum, 7))
call assert_equal(screenattr(lnum, 2), screenattr(lnum, 10))
call assert_equal(screenattr(lnum, 2), screenattr(lnum, 12))
call assert_equal(screenattr(lnum, 1), screenattr(lnum, 16))
quit!
endfunc