blob: fb275777da42a93499ae18f461742f4d056139c4 [file] [log] [blame]
Bram Moolenaar4d585022016-04-14 19:50:22 +02001" Test for matchadd() and conceal feature using utf-8.
Bram Moolenaarb0f94c12019-06-13 22:19:53 +02002
Bram Moolenaar30276f22019-01-24 17:59:39 +01003if !has('conceal')
Bram Moolenaarb0f94c12019-06-13 22:19:53 +02004 throw 'Skipped, conceal feature missing'
Bram Moolenaar4d585022016-04-14 19:50:22 +02005endif
Bram Moolenaar4d585022016-04-14 19:50:22 +02006
7if !has('gui_running') && has('unix')
8 set term=ansi
9endif
10
Bram Moolenaar1e115362019-01-09 23:01:02 +010011func s:screenline(lnum) abort
Bram Moolenaar4d585022016-04-14 19:50:22 +020012 let line = []
13 for c in range(1, winwidth(0))
14 call add(line, nr2char(screenchar(a:lnum, c)))
15 endfor
16 return s:trim(join(line, ''))
Bram Moolenaar1e115362019-01-09 23:01:02 +010017endfunc
Bram Moolenaar4d585022016-04-14 19:50:22 +020018
Bram Moolenaar1e115362019-01-09 23:01:02 +010019func s:trim(str) abort
Bram Moolenaar4d585022016-04-14 19:50:22 +020020 return matchstr(a:str,'^\s*\zs.\{-}\ze\s*$')
Bram Moolenaar1e115362019-01-09 23:01:02 +010021endfunc
Bram Moolenaar4d585022016-04-14 19:50:22 +020022
Bram Moolenaar1e115362019-01-09 23:01:02 +010023func Test_match_using_multibyte_conceal_char()
Bram Moolenaar4d585022016-04-14 19:50:22 +020024 new
25 setlocal concealcursor=n conceallevel=1
26
27 1put='# This is a Test'
28 " 1234567890123456
29 let expect = '#ˑThisˑisˑaˑTest'
30
31 call cursor(1, 1)
32 call matchadd('Conceal', '\%2l ', 20, -1, {'conceal': "\u02d1"})
33 redraw!
34
35 let lnum = 2
36 call assert_equal(expect, s:screenline(lnum))
37 call assert_notequal(screenattr(lnum, 1), screenattr(lnum, 2))
38 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 7))
39 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 10))
40 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 12))
41 call assert_equal(screenattr(lnum, 1), screenattr(lnum, 16))
42
43 quit!
Bram Moolenaar1e115362019-01-09 23:01:02 +010044endfunc