From 9d6548606363133e3dc9cbd666804d2383dde22d Mon Sep 17 00:00:00 2001 From: Bailey Ling Date: Sun, 18 Aug 2013 18:50:22 +0000 Subject: [PATCH] improve undotree integration; use exposed statusline functions. --- autoload/airline/extensions.vim | 5 ++++- autoload/airline/extensions/undotree.vim | 21 +++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 autoload/airline/extensions/undotree.vim diff --git a/autoload/airline/extensions.vim b/autoload/airline/extensions.vim index 6846eb5..40d0a0b 100644 --- a/autoload/airline/extensions.vim +++ b/autoload/airline/extensions.vim @@ -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 diff --git a/autoload/airline/extensions/undotree.vim b/autoload/airline/extensions/undotree.vim new file mode 100644 index 0000000..b8dfe49 --- /dev/null +++ b/autoload/airline/extensions/undotree.vim @@ -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 +