From 1de4f3d23be591f54bc515f593083bc01f8bdf71 Mon Sep 17 00:00:00 2001 From: Peter Odding Date: Mon, 13 Jun 2011 01:20:20 +0200 Subject: 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. --- plugin/easytags.vim | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) (limited to 'plugin/easytags.vim') 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 -- cgit v1.2.3