diff options
author | Peter Odding <peter@peterodding.com> | 2010-06-10 21:57:44 +0200 |
---|---|---|
committer | Peter Odding <peter@peterodding.com> | 2010-06-10 21:57:44 +0200 |
commit | 62cbd2a750a40dd520b6a7f1a92463c92f37baca (patch) | |
tree | ed0b06fe269aff2a00827d3e2f82be1539e2be78 | |
parent | 766a538283502cb7a2ebca58a6071f8f38c8383c (diff) | |
download | vim-easytags-62cbd2a750a40dd520b6a7f1a92463c92f37baca.tar.gz |
Bug fix: Add easytags_file to &tags option
While writing the `easytags.vim` plug-in at one point I added the
following line to my `~/.vimrc` script:
:set tags=~/.vimtags
After publishing the plug-in I totally forgot about the `tags` option
and how the plug-in depends on it for all of its functionality :-S
The plug-in now adds the (possibly user-defined) value of the
`easytags_file` option to Vim's `tags` option, thereby making Vim's
internals aware of the tags file.
Oh by the way, the plug-in is now more-or-less Windows compatible.
The only remaining problems are the flashing command prompt (which
I know how to fix) and the fact that CursorHold seems to fire
repeatedly...
-rw-r--r-- | easytags.vim | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/easytags.vim b/easytags.vim index 9dc58ea..7e7c649 100644 --- a/easytags.vim +++ b/easytags.vim @@ -1,10 +1,10 @@ " Vim plug-in " Maintainer: Peter Odding <peter@peterodding.com> -" Last Change: June 9, 2010 +" Last Change: June 10, 2010 " URL: http://peterodding.com/code/vim/easytags " Requires: Exuberant Ctags (http://ctags.sf.net) " License: MIT -" Version: 1.7 +" Version: 1.8 " Support for automatic update using the GLVS plug-in. " GetLatestVimScripts: 3114 1 :AutoInstall: easytags.zip @@ -18,7 +18,7 @@ endif if !exists('g:easytags_file') if has('win32') || has('win64') - let g:easytags_file = '~/_vimtags' + let g:easytags_file = '~\_vimtags' else let g:easytags_file = '~/.vimtags' endif @@ -57,6 +57,7 @@ else break endif endfor + unlet s:command endif if !exists('s:ctags_installed') @@ -70,6 +71,26 @@ if !exists('s:ctags_installed') endif finish endif +unlet s:ctags_installed + +" Let Vim know about the global tags file created by this plug-in. + +" Parse the &tags option and get a list of all configured tags files including +" non-existing files (this is why we can't just call the tagfiles() function). +let s:tagfiles = [] +let s:expanded = [] +for s:entry in split(&tags, '[^\\]\zs,') + call add(s:tagfiles, s:entry) + call add(s:expanded, expand(substitute(s:entry, '\\\([\\, ]\)', '\1', 'g'))) +endfor + +" Add the tags file to the &tags option when the user hasn't done so already. +if index(s:expanded, expand(g:easytags_file)) == -1 + let s:entry = substitute(expand(g:easytags_file), '[, ]', '\\\0', 'g') + let &tags = join(insert(s:tagfiles, s:entry, 0), ',') +endif + +unlet s:tagfiles s:expanded s:entry " The :UpdateTags and :HighlightTags commands. {{{1 |