]> Sergey Matveev's repositories - dotfiles.git/blobdiff - vim/.vim/pack/stargrave/start/ctags/autoload/ctags.vim
Move to vim9script
[dotfiles.git] / vim / .vim / pack / stargrave / start / ctags / autoload / ctags.vim
index dc6f90ea6fc2f27844d07b6a9f1784e679b4d811..0119014c42c90c327305b9120aa729f0e466a463 100644 (file)
@@ -1,35 +1,37 @@
-" Universal Ctags creator
-" Maintainer: Sergey Matveev <stargrave@stargrave.org>
-" License: GNU General Public License version 3 of the License or later
-"
-" Create "tags" file in your project's root first.
-" Then :Ctags LANG to fill it.
+vim9script
 
-function! ctags#do(lang, onlyCmd, verbose) abort
-    let dst = tagfiles()
-    if len(dst) == 0
+# Universal Ctags creator
+# Maintainer: Sergey Matveev <stargrave@stargrave.org>
+# License: GNU General Public License version 3 of the License or later
+#
+# Create "tags" file in your project's root first.
+# Then :Ctags LANG to fill it.
+
+export def Do(lang: string, onlyCmd: bool, verbose: bool)
+    var dsts = tagfiles()
+    if len(dsts) == 0
         echohl WarningMsg | echomsg "No tagfiles" | echohl None
         return
     endif
-    let dst = sort(dst, {a, b -> len(a) > len(b) ? 1 : len(a) == len(b) ? 0 : -1})[0]
-    let src = "/" . join(split(dst, "/")[:-3], "/")
+    var dst = sort(dsts, (a, b) => len(a) > len(b) ? 1 : len(a) == len(b) ? 0 : -1)[0]
+    var src = "/" .. join(split(dst, "/")[: -3], "/")
     if dst[0] != "/"
-        let dst = getcwd() . "/.tags/tags"
-        let src = getcwd()
+        dst = getcwd() .. "/.tags/tags"
+        src = getcwd()
     endif
-    let cmdline = [
-        \"uctags",
-        \"--languages=" . a:lang,
-        \"--python-kinds=-i",
-        \"--c++-kinds=+p",
-        \"--recurse",
-    \]
-    if a:verbose == v:true | let cmdline += ["--verbose"] | endif
-    let cmdline += ["-f", dst, src]
-    if a:onlyCmd == v:true
+    var cmdline = [
+        "uctags",
+        "--languages=" .. lang,
+        "--python-kinds=-i",
+        "--c++-kinds=+p",
+        "--recurse",
+    ]
+    if verbose == v:true | cmdline += ["--verbose"] | endif
+    cmdline += ["-f", dst, src]
+    if onlyCmd == v:true
         echo join(cmdline, " ")
         return
     endif
-    execute "!" . join(cmdline, " ")
-    if a:verbose != v:true | redraw! | endif
-endfunction
+    execute "!" .. join(cmdline, " ")
+    if verbose != v:true | redraw! | endif
+enddef