1 " Popup documentation of specified object under the cursor
2 " Requires github.com/zmb3/gogetdoc in the $PATH
4 function! go#getdoc#status()
5 if exists("b:gogetdoc_job") && job_status(b:gogetdoc_job) == "run" | return "GD" | endif
9 function! go#getdoc#got(ch) abort
11 while ch_status(a:ch) == "buffered"
12 let msgs = add(msgs, ch_read(a:ch))
14 if exists("b:godocid") | call popup_close(b:godocid) | endif
16 echohl WarningMsg | echomsg "No go doc" | echohl None
20 let b:godocid = popup_atcursor(msgs[2:-2],
21 \ {"wrap": 0, "title": msgs[0], "move": "word"})
24 function! go#getdoc#do() abort
25 if exists("b:gogetdoc_job") && job_status(b:gogetdoc_job) == "run" | return | endif
26 let pos = line2byte(line(".")) + col(".") - 2
27 let cmdline = "gogetdoc -pos " . expand("%p") . ":#" . pos
29 let b:gogetdoc_job = job_start(cmdline, {
32 \"close_cb": "go#getdoc#got",