blob: d280c153ac4b3781fa7d6a6bf9dd5f6f62e69ecc [file] [log] [blame]
Bram Moolenaar4d585022016-04-14 19:50:22 +02001" Test for matchadd() and conceal feature using utf-8.
Bram Moolenaar30276f22019-01-24 17:59:39 +01002if !has('conceal')
Bram Moolenaar4d585022016-04-14 19:50:22 +02003 finish
4endif
Bram Moolenaar4d585022016-04-14 19:50:22 +02005
6if !has('gui_running') && has('unix')
7 set term=ansi
8endif
9
Bram Moolenaar1e115362019-01-09 23:01:02 +010010func s:screenline(lnum) abort
Bram Moolenaar4d585022016-04-14 19:50:22 +020011 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, ''))
Bram Moolenaar1e115362019-01-09 23:01:02 +010016endfunc
Bram Moolenaar4d585022016-04-14 19:50:22 +020017
Bram Moolenaar1e115362019-01-09 23:01:02 +010018func s:trim(str) abort
Bram Moolenaar4d585022016-04-14 19:50:22 +020019 return matchstr(a:str,'^\s*\zs.\{-}\ze\s*$')
Bram Moolenaar1e115362019-01-09 23:01:02 +010020endfunc
Bram Moolenaar4d585022016-04-14 19:50:22 +020021
Bram Moolenaar1e115362019-01-09 23:01:02 +010022func Test_match_using_multibyte_conceal_char()
Bram Moolenaar4d585022016-04-14 19:50:22 +020023 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!
Bram Moolenaar1e115362019-01-09 23:01:02 +010043endfunc