aboutsummaryrefslogtreecommitdiffstats
path: root/autoload.vim
diff options
context:
space:
mode:
authorPeter Odding <peter@peterodding.com>2010-06-09 08:01:39 +0200
committerPeter Odding <peter@peterodding.com>2010-06-09 08:01:39 +0200
commit6dd0b7a882d8102f5cff1b2acc927b91cc03e514 (patch)
treec358e86e0d2c364df2981004589b5701a7f77325 /autoload.vim
parent65ad69ac288eaa70b1469739ce6ea601ab852a2e (diff)
downloadvim-easytags-6dd0b7a882d8102f5cff1b2acc927b91cc03e514.tar.gz
Added `easytags_ignored_filetypes` option
While writing a LaTeX document I found out that Exuberant Ctags was corrupting my tags file by writing invalid entries. Because half my self-developed Vim plug-ins deal with Exuberant Ctags integration which I use constantly this broke my whole environment :-) Since the main point of easytags.vim is to fully automate tags generation, corrupt files that need to be repaired by hand are unacceptable. Therefor I've added an option to enable ignoring selected file types and defined the default to exclude `*.tex` files. If you disagree with me, feel free to set the option `easytags_ignored_filetypes` to an empty string, in which case no file types will be ignored.
Diffstat (limited to 'autoload.vim')
-rw-r--r--autoload.vim13
1 files changed, 7 insertions, 6 deletions
diff --git a/autoload.vim b/autoload.vim
index 4ec3f2a..80b4800 100644
--- a/autoload.vim
+++ b/autoload.vim
@@ -1,6 +1,6 @@
" Vim script
" Maintainer: Peter Odding <peter@peterodding.com>
-" Last Change: June 6, 2010
+" Last Change: June 9, 2010
" URL: http://peterodding.com/code/vim/easytags
function! easytags#autoload() " {{{1
@@ -34,8 +34,9 @@ endfunction
function! easytags#update_cmd(filter_invalid_tags) " {{{1
try
- let supported_filetype = index(easytags#supported_filetypes(), &ft) >= 0
- if supported_filetype || a:filter_invalid_tags
+ let ft_supported = index(easytags#supported_filetypes(), &ft) >= 0
+ let ft_ignored = g:easytags_ignored_filetypes != '' && &ft =~ g:easytags_ignored_filetypes
+ if (ft_supported && !ft_ignored) || a:filter_invalid_tags
let start = xolox#timer#start()
let tagsfile = easytags#get_tagsfile()
let filename = expand('%:p')
@@ -48,7 +49,7 @@ function! easytags#update_cmd(filter_invalid_tags) " {{{1
let start_filter = xolox#timer#start()
let lines = readfile(tagsfile)
let filters = []
- if supported_filetype
+ if ft_supported && !ft_ignored
let filename_pattern = '\s' . xolox#escape#pattern(filename) . '\s'
call add(filters, 'v:val !~ filename_pattern')
endif
@@ -64,12 +65,12 @@ function! easytags#update_cmd(filter_invalid_tags) " {{{1
endif
call xolox#timer#stop(start_filter, "easytags.vim: Filtered tags file in %s second(s)")
endif
- if supported_filetype
+ if ft_supported && !ft_ignored
call add(command, '--language-force=' . easytags#to_ctags_ft(&ft))
call add(command, shellescape(filename))
let listing = system(join(command))
if v:shell_error
- throw "Failed to update tags file!"
+ throw "Failed to update tags file! (Ctags output: `" . listing . "')"
endif
endif
call xolox#timer#stop(start, "easytags.vim: Updated tags in %s second(s)")