diff options
author | Peter Odding <peter@peterodding.com> | 2010-06-09 08:01:39 +0200 |
---|---|---|
committer | Peter Odding <peter@peterodding.com> | 2010-06-09 08:01:39 +0200 |
commit | 6dd0b7a882d8102f5cff1b2acc927b91cc03e514 (patch) | |
tree | c358e86e0d2c364df2981004589b5701a7f77325 | |
parent | 65ad69ac288eaa70b1469739ce6ea601ab852a2e (diff) | |
download | vim-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.
-rw-r--r-- | autoload.vim | 13 | ||||
-rw-r--r-- | easytags.vim | 6 |
2 files changed, 12 insertions, 7 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)") diff --git a/easytags.vim b/easytags.vim index 31bf9d0..9373d9a 100644 --- a/easytags.vim +++ b/easytags.vim @@ -1,6 +1,6 @@ " Vim plug-in " Maintainer: Peter Odding <peter@peterodding.com> -" Last Change: June 6, 2010 +" Last Change: June 8, 2010 " URL: http://peterodding.com/code/vim/easytags " Requires: Exuberant Ctags (http://ctags.sf.net) " License: MIT @@ -36,6 +36,10 @@ if !exists('g:easytags_on_cursorhold') let g:easytags_on_cursorhold = 1 endif +if !exists('g:easytags_ignored_filetypes') + let g:easytags_ignored_filetypes = '^tex$' +endif + " Before sourcing the rest of the plug-in first check that the location of the " "Exuberant Ctags" program has been configured or that the program exists in " one of its default locations. |