Mercurial > vim
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 |