From f1d0460ad26badf793c5cafa842ebe9a4c761354 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Wed, 20 Jan 2021 16:46:09 +0300 Subject: [PATCH] Better ctags-ing --- git/.git-ignore | 2 +- vim/.vim/plugin/ctags.vim | 11 ++++++++--- vim/.vimrc | 4 ++-- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/git/.git-ignore b/git/.git-ignore index 815d624..f427540 100644 --- a/git/.git-ignore +++ b/git/.git-ignore @@ -4,5 +4,5 @@ *.swp .hypothesis .redo +.tags start.sh -tags diff --git a/vim/.vim/plugin/ctags.vim b/vim/.vim/plugin/ctags.vim index a76e736..fbc438c 100644 --- a/vim/.vim/plugin/ctags.vim +++ b/vim/.vim/plugin/ctags.vim @@ -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 = [ diff --git a/vim/.vimrc b/vim/.vimrc index 9101366..cc918de 100644 --- a/vim/.vimrc +++ b/vim/.vimrc @@ -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 -- 2.44.0