File: provider.vim

package info (click to toggle)
neovim 0.10.4-8
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 63,144 kB
  • sloc: ansic: 255,334; python: 1,470; lisp: 1,213; sh: 1,103; makefile: 363; xml: 78; ruby: 6
file content (24 lines) | stat: -rw-r--r-- 641 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
" Common functions for providers

" Start the provider and perform a 'poll' request
"
" Returns a valid channel on success
function! provider#Poll(argv, orig_name, log_env, ...) abort
  let job = {'rpc': v:true, 'stderr_buffered': v:true}
  if a:0
    let job = extend(job, a:1)
  endif
  try
    let channel_id = jobstart(a:argv, job)
    if channel_id > 0 && rpcrequest(channel_id, 'poll') ==# 'ok'
      return channel_id
    endif
  catch
    echomsg v:throwpoint
    echomsg v:exception
    for row in get(job, 'stderr', [])
      echomsg row
    endfor
  endtry
  throw remote#host#LoadErrorForHost(a:orig_name, a:log_env)
endfunction