You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
19 lines
544 B
19 lines
544 B
function! s:next(steps, current_index, result) abort
|
|
if len(a:steps) == a:current_index
|
|
return
|
|
endif
|
|
let l:Step = a:steps[a:current_index]
|
|
let l:ctx = {
|
|
\ 'callback': function('s:callback', [a:steps, a:current_index]),
|
|
\ 'result': a:result
|
|
\ }
|
|
call call(l:Step, [l:ctx])
|
|
endfunction
|
|
|
|
function! s:callback(steps, current_index, ...) abort
|
|
call s:next(a:steps, a:current_index + 1, a:000)
|
|
endfunction
|
|
|
|
function! lsp#utils#step#start(steps) abort
|
|
call s:next(a:steps, 0, [])
|
|
endfunction
|
|
|