diff src/testdir/view_util.vim @ 12580:ba55861aa52c v8.0.1168

patch 8.0.1168: wrong highlighting with combination of match and 'cursorline' commit https://github.com/vim/vim/commit/0aa398f55a327282c70f56e0bac2dcb9521da378 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Sep 30 21:23:55 2017 +0200 patch 8.0.1168: wrong highlighting with combination of match and 'cursorline' Problem: wrong highlighting with combination of match and 'cursorline'. Solution: Use "line_attr" when appropriate. (Ozaki Kiichi, closes https://github.com/vim/vim/issues/2111) But don't highlight more than one character.
author Christian Brabandt <cb@256bit.org>
date Sat, 30 Sep 2017 21:30:05 +0200
parents 678edb254216
children eb087f8a26a8
line wrap: on
line diff
--- a/src/testdir/view_util.vim
+++ b/src/testdir/view_util.vim
@@ -1,5 +1,10 @@
 " Functions about view shared by several tests
 
+" Only load this script once.
+if exists('*ScreenLines')
+  finish
+endif
+
 " ScreenLines(lnum, width) or
 " ScreenLines([start, end], width)
 function! ScreenLines(lnum, width) abort
@@ -18,6 +23,22 @@ function! ScreenLines(lnum, width) abort
   return lines
 endfunction
 
+function! 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
+endfunction
+
 function! NewWindow(height, width) abort
   exe a:height . 'new'
   exe a:width . 'vsp'