comparison src/testdir/test_matchadd_conceal.vim @ 13359:81c348d40312 v8.0.1553

patch 8.0.1553: cannot see what digraph is used to insert a character commit https://github.com/vim/vim/commit/5f73ef8d20070cd45c9aea4dc33c2e0657f5515c Author: Bram Moolenaar <Bram@vim.org> Date: Tue Feb 27 21:09:30 2018 +0100 patch 8.0.1553: cannot see what digraph is used to insert a character Problem: Cannot see what digraph is used to insert a character. Solution: Show the digraph with the "ga" command. (Christian Brabandt)
author Christian Brabandt <cb@256bit.org>
date Tue, 27 Feb 2018 21:15:06 +0100
parents 694e3bb7a8ff
children 63b02fcf1361
comparison
equal deleted inserted replaced
13358:0a3d1708d414 13359:81c348d40312
5 5
6 if !has('gui_running') && has('unix') 6 if !has('gui_running') && has('unix')
7 set term=ansi 7 set term=ansi
8 endif 8 endif
9 9
10 function! s:screenline(lnum) abort 10 source shared.vim
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, ''))
16 endfunction
17
18 function! s:trim(str) abort
19 return matchstr(a:str,'^\s*\zs.\{-}\ze\s*$')
20 endfunction
21 11
22 function! Test_simple_matchadd() 12 function! Test_simple_matchadd()
23 new 13 new
24 14
25 1put='# This is a Test' 15 1put='# This is a Test'
28 18
29 call cursor(1, 1) 19 call cursor(1, 1)
30 call matchadd('Conceal', '\%2l ') 20 call matchadd('Conceal', '\%2l ')
31 redraw! 21 redraw!
32 let lnum = 2 22 let lnum = 2
33 call assert_equal(expect, s:screenline(lnum)) 23 call assert_equal(expect, Screenline(lnum))
34 call assert_notequal(screenattr(lnum, 1), screenattr(lnum, 2)) 24 call assert_notequal(screenattr(lnum, 1), screenattr(lnum, 2))
35 call assert_notequal(screenattr(lnum, 1), screenattr(lnum, 2)) 25 call assert_notequal(screenattr(lnum, 1), screenattr(lnum, 2))
36 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 7)) 26 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 7))
37 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 10)) 27 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 10))
38 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 12)) 28 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 12))
51 41
52 call cursor(1, 1) 42 call cursor(1, 1)
53 call matchadd('Conceal', '\%2l ', 10, -1, {'conceal': 'X'}) 43 call matchadd('Conceal', '\%2l ', 10, -1, {'conceal': 'X'})
54 redraw! 44 redraw!
55 let lnum = 2 45 let lnum = 2
56 call assert_equal(expect, s:screenline(lnum)) 46 call assert_equal(expect, Screenline(lnum))
57 call assert_notequal(screenattr(lnum, 1), screenattr(lnum, 2)) 47 call assert_notequal(screenattr(lnum, 1), screenattr(lnum, 2))
58 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 7)) 48 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 7))
59 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 10)) 49 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 10))
60 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 12)) 50 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 12))
61 call assert_equal(screenattr(lnum, 1), screenattr(lnum, 16)) 51 call assert_equal(screenattr(lnum, 1), screenattr(lnum, 16))
77 67
78 call cursor(1, 1) 68 call cursor(1, 1)
79 call matchadd('Conceal', '\%2l ', 10, -1, {'conceal': 'X'}) 69 call matchadd('Conceal', '\%2l ', 10, -1, {'conceal': 'X'})
80 redraw! 70 redraw!
81 let lnum = 2 71 let lnum = 2
82 call assert_equal(expect, s:screenline(lnum)) 72 call assert_equal(expect, Screenline(lnum))
83 call assert_equal(screenattr(lnum, 1), screenattr(lnum, 2)) 73 call assert_equal(screenattr(lnum, 1), screenattr(lnum, 2))
84 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 7)) 74 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 7))
85 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 10)) 75 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 10))
86 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 12)) 76 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 12))
87 call assert_notequal(screenattr(lnum, 1), screenattr(lnum, 16)) 77 call assert_notequal(screenattr(lnum, 1), screenattr(lnum, 16))
90 " 1234567890123456 80 " 1234567890123456
91 let expect = '#Thisisa Test' 81 let expect = '#Thisisa Test'
92 82
93 call matchadd('ErrorMsg', '\%2l Test', 20, -1, {'conceal': 'X'}) 83 call matchadd('ErrorMsg', '\%2l Test', 20, -1, {'conceal': 'X'})
94 redraw! 84 redraw!
95 call assert_equal(expect, s:screenline(lnum)) 85 call assert_equal(expect, Screenline(lnum))
96 call assert_equal(screenattr(lnum, 1) , screenattr(lnum, 2)) 86 call assert_equal(screenattr(lnum, 1) , screenattr(lnum, 2))
97 call assert_equal(screenattr(lnum, 2) , screenattr(lnum, 7)) 87 call assert_equal(screenattr(lnum, 2) , screenattr(lnum, 7))
98 call assert_notequal(screenattr(lnum, 1) , screenattr(lnum, 10)) 88 call assert_notequal(screenattr(lnum, 1) , screenattr(lnum, 10))
99 call assert_equal(screenattr(lnum, 10), screenattr(lnum, 12)) 89 call assert_equal(screenattr(lnum, 10), screenattr(lnum, 12))
100 call assert_notequal(screenattr(lnum, 1) , screenattr(lnum, 16)) 90 call assert_notequal(screenattr(lnum, 1) , screenattr(lnum, 16))
114 104
115 call cursor(1, 1) 105 call cursor(1, 1)
116 call matchadd('Conceal', '\%2l ', 10, -1, {}) 106 call matchadd('Conceal', '\%2l ', 10, -1, {})
117 redraw! 107 redraw!
118 let lnum = 2 108 let lnum = 2
119 call assert_equal(expect, s:screenline(lnum)) 109 call assert_equal(expect, Screenline(lnum))
120 call assert_notequal(screenattr(lnum, 1), screenattr(lnum, 2)) 110 call assert_notequal(screenattr(lnum, 1), screenattr(lnum, 2))
121 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 7)) 111 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 7))
122 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 10)) 112 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 10))
123 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 12)) 113 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 12))
124 call assert_equal(screenattr(lnum, 1), screenattr(lnum, 16)) 114 call assert_equal(screenattr(lnum, 1), screenattr(lnum, 16))
127 let expect = '#+This+is+a+Test' 117 let expect = '#+This+is+a+Test'
128 let listchars_save = &listchars 118 let listchars_save = &listchars
129 set listchars=conceal:+ 119 set listchars=conceal:+
130 redraw! 120 redraw!
131 121
132 call assert_equal(expect, s:screenline(lnum)) 122 call assert_equal(expect, Screenline(lnum))
133 call assert_notequal(screenattr(lnum, 1), screenattr(lnum, 2)) 123 call assert_notequal(screenattr(lnum, 1), screenattr(lnum, 2))
134 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 7)) 124 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 7))
135 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 10)) 125 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 10))
136 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 12)) 126 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 12))
137 call assert_equal(screenattr(lnum, 1), screenattr(lnum, 16)) 127 call assert_equal(screenattr(lnum, 1), screenattr(lnum, 16))
151 call cursor(1, 1) 141 call cursor(1, 1)
152 call matchadd('Conceal', '\%2l ', 10, -1, {'conceal': 'Z'}) 142 call matchadd('Conceal', '\%2l ', 10, -1, {'conceal': 'Z'})
153 syntax match MyConceal /\%2l / conceal containedin=ALL cchar=* 143 syntax match MyConceal /\%2l / conceal containedin=ALL cchar=*
154 redraw! 144 redraw!
155 let lnum = 2 145 let lnum = 2
156 call assert_equal(expect, s:screenline(lnum)) 146 call assert_equal(expect, Screenline(lnum))
157 call assert_notequal(screenattr(lnum, 1), screenattr(lnum, 2)) 147 call assert_notequal(screenattr(lnum, 1), screenattr(lnum, 2))
158 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 7)) 148 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 7))
159 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 10)) 149 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 10))
160 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 12)) 150 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 12))
161 call assert_equal(screenattr(lnum, 1), screenattr(lnum, 16)) 151 call assert_equal(screenattr(lnum, 1), screenattr(lnum, 16))
163 " 1234567890123456 153 " 1234567890123456
164 let expect = '#*This*is*a*Test' 154 let expect = '#*This*is*a*Test'
165 call clearmatches() 155 call clearmatches()
166 redraw! 156 redraw!
167 157
168 call assert_equal(expect, s:screenline(lnum)) 158 call assert_equal(expect, Screenline(lnum))
169 call assert_notequal(screenattr(lnum, 1), screenattr(lnum, 2)) 159 call assert_notequal(screenattr(lnum, 1), screenattr(lnum, 2))
170 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 7)) 160 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 7))
171 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 10)) 161 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 10))
172 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 12)) 162 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 12))
173 call assert_equal(screenattr(lnum, 1), screenattr(lnum, 16)) 163 call assert_equal(screenattr(lnum, 1), screenattr(lnum, 16))
189 let a = getmatches() 179 let a = getmatches()
190 call clearmatches() 180 call clearmatches()
191 redraw! 181 redraw!
192 182
193 let lnum = 2 183 let lnum = 2
194 call assert_equal(expect, s:screenline(lnum)) 184 call assert_equal(expect, Screenline(lnum))
195 call assert_equal(screenattr(lnum, 1), screenattr(lnum, 2)) 185 call assert_equal(screenattr(lnum, 1), screenattr(lnum, 2))
196 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 7)) 186 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 7))
197 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 10)) 187 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 10))
198 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 12)) 188 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 12))
199 call assert_equal(screenattr(lnum, 1), screenattr(lnum, 16)) 189 call assert_equal(screenattr(lnum, 1), screenattr(lnum, 16))
202 " 1234567890123456 192 " 1234567890123456
203 let expect = '#ZThisZisZaZTest' 193 let expect = '#ZThisZisZaZTest'
204 call setmatches(a) 194 call setmatches(a)
205 redraw! 195 redraw!
206 196
207 call assert_equal(expect, s:screenline(lnum)) 197 call assert_equal(expect, Screenline(lnum))
208 call assert_notequal(screenattr(lnum, 1), screenattr(lnum, 2)) 198 call assert_notequal(screenattr(lnum, 1), screenattr(lnum, 2))
209 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 7)) 199 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 7))
210 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 10)) 200 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 10))
211 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 12)) 201 call assert_equal(screenattr(lnum, 2), screenattr(lnum, 12))
212 call assert_equal(screenattr(lnum, 1), screenattr(lnum, 16)) 202 call assert_equal(screenattr(lnum, 1), screenattr(lnum, 16))
230 call matchaddpos('Conceal', [[2,2,6]], 10, -1, {'conceal': 'P'}) 220 call matchaddpos('Conceal', [[2,2,6]], 10, -1, {'conceal': 'P'})
231 let a = getmatches() 221 let a = getmatches()
232 redraw! 222 redraw!
233 223
234 let lnum = 2 224 let lnum = 2
235 call assert_equal(expect, s:screenline(lnum)) 225 call assert_equal(expect, Screenline(lnum))
236 call assert_notequal(screenattr(lnum, 1) , screenattr(lnum, 2)) 226 call assert_notequal(screenattr(lnum, 1) , screenattr(lnum, 2))
237 call assert_notequal(screenattr(lnum, 2) , screenattr(lnum, 7)) 227 call assert_notequal(screenattr(lnum, 2) , screenattr(lnum, 7))
238 call assert_equal(screenattr(lnum, 1) , screenattr(lnum, 7)) 228 call assert_equal(screenattr(lnum, 1) , screenattr(lnum, 7))
239 call assert_equal(screenattr(lnum, 1) , screenattr(lnum, 10)) 229 call assert_equal(screenattr(lnum, 1) , screenattr(lnum, 10))
240 call assert_notequal(screenattr(lnum, 1) , screenattr(lnum, 12)) 230 call assert_notequal(screenattr(lnum, 1) , screenattr(lnum, 12))
252 " To test targets in the same line string is replaced with conceal char 242 " To test targets in the same line string is replaced with conceal char
253 " correctly, repeat 'TARGET' 243 " correctly, repeat 'TARGET'
254 1put ='TARGET_TARGETTARGET' 244 1put ='TARGET_TARGETTARGET'
255 call cursor(1, 1) 245 call cursor(1, 1)
256 redraw 246 redraw
257 call assert_equal('TARGET_TARGETTARGET', s:screenline(2)) 247 call assert_equal('TARGET_TARGETTARGET', Screenline(2))
258 248
259 setlocal conceallevel=2 249 setlocal conceallevel=2
260 call matchadd('Conceal', 'TARGET', 10, -1, {'conceal': 't'}) 250 call matchadd('Conceal', 'TARGET', 10, -1, {'conceal': 't'})
261 251
262 redraw 252 redraw
263 call assert_equal('t_tt', s:screenline(2)) 253 call assert_equal('t_tt', Screenline(2))
264 254
265 quit! 255 quit!
266 endfunction 256 endfunction
267 257
268 function! Test_matchadd_and_syn_conceal() 258 function! Test_matchadd_and_syn_conceal()
274 set cole=1 cocu=nv 264 set cole=1 cocu=nv
275 hi link CheckedByCoq WarningMsg 265 hi link CheckedByCoq WarningMsg
276 syntax on 266 syntax on
277 syntax keyword coqKwd bool conceal cchar=- 267 syntax keyword coqKwd bool conceal cchar=-
278 redraw! 268 redraw!
279 call assert_equal(expect, s:screenline(1)) 269 call assert_equal(expect, Screenline(1))
280 call assert_notequal(screenattr(1, 10) , screenattr(1, 11)) 270 call assert_notequal(screenattr(1, 10) , screenattr(1, 11))
281 call assert_notequal(screenattr(1, 11) , screenattr(1, 12)) 271 call assert_notequal(screenattr(1, 11) , screenattr(1, 12))
282 call assert_equal(screenattr(1, 11) , screenattr(1, 32)) 272 call assert_equal(screenattr(1, 11) , screenattr(1, 32))
283 call matchadd('CheckedByCoq', '\%<2l\%>9c\%<16c') 273 call matchadd('CheckedByCoq', '\%<2l\%>9c\%<16c')
284 redraw! 274 redraw!
285 call assert_equal(expect, s:screenline(1)) 275 call assert_equal(expect, Screenline(1))
286 call assert_notequal(screenattr(1, 10) , screenattr(1, 11)) 276 call assert_notequal(screenattr(1, 10) , screenattr(1, 11))
287 call assert_notequal(screenattr(1, 11) , screenattr(1, 12)) 277 call assert_notequal(screenattr(1, 11) , screenattr(1, 12))
288 call assert_equal(screenattr(1, 11) , screenattr(1, 32)) 278 call assert_equal(screenattr(1, 11) , screenattr(1, 32))
289 endfunction 279 endfunction