@@ -3,15 +3,23 @@ if exists('g:loaded_denops_std_helper_echo')
3
3
endif
4
4
let g: loaded_denops_std_helper_echo = 1
5
5
6
+ " Redraw debounce interval defined in denops.vim
7
+ " https://github.com/vim-denops/denops.vim/pull/90
8
+ let s: redraw_interval = 10
9
+
6
10
function ! DenopsStdHelperEcho (message, name, id) abort
7
11
let info = {}
8
- let info.t = timer_start (0 , { - > feedkeys (' jk' , ' n' ) })
9
12
let info.name = a: name
10
13
let info.id = a: id
11
14
let info.message = a: message
12
15
let info.updatetime = &updatetime
13
- let &updatetime = 1
14
16
let s: denops_std_helper_echo_info = info
17
+ " Wait s:redraw_interval + alpha to avoid debounced
18
+ " `redraw` call after RPC. See #77 for details.
19
+ " https://github.com/vim-denops/deno-denops-std/issues/77
20
+ let &updatetime = float2nr (ceil (s: redraw_interval * 1.5 ))
21
+ " Reset Vim's internal timer for 'updatetime'
22
+ call feedkeys (' jk' , ' n' )
15
23
augroup denops_std_helper_echo
16
24
autocmd !
17
25
autocmd CursorHold * ++once call s: denops_std_helper_echo_post ()
@@ -22,7 +30,6 @@ function! s:denops_std_helper_echo_post() abort
22
30
let info = s: denops_std_helper_echo_info
23
31
silent ! unlet ! s: denops_std_helper_echo_info
24
32
let &updatetime = info.updatetime
25
- call timer_stop (info.t )
26
33
redraw | echo info.message
27
34
call denops#request (info.name, info.id, [])
28
35
endfunction
0 commit comments