aboutsummaryrefslogtreecommitdiffstats
path: root/autoload/xolox/easytags.vim
diff options
context:
space:
mode:
Diffstat (limited to 'autoload/xolox/easytags.vim')
-rw-r--r--autoload/xolox/easytags.vim19
1 files changed, 12 insertions, 7 deletions
diff --git a/autoload/xolox/easytags.vim b/autoload/xolox/easytags.vim
index e9944c9..6a1de96 100644
--- a/autoload/xolox/easytags.vim
+++ b/autoload/xolox/easytags.vim
@@ -1,6 +1,6 @@
" Vim script
" Author: Peter Odding <peter@peterodding.com>
-" Last Change: June 18, 2011
+" Last Change: June 24, 2011
" URL: http://peterodding.com/code/vim/easytags/
" Public interface through (automatic) commands. {{{1
@@ -483,16 +483,21 @@ function! s:cache_tagged_files_in(fname, ftime, entries) " {{{3
endfunction
function! xolox#easytags#get_tagsfile() " {{{2
+ " Look for a writable project specific tags file?
+ if g:easytags_dynamic_files
+ let files = tagfiles()
+ if len(files) > 0 && filewritable(files[0]) == 1
+ return files[0]
+ endif
+ endif
+ " Default to the global tags file.
let tagsfile = expand(g:easytags_file)
- if !empty(g:easytags_by_filetype) && !empty(&filetype)
+ " Check if a file type specific tags file is useful?
+ if !empty(g:easytags_by_filetype) && index(xolox#easytags#supported_filetypes(), &ft) >= 0
let directory = xolox#misc#path#absolute(g:easytags_by_filetype)
let tagsfile = xolox#misc#path#merge(directory, &filetype)
- elseif g:easytags_dynamic_files
- let files = tagfiles()
- if len(files) > 0
- let tagsfile = files[0]
- endif
endif
+ " If the tags file exists, make sure it is writable!
if filereadable(tagsfile) && filewritable(tagsfile) != 1
let message = "The tags file %s isn't writable!"
throw printf(message, fnamemodify(tagsfile, ':~'))