improve undotree integration; use exposed statusline functions.

This commit is contained in:
Bailey Ling 2013-08-18 18:50:22 +00:00
parent 7e563f9c74
commit 9d65486063
2 changed files with 25 additions and 1 deletions

View File

@ -14,7 +14,6 @@ let s:filetype_overrides = {
\ 'netrw': [ 'netrw', '%f' ],
\ 'unite': [ 'Unite', '%{unite#get_status_string()}' ],
\ 'nerdtree': [ 'NERD', '' ],
\ 'undotree': [ 'undotree', '' ],
\ 'gundo': [ 'Gundo', '' ],
\ 'diff': [ 'diff', '' ],
\ 'vimfiler': [ 'vimfiler', '%{vimfiler#get_status_string()}' ],
@ -125,6 +124,10 @@ function! airline#extensions#load()
call airline#extensions#commandt#init(s:ext)
endif
if exists(':UndotreeToggle')
call airline#extensions#undotree#init(s:ext)
endif
if g:airline_enable_tagbar && exists(':TagbarToggle')
call airline#extensions#tagbar#init(s:ext)
endif

View File

@ -0,0 +1,21 @@
" MIT License. Copyright (c) 2013 Bailey Ling.
" vim: et ts=2 sts=2 sw=2
function! airline#extensions#undotree#apply()
if exists('t:undotree')
if &ft == 'undotree' && exists('*t:undotree.GetStatusLine')
call airline#extensions#apply_left_override('undo', '%{t:undotree.GetStatusLine()}')
else
call airline#extensions#apply_left_override('undotree', '%f')
endif
if &ft == 'diff' && exists('*t:diffpanel.GetStatusLine')
call airline#extensions#apply_left_override('diff', '%{t:diffpanel.GetStatusLine()}')
endif
endif
endfunction
function! airline#extensions#undotree#init(ext)
call a:ext.add_statusline_funcref(function('airline#extensions#undotree#apply'))
endfunction