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