Browse files

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.
  • Loading branch information...
xolox committed Jun 12, 2011
1 parent 6c959d2 commit 1de4f3d23be591f54bc515f593083bc01f8bdf71
Showing with 16 additions and 15 deletions.
  1. +16 −15 plugin/easytags.vim
@@ -4,7 +4,7 @@
" URL:
" Requires: Exuberant Ctags (
" License: MIT
" Version: 2.2.11
" Version: 2.2.12
" Support for automatic update using the GLVS plug-in.
" GetLatestVimScripts: 3114 1 :AutoInstall:
@@ -34,12 +34,14 @@ if !exists('g:easytags_resolve_links')
let g:easytags_resolve_links = 0
if !exists('g:easytags_always_enabled')
let g:easytags_always_enabled = 0
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'])
if exists('g:easytags_always_enabled') && g:easytags_always_enabled
call extend(g:easytags_events, ['BufReadPost', 'BufWritePost', 'FocusGained', 'ShellCmdPost', 'ShellFilterPost'])
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()
if g:easytags_on_cursorhold
autocmd CursorHold,CursorHoldI * call xolox#easytags#autoload()
autocmd BufReadPost * unlet! b:easytags_last_highlighted
" Define the automatic commands to perform updating/highlighting.
for s:eventname in g:easytags_events
execute 'autocmd' s:eventname '* call xolox#easytags#autoload()'
" 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

0 comments on commit 1de4f3d

Please sign in to comment.