blob: 29ea073f9780449230ed944a049c72fbe0ff6cc6 [file] [log] [blame]
Bram Moolenaar544d3bc2017-02-05 21:14:50 +01001" Functions about view shared by several tests
2
Bram Moolenaar0aa398f2017-09-30 21:23:55 +02003" Only load this script once.
4if exists('*ScreenLines')
5 finish
6endif
7
Bram Moolenaar544d3bc2017-02-05 21:14:50 +01008" ScreenLines(lnum, width) or
9" ScreenLines([start, end], width)
10function! ScreenLines(lnum, width) abort
11 redraw!
12 if type(a:lnum) == v:t_list
13 let start = a:lnum[0]
14 let end = a:lnum[1]
15 else
16 let start = a:lnum
17 let end = a:lnum
18 endif
19 let lines = []
20 for l in range(start, end)
21 let lines += [join(map(range(1, a:width), 'nr2char(screenchar(l, v:val))'), '')]
22 endfor
23 return lines
24endfunction
25
Bram Moolenaar0aa398f2017-09-30 21:23:55 +020026function! ScreenAttrs(lnum, width) abort
27 redraw!
28 if type(a:lnum) == v:t_list
29 let start = a:lnum[0]
30 let end = a:lnum[1]
31 else
32 let start = a:lnum
33 let end = a:lnum
34 endif
35 let attrs = []
36 for l in range(start, end)
37 let attrs += [map(range(1, a:width), 'screenattr(l, v:val)')]
38 endfor
39 return attrs
40endfunction
41
Bram Moolenaar544d3bc2017-02-05 21:14:50 +010042function! NewWindow(height, width) abort
43 exe a:height . 'new'
44 exe a:width . 'vsp'
45 redraw!
46endfunction
47
48function! CloseWindow() abort
49 bw!
50 redraw!
51endfunction