]> Sergey Matveev's repositories - dotfiles.git/blobdiff - vim/.vim/pack/stargrave/start/go-gogetdoc/autoload/go/getdoc.vim
Move to vim9script
[dotfiles.git] / vim / .vim / pack / stargrave / start / go-gogetdoc / autoload / go / getdoc.vim
index 922c9cdb8d5305f904b9d80b92861aa8454e38e5..6c5555e853b6bc4afb2043875993d02324904243 100644 (file)
@@ -1,34 +1,36 @@
-" Popup documentation of specified object under the cursor
-" Requires github.com/zmb3/gogetdoc in the $PATH
+vim9script
 
-function! go#getdoc#status()
+# Popup documentation of specified object under the cursor
+# Requires github.com/zmb3/gogetdoc in the $PATH
+
+export def Status(): string
     if exists("b:gogetdoc_job") && job_status(b:gogetdoc_job) == "run" | return "GD" | endif
     return ""
-endfunction
+enddef
 
-function! go#getdoc#got(ch) abort
-    let msgs = []
-    while ch_status(a:ch) == "buffered"
-        let msgs = add(msgs, ch_read(a:ch))
+export def Got(ch: channel)
+    var msgs: list<string>
+    while ch_status(ch) == "buffered"
+        msgs = add(msgs, ch_read(ch))
     endwhile
-    if exists("b:godocid") | call popup_close(b:godocid) | endif
+    if exists("b:godocid") | popup_close(b:godocid) | endif
     if len(msgs) == 0
         echohl WarningMsg | echomsg "No go doc" | echohl None
         return
     endif
-    let msgs = msgs[2:]
-    let b:godocid = popup_atcursor(msgs[2:-2],
-        {"wrap": 0, "title": msgs[0], "move": "word"})
-endfunction
+    msgs = msgs[2 :]
+    b:godocid = popup_atcursor(msgs[2 : -2],
+        {"wrap": 0, "title": msgs[0], "move": "word"})
+enddef
 
-function! go#getdoc#do() abort
+export def Do()
     if exists("b:gogetdoc_job") && job_status(b:gogetdoc_job) == "run" | return | endif
-    let pos = line2byte(line(".")) + col(".") - 2
-    let cmdline = "gogetdoc -pos " . expand("%p") . ":#" . pos
+    var pos = line2byte(line(".")) + col(".") - 2
+    var cmdline = "gogetdoc -pos " .. expand("%p") .. ":#" .. pos
     echomsg cmdline
-    let b:gogetdoc_job = job_start(cmdline, {
-        \"in_mode": "nl",
-        \"err_io": "null",
-        \"close_cb": "go#getdoc#got",
-    \})
-endfunction
+    b:gogetdoc_job = job_start(cmdline, {
+        "in_mode": "nl",
+        "err_io": "null",
+        "close_cb": "go#getdoc#Got",
+    })
+enddef