Better ctags-ing
authorSergey Matveev <stargrave@stargrave.org>
Wed, 20 Jan 2021 13:46:09 +0000 (16:46 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Wed, 20 Jan 2021 13:46:09 +0000 (16:46 +0300)
git/.git-ignore
vim/.vim/plugin/ctags.vim
vim/.vimrc

index 815d6247a3a5cd9a491e94c29f3e0fa94eeb20ef..f427540fbad3264600648a2afd8ae2ffd2284d22 100644 (file)
@@ -4,5 +4,5 @@
 *.swp
 .hypothesis
 .redo
+.tags
 start.sh
-tags
index a76e736dc4f8528ee3ca7d9ae4569dcbc3ff80ed..fbc438c019daed3852ad058dc2679df154d18cbe 100644 (file)
@@ -9,10 +9,15 @@ if exists("g:loaded_mein_ctags") | finish | endif
 let g:loaded_mein_ctags = 1
 
 function! s:ctags(lang, onlyCmd, verbose)
-    let dst = tagfiles()[0]
-    let src = "/" . join(split(dst, "/")[:-2], "/")
+    let dst = tagfiles()
+    if len(dst) == 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], "/")
     if dst[0] != "/"
-        let dst = getcwd() . "/tags"
+        let dst = getcwd() . "/.tags/tags"
         let src = getcwd()
     endif
     let cmdline = [
index 910136670dca171307860738c022a787dc73d7a4..cc918deb17feea58873a8c6b0e840ca163ac5a27 100644 (file)
@@ -50,8 +50,8 @@ set hlsearch
 set incsearch
 set gdefault
 set wildmode=longest:list
-set tags=tags;,./;
-set wildignore=**/tags,**/.git
+set tags=.tags/**/tags;
+set wildignore=**/.git,**/.tags
 
 set exrc
 set secure