Mercurial > vim
view src/testdir/popupbounce.vim @ 33517:921673b465a6 v9.0.2007
patch 9.0.2007: Vim9: covariant parameter types allowed
Commit: https://github.com/vim/vim/commit/e4671890220ef3f2bca43fde6ffe5d3ef3ed0e42
Author: Yegappan Lakshmanan <yegappan@yahoo.com>
Date: Mon Oct 9 18:01:06 2023 +0200
patch 9.0.2007: Vim9: covariant parameter types allowed
Problem: Vim9: covariant parameter types allowed when assigning
functions
Solution: Enforce invariant type check for arguments and return value
when assigning a funcref
closes: #13299
closes: #13305
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Mon, 09 Oct 2023 18:15:03 +0200 |
parents | 9606c0adc148 |
children |
line wrap: on
line source
" Use this script to measure the redrawing performance when a popup is being " displayed. Usage with gcc: " cd src " # Edit Makefile to uncomment PROFILE_CFLAGS and PROFILE_LIBS " make reconfig " ./vim --clean -S testdir/popupbounce.vim main.c " gprof vim gmon.out | vim - " using line continuation set nocp " don't switch screens when quitting, so we can read the frames/sec set t_te= let winid = popup_create(['line1', 'line2', 'line3', 'line4'], { \ 'line' : 1, \ 'col' : 1, \ 'zindex' : 101, \ }) redraw let start = reltime() let framecount = 0 let line = 1.0 let col = 1 let downwards = 1 let col_inc = 1 let initial_speed = 0.2 let speed = initial_speed let accel = 1.1 let time = 0.1 let countdown = 0 while 1 if downwards let speed += time * accel let line += speed else let speed -= time * accel let line -= speed endif if line + 3 >= &lines let downwards = 0 let speed = speed * 0.8 let line = &lines - 3 endif if !downwards && speed < 1.0 let downwards = 1 let speed = initial_speed if line + 4 > &lines && countdown == 0 let countdown = 50 endif endif let col += col_inc if col + 4 >= &columns let col_inc = -1 elseif col <= 1 let col_inc = 1 endif call popup_move(winid, {'line': float2nr(line), 'col': col}) redraw let framecount += 1 if countdown > 0 let countdown -= 1 if countdown == 0 break endif endif endwhile let elapsed = reltimefloat(reltime(start)) echomsg framecount .. ' frames in ' .. string(elapsed) .. ' seconds, ' .. string(framecount / elapsed) .. ' frames/sec' qa