blob: 34d3ee28f0da1fae50bfc78414c75246913173a8 [file] [log] [blame]
Bram Moolenaar4d585022016-04-14 19:50:22 +02001" Test for matchadd() and conceal feature using utf-8.
2if !has('conceal') || !has('multi_byte')
3 finish
4endif
Bram Moolenaar4d585022016-04-14 19:50:22 +02005
6if !has('gui_running') && has('unix')
7 set term=ansi
8endif
9
10function! s:screenline(lnum) abort
11 let line = []
12 for c in range(1, winwidth(0))
13 call add(line, nr2char(screenchar(a:lnum, c)))
14 endfor
15 return s:trim(join(line, ''))
16endfunction
17
18function! s:trim(str) abort
19 return matchstr(a:str,'^\s*\zs.\{-}\ze\s*$')
20endfunction
21
22function! Test_match_using_multibyte_conceal_char()
23 new
24 setlocal concealcursor=n conceallevel=1
25
26 1put='# This is a Test'
27 " 1234567890123456
28 let expect = '#ˑThisˑisˑaˑTest'
29
30 call cursor(1, 1)
31 call matchadd('Conceal', '\%2l ', 20, -1, {'conceal': "\u02d1"})
32 redraw!
33
34 let lnum = 2
35 call assert_equal(expect, s:screenline(lnum))
36 call assert_notequal(screenattr(lnum, 1), screenattr(lnum, 2))
37 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 7))
38 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 10))
39 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 12))
40 call assert_equal(screenattr(lnum, 1), screenattr(lnum, 16))
41
42 quit!
43endfunction