Also ctag C prototypes
authorSergey Matveev <stargrave@stargrave.org>
Thu, 2 Apr 2020 16:53:45 +0000 (19:53 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Thu, 2 Apr 2020 16:53:45 +0000 (19:53 +0300)
vim/.vim/plugin/ctags.vim

index 4d98eb8ab21c5bc2a28a01cd7448464e034d3e8d..0baeb3c2ce6f2013d86be7540a42a0d6e2d4f687 100644 (file)
@@ -5,7 +5,7 @@
 " Create "tags" file in your project's root first.
 " Then :Ctags LANG to fill it.
 
-function! s:ctags(lang, verbose)
+function! s:ctags(lang, onlyCmd, verbose)
     let dst = tagfiles()[0]
     let src = "/" . join(split(dst, "/")[:-2], "/")
     if dst[0] != "/"
@@ -15,14 +15,20 @@ function! s:ctags(lang, verbose)
     let cmdline = [
         \'uctags',
         \'--languages=' . a:lang,
-        \'--python-kinds=-i',
+        \'--kind-python=-i',
+        \'--kind-c++=+p',
         \'--recurse',
     \]
     if a:verbose == v:true | let cmdline += ['--verbose'] | endif
     let cmdline += ['-f', dst, src]
+    if a:onlyCmd == v:true
+        echo join(cmdline, " ")
+        return
+    endif
     execute "!" . join(cmdline, " ")
     if a:verbose != v:true | redraw! | endif
 endfunction
 
-command! -nargs=1 Ctags silent call s:ctags(<f-args>, v:false)
-command! -nargs=1 Ctagsv silent call s:ctags(<f-args>, v:true)
+command! -nargs=1 Ctags silent call s:ctags(<f-args>, v:false, v:false)
+command! -nargs=1 Ctagsv silent call s:ctags(<f-args>, v:true, v:false)
+command! -nargs=1 Ctagscmd call s:ctags(<f-args>, v:true, v:true)