diff options
author | Kenny Stuart <kstuart@arcadia-services.net> | 2011-06-24 02:23:48 +0200 |
---|---|---|
committer | Peter Odding <peter@peterodding.com> | 2011-06-24 02:24:06 +0200 |
commit | d727ac0cb7b03747d0688d939210af07da4cad60 (patch) | |
tree | 9d697e8eaa7c567980968139104d4662353aacb2 /autoload/xolox | |
parent | e454233ca5289444deaf2f6525af76b995fd9717 (diff) | |
download | vim-easytags-d727ac0cb7b03747d0688d939210af07da4cad60.tar.gz |
Allow enabling both dynamic and file type tags files
When both options are enabled, project specific tags files take
precedence if they exist and are writable, otherwise a file type
tags file is used.
(Stuart wrote this code, Peter added the check for supported file types)
Diffstat (limited to 'autoload/xolox')
-rw-r--r-- | autoload/xolox/easytags.vim | 19 |
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, ':~')) |