From 9fe24a9d9f1785eda020bae96364b75605589736 Mon Sep 17 00:00:00 2001 From: "Andy K. Massimino" Date: Sat, 18 Aug 2018 17:11:10 -0400 Subject: [PATCH] Update offscreen on scroll --- autoload/matchup/matchparen.vim | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/autoload/matchup/matchparen.vim b/autoload/matchup/matchparen.vim index b957ca0..c5a8fe5 100644 --- a/autoload/matchup/matchparen.vim +++ b/autoload/matchup/matchparen.vim @@ -466,11 +466,31 @@ function! s:format_statusline(offscreen) " {{{1 endfor let l:sl .= '%#Normal#' + if has('timers') && exists('*timer_pause') + if !exists('s:scroll_timer') + let s:scroll_timer = timer_start(50, + \ 'matchup#matchparen#scroll_callback', + \ { 'repeat': -1 }) + call timer_pause(s:scroll_timer, 1) + endif + let l:sl .= '%{matchup#matchparen#scroll_update(' + \ .a:offscreen.lnum.')}' + endif + return l:sl endfunction -function! s:gchar_virtpos(lnum, cnum) - return matchstr(getline(a:lnum), '\%'.a:cnum.'v.') +function! matchup#matchparen#scroll_callback(tid) + call timer_pause(a:tid, 1) + call s:matchparen.highlight(1) +endfunction + +function! matchup#matchparen#scroll_update(lnum) + if line('w0') <= a:lnum && a:lnum <= line('w$') + \ && exists('s:scroll_timer') + call timer_pause(s:scroll_timer, 0) + endif + return '' endfunction " }}}1