mirror of
https://github.com/vim-airline/vim-airline.git
synced 2024-11-30 04:33:38 +08:00
6601474bf5
the ```t:undotree.GetStatusLine()``` is appended to the status line when ```t:undotree``` exists, but it seems like the ```statusline``` will be executed when ```t:undtree``` is no longer available during window destruction.
29 lines
866 B
VimL
29 lines
866 B
VimL
" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
|
|
" vim: et ts=2 sts=2 sw=2
|
|
|
|
scriptencoding utf-8
|
|
|
|
if !exists(':UndotreeToggle')
|
|
finish
|
|
endif
|
|
|
|
function! airline#extensions#undotree#apply(...)
|
|
if exists('t:undotree')
|
|
if &ft == 'undotree'
|
|
if exists('*t:undotree.GetStatusLine')
|
|
call airline#extensions#apply_left_override('undo', '%{exists("t:undotree") ? t:undotree.GetStatusLine() : ""}')
|
|
else
|
|
call airline#extensions#apply_left_override('undotree', '%f')
|
|
endif
|
|
endif
|
|
|
|
if &ft == 'diff' && exists('*t:diffpanel.GetStatusLine')
|
|
call airline#extensions#apply_left_override('diff', '%{exists("t:diffpanel") ? t:diffpanel.GetStatusLine() : ""}')
|
|
endif
|
|
endif
|
|
endfunction
|
|
|
|
function! airline#extensions#undotree#init(ext)
|
|
call a:ext.add_statusline_func('airline#extensions#undotree#apply')
|
|
endfunction
|