" ============================================================================= " Filename: autoload/screensaver/randomhighlight.vim " Author: itchyny " License: MIT License " Last Change: 2017/04/09 22:46:26. " ============================================================================= let s:save_cpo = &cpo set cpo&vim function! screensaver#randomhighlight#new(...) abort return extend(extend(deepcopy(s:self), (a:0 ? a:1 : {})), { 'color': screensaver#randomcolor#new() }) endfunction let s:self = {} let s:self.time = -1 let s:gui = has('gui_running') || (has('termguicolors') && &termguicolors) function! s:self.highlight() dict abort let self.time = (get(self, 'time') + 1) % 36 if self.time % 6 && !s:gui return endif call self.color.next() if s:gui exec 'highlight ' . self.name . ' guibg=' . self.color.get() else exec 'highlight ' . self.name . ' ctermbg=' . self.color.get() endif endfunction let &cpo = s:save_cpo unlet s:save_cpo