Files
neovim/src/nvim/testdir/view_util.vim
zeertzjq bcef006da6 vim-patch:9.0.0678: using exclamation marks on :function (#20518)
Problem:    Using exclamation marks on :function.
Solution:   Use :func and :endfunc as usual.
97f0eb169b

Add a missing change from patch 8.1.1875.
2022-10-07 07:06:38 +08:00

65 lines
1.4 KiB
VimL

" Functions about view shared by several tests
" Only load this script once.
if exists('*Screenline')
finish
endif
" Get line "lnum" as displayed on the screen.
" Trailing white space is trimmed.
func Screenline(lnum)
let chars = []
for c in range(1, winwidth(0))
call add(chars, nr2char(screenchar(a:lnum, c)))
endfor
let line = join(chars, '')
return matchstr(line, '^.\{-}\ze\s*$')
endfunc
" Get text on the screen, including composing characters.
" ScreenLines(lnum, width) or
" ScreenLines([start, end], width)
func ScreenLines(lnum, width) abort
redraw!
if type(a:lnum) == v:t_list
let start = a:lnum[0]
let end = a:lnum[1]
else
let start = a:lnum
let end = a:lnum
endif
let lines = []
for l in range(start, end)
let lines += [join(map(range(1, a:width), 'screenstring(l, v:val)'), '')]
endfor
return lines
endfunc
func ScreenAttrs(lnum, width) abort
redraw!
if type(a:lnum) == v:t_list
let start = a:lnum[0]
let end = a:lnum[1]
else
let start = a:lnum
let end = a:lnum
endif
let attrs = []
for l in range(start, end)
let attrs += [map(range(1, a:width), 'screenattr(l, v:val)')]
endfor
return attrs
endfunc
func NewWindow(height, width) abort
exe a:height . 'new'
exe a:width . 'vsp'
set winfixwidth winfixheight
redraw!
endfunc
func CloseWindow() abort
bw!
redraw!
endfunc