3 # Popup documentation of specified object under the cursor
4 # Requires github.com/zmb3/gogetdoc in the $PATH
6 export def Status(): string
7 if exists("b:gogetdoc_job") && job_status(b:gogetdoc_job) == "run" | return "GD" | endif
11 export def Got(ch: channel)
12 var msgs: list<string>
13 while ch_status(ch) == "buffered"
14 msgs = add(msgs, ch_read(ch))
16 if exists("b:godocid") | popup_close(b:godocid) | endif
18 echohl WarningMsg | echomsg "No go doc" | echohl None
22 b:godocid = popup_atcursor(msgs[2 : -2],
23 {"wrap": 0, "title": msgs[0], "move": "word"})
27 if exists("b:gogetdoc_job") && job_status(b:gogetdoc_job) == "run" | return | endif
28 var pos = line2byte(line(".")) + col(".") - 2
29 var cmdline = "gogetdoc -pos " .. expand("%p") .. ":#" .. pos
31 b:gogetdoc_job = job_start(cmdline, {
34 "close_cb": "go#getdoc#Got",