X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/5a4872f466ebd76ddd532bdf2798554421c53df4..fe3919e725e156d751069662d11e38f7b4791de1:/.vim/bundle/vim-lsp/autoload/lsp/utils/step.vim?ds=inline diff --git a/.vim/bundle/vim-lsp/autoload/lsp/utils/step.vim b/.vim/bundle/vim-lsp/autoload/lsp/utils/step.vim new file mode 100644 index 00000000..eed5ebd1 --- /dev/null +++ b/.vim/bundle/vim-lsp/autoload/lsp/utils/step.vim @@ -0,0 +1,19 @@ +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