" let font_table = choosewin#font#table() let s:FONT_LARGE_WIDTH_MAX = 16 let s:FONT_SMALL_WIDTH_MAX = 8 let s:hl_shade_priority = 100 let s:hl_label_priority = 101 let s:_ = choosewin#util#get() let s:test = {} function! s:test.setup() "{{{1 unlet! b:choosewin unlet! w:choosewin let self.overlay = choosewin#overlay#get() let self.conf = choosewin#config() endfunction function! s:test.check() "{{{1 " let self.overlay = choosewin#overlay#get() " let self.conf = choosewin#config() " echo s:_.str_split(self.conf['label']) endfunction let g:choosewin_color_overlay_current = { 'gui': ['DarkGreen', 'DarkGreen' ], 'cterm': [ 22, 22 ] } function! s:test.review() "{{{1 call self.setup() for char in self.chars() let self.conf.label = char call self.overlay.start([1], self.conf) sleep 50m call self.overlay.restore() endfor endfunction function! s:test.chars() "{{{1 return map(range(33, 126), 'nr2char(v:val)') endfunction function! s:test.perf(size, count) "{{{1 let g:choosewin_overlay_font_size = a:size call self.setup() let start = reltime() for n in range(a:count) for char in self.chars() let self.conf.label = char call self.overlay.start([1], self.conf) " sleep 20m call self.overlay.restore() endfor endfor let result = 'cnt='. a:count .' '. a:size .':'. reltimestr(reltime(start)) echom result endfunction command! FontReview call s:test.review() command! -count=1 FontPerfLarge call s:test.perf('large', ) command! -count=1 FontPerfSmall call s:test.perf('small', ) " NEW " -------------------------- " FontPerfLarge " cnt=10 large: 19.119745 " FontPerfSmall " cnt=10 small: 15.231822 " OLD " -------------------------- " FontPerfLarge " cnt=10 large: 19.615394 ; " FontPerfSmall " cnt=10 small: 18.969902 " vim: foldmethod=marker