s:Detect: only add readable files to &tags and doc

Fixes issue #104.
This commit is contained in:
Daniel Hahler 2012-09-25 16:13:04 +02:00 committed by Tim Pope
parent cff78c3ab4
commit 31dead6d80

View File

@ -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