From 31dead6d8088dc7073d0e2645517ebc68d6de06b Mon Sep 17 00:00:00 2001 From: Daniel Hahler Date: Tue, 25 Sep 2012 16:13:04 +0200 Subject: [PATCH] s:Detect: only add readable files to &tags and doc Fixes issue #104. --- plugin/fugitive.vim | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/plugin/fugitive.vim b/plugin/fugitive.vim index d913bea..a13ac24 100644 --- a/plugin/fugitive.vim +++ b/plugin/fugitive.vim @@ -151,10 +151,18 @@ function! s:Detect(path) if expand('%:p') =~# '//' call buffer.setvar('&path', s:sub(buffer.getvar('&path'), '^\.%(,|$)', '')) endif - if stridx(buffer.getvar('&tags'), escape(b:git_dir.'/tags', ', ')) == -1 - call buffer.setvar('&tags', escape(b:git_dir.'/tags', ', ').','.buffer.getvar('&tags')) + " Look for tags file in .git dir and add them to &tags + " See http://tbaggery.com/2011/08/08/effortless-ctags-with-git.html + let tagsfile = b:git_dir.'/tags' + if stridx(buffer.getvar('&tags'), escape(tagsfile, ', ')) == -1 + if filereadable(tagsfile) + call buffer.setvar('&tags', escape(tagsfile, ', ').','.buffer.getvar('&tags')) + endif if &filetype !=# '' - call buffer.setvar('&tags', escape(b:git_dir.'/'.&filetype.'.tags', ', ').','.buffer.getvar('&tags')) + let tagsfile = b:git_dir.'/'.&filetype.'.tags' + if filereadable(tagsfile) + call buffer.setvar('&tags', escape(tagsfile, ', ').','.buffer.getvar('&tags')) + endif endif endif endif