diff options
author | Peter Odding <peter@peterodding.com> | 2011-06-13 01:20:20 +0200 |
---|---|---|
committer | Peter Odding <peter@peterodding.com> | 2011-06-13 01:20:20 +0200 |
commit | 1de4f3d23be591f54bc515f593083bc01f8bdf71 (patch) | |
tree | 553628d6686329178a32365298b00e63fe13719f | |
parent | 6c959d2c2577da0c7007a1b655656199fed75893 (diff) | |
download | vim-easytags-1de4f3d23be591f54bc515f593083bc01f8bdf71.tar.gz |
Refactor automatic command registration, include more events
The new events are FocusGained, ShellCmdPost and ShellFilterPost but
they're only used when g:easytags_always_enabled is enabled (it's
disabled by default).
Users can now define their own list of preferred events to override the
defaults by setting the new g:easytags_events option to a list of event
names. I haven't documented the new option yet because I'm not convinced
it's an improvement in terms of usability over the old situation.
-rw-r--r-- | plugin/easytags.vim | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/plugin/easytags.vim b/plugin/easytags.vim index e005fda..9f57c38 100644 --- a/plugin/easytags.vim +++ b/plugin/easytags.vim @@ -4,7 +4,7 @@ " URL: http://peterodding.com/code/vim/easytags/ " Requires: Exuberant Ctags (http://ctags.sf.net) " License: MIT -" Version: 2.2.11 +" Version: 2.2.12 " Support for automatic update using the GLVS plug-in. " GetLatestVimScripts: 3114 1 :AutoInstall: easytags.zip @@ -34,12 +34,14 @@ if !exists('g:easytags_resolve_links') let g:easytags_resolve_links = 0 endif -if !exists('g:easytags_always_enabled') - let g:easytags_always_enabled = 0 -endif - -if !exists('g:easytags_on_cursorhold') - let g:easytags_on_cursorhold = 1 +if !exists('g:easytags_events') + let g:easytags_events = [] + if !exists('g:easytags_on_cursorhold') || g:easytags_on_cursorhold + call extend(g:easytags_events, ['CursorHold', 'CursorHoldI']) + endif + if exists('g:easytags_always_enabled') && g:easytags_always_enabled + call extend(g:easytags_events, ['BufReadPost', 'BufWritePost', 'FocusGained', 'ShellCmdPost', 'ShellFilterPost']) + endif endif if !exists('g:easytags_ignored_filetypes') @@ -174,14 +176,13 @@ augroup PluginEasyTags " the automatic command event "VimEnter". Apparently this makes the " plug-in behave better when used together with tplugin? autocmd VimEnter * call s:RegisterTagsFile() - if g:easytags_always_enabled - " TODO Also on FocusGained because tags files might be updated externally? - autocmd BufReadPost,BufWritePost * call xolox#easytags#autoload() - endif - if g:easytags_on_cursorhold - autocmd CursorHold,CursorHoldI * call xolox#easytags#autoload() - autocmd BufReadPost * unlet! b:easytags_last_highlighted - endif + " Define the automatic commands to perform updating/highlighting. + for s:eventname in g:easytags_events + execute 'autocmd' s:eventname '* call xolox#easytags#autoload()' + endfor + " After reloading a buffer the dynamic syntax highlighting is lost. The + " following code makes sure the highlighting is refreshed afterwards. + autocmd BufReadPost * unlet! b:easytags_last_highlighted augroup END " }}}1 |