mirror of
https://github.com/vim-airline/vim-airline.git
synced 2025-07-26 07:25:18 +02:00
fold exclude funcrefs into the default one.
This commit is contained in:
parent
e83e12447e
commit
261dafca9d
@ -73,11 +73,6 @@ function! airline#get_statusline(winnr, active)
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#update_statusline()
|
function! airline#update_statusline()
|
||||||
if airline#util#exec_funcrefs(g:airline_exclude_funcrefs)
|
|
||||||
call setwinvar(winnr(), '&statusline', '')
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
|
|
||||||
for nr in filter(range(1, winnr('$')), 'v:val != winnr()')
|
for nr in filter(range(1, winnr('$')), 'v:val != winnr()')
|
||||||
call setwinvar(nr, 'airline_active', 0)
|
call setwinvar(nr, 'airline_active', 0)
|
||||||
call setwinvar(nr, '&statusline', airline#get_statusline(nr, 0))
|
call setwinvar(nr, '&statusline', airline#get_statusline(nr, 0))
|
||||||
@ -90,9 +85,11 @@ function! airline#update_statusline()
|
|||||||
for section in s:sections
|
for section in s:sections
|
||||||
unlet! w:airline_section_{section}
|
unlet! w:airline_section_{section}
|
||||||
endfor
|
endfor
|
||||||
call airline#util#exec_funcrefs(g:airline_statusline_funcrefs)
|
|
||||||
|
|
||||||
call setwinvar(winnr(), '&statusline', airline#get_statusline(winnr(), 1))
|
let err = airline#util#exec_funcrefs(g:airline_statusline_funcrefs)
|
||||||
|
if err == 0
|
||||||
|
call setwinvar(winnr(), '&statusline', airline#get_statusline(winnr(), 1))
|
||||||
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#check_mode()
|
function! airline#check_mode()
|
||||||
|
@ -2,13 +2,9 @@
|
|||||||
" vim: et ts=2 sts=2 sw=2
|
" vim: et ts=2 sts=2 sw=2
|
||||||
|
|
||||||
let s:ext = {}
|
let s:ext = {}
|
||||||
let s:ext._cursormove_funcrefs = []
|
|
||||||
function! s:ext.add_statusline_funcref(funcref) dict
|
function! s:ext.add_statusline_funcref(funcref) dict
|
||||||
call add(g:airline_statusline_funcrefs, a:funcref)
|
call add(g:airline_statusline_funcrefs, a:funcref)
|
||||||
endfunction
|
endfunction
|
||||||
function! s:ext.add_cursormove_funcref(funcref) dict
|
|
||||||
call add(self._cursormove_funcrefs, a:funcref)
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
let s:script_path = expand('<sfile>:p:h')
|
let s:script_path = expand('<sfile>:p:h')
|
||||||
|
|
||||||
@ -35,6 +31,10 @@ endfunction
|
|||||||
|
|
||||||
let s:active_winnr = -1
|
let s:active_winnr = -1
|
||||||
function! airline#extensions#update_statusline(...)
|
function! airline#extensions#update_statusline(...)
|
||||||
|
if s:is_excluded_window(a:000)
|
||||||
|
return -1
|
||||||
|
endif
|
||||||
|
|
||||||
let s:active_winnr = winnr()
|
let s:active_winnr = winnr()
|
||||||
|
|
||||||
if &buftype == 'quickfix'
|
if &buftype == 'quickfix'
|
||||||
@ -67,7 +67,7 @@ function! airline#extensions#update_statusline(...)
|
|||||||
endfor
|
endfor
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#extensions#is_excluded_window(...)
|
function! s:is_excluded_window(...)
|
||||||
for matchft in g:airline_exclude_filetypes
|
for matchft in g:airline_exclude_filetypes
|
||||||
if matchft ==# &ft
|
if matchft ==# &ft
|
||||||
return 1
|
return 1
|
||||||
@ -95,9 +95,6 @@ endfunction
|
|||||||
|
|
||||||
function! s:sync_active_winnr()
|
function! s:sync_active_winnr()
|
||||||
if exists('#airline') && winnr() != s:active_winnr
|
if exists('#airline') && winnr() != s:active_winnr
|
||||||
if airline#util#exec_funcrefs(s:ext._cursormove_funcrefs)
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
call airline#update_statusline()
|
call airline#update_statusline()
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
@ -107,7 +104,6 @@ function! airline#extensions#load()
|
|||||||
autocmd CursorMoved * call <sid>sync_active_winnr()
|
autocmd CursorMoved * call <sid>sync_active_winnr()
|
||||||
|
|
||||||
" load core funcrefs
|
" load core funcrefs
|
||||||
call add(g:airline_exclude_funcrefs, function('airline#extensions#is_excluded_window'))
|
|
||||||
call add(g:airline_statusline_funcrefs, function('airline#extensions#update_statusline'))
|
call add(g:airline_statusline_funcrefs, function('airline#extensions#update_statusline'))
|
||||||
|
|
||||||
if get(g:, 'loaded_unite', 0)
|
if get(g:, 'loaded_unite', 0)
|
||||||
|
@ -49,8 +49,9 @@ function! airline#extensions#ctrlp#ctrlp_airline_status(...)
|
|||||||
return len.dir
|
return len.dir
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#extensions#ctrlp#is_statusline_overwritten(...)
|
function! airline#extensions#ctrlp#apply(...)
|
||||||
return match(&statusline, 'CtrlPlight') >= 0
|
" disable statusline overwrite if ctrlp already did it
|
||||||
|
return match(&statusline, 'CtrlPlight') >= 0 ? -1 : 0
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#extensions#ctrlp#init(ext)
|
function! airline#extensions#ctrlp#init(ext)
|
||||||
@ -58,6 +59,6 @@ function! airline#extensions#ctrlp#init(ext)
|
|||||||
\ 'main': 'airline#extensions#ctrlp#ctrlp_airline',
|
\ 'main': 'airline#extensions#ctrlp#ctrlp_airline',
|
||||||
\ 'prog': 'airline#extensions#ctrlp#ctrlp_airline_status',
|
\ 'prog': 'airline#extensions#ctrlp#ctrlp_airline_status',
|
||||||
\ }
|
\ }
|
||||||
call a:ext.add_cursormove_funcref(function('airline#extensions#ctrlp#is_statusline_overwritten'))
|
call a:ext.add_statusline_funcref(function('airline#extensions#ctrlp#apply'))
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
@ -259,15 +259,15 @@ is an example of how you can extend vim-airline to support a new plugin.
|
|||||||
endfunction
|
endfunction
|
||||||
call add(g:airline_statusline_funcrefs, function('MyPlugin'))
|
call add(g:airline_statusline_funcrefs, function('MyPlugin'))
|
||||||
<
|
<
|
||||||
*g:airline_exclude_funcrefs*
|
|
||||||
The g:airline_exclude_funcrefs variable is an array that's returns 1 or 0 to
|
You can also control what happens by returning an error code. Note that
|
||||||
determine whether that particular window should be excluded from having its
|
returning a value other than 0 will prevent any remaining extensions from
|
||||||
statusline modified. Here is an example:
|
having their funcrefs invoked.
|
||||||
>
|
>
|
||||||
function! ExcludeFoo()
|
function! MyPlugin(...)
|
||||||
return &filetype == 'FooType'
|
return 0 " the default action, modify the statusline
|
||||||
|
return -1 " do not update the statusline
|
||||||
endfunction
|
endfunction
|
||||||
call add(g:airline_exclude_funcrefs, function('ExcludeFoo'))
|
|
||||||
<
|
<
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
|
@ -25,7 +25,6 @@ call s:check_defined('g:airline_exclude_filenames', ['DebuggerWatch','DebuggerSt
|
|||||||
call s:check_defined('g:airline_exclude_filetypes', [])
|
call s:check_defined('g:airline_exclude_filetypes', [])
|
||||||
call s:check_defined('g:airline_exclude_preview', 0)
|
call s:check_defined('g:airline_exclude_preview', 0)
|
||||||
call s:check_defined('g:airline_statusline_funcrefs', [])
|
call s:check_defined('g:airline_statusline_funcrefs', [])
|
||||||
call s:check_defined('g:airline_exclude_funcrefs', [])
|
|
||||||
|
|
||||||
call s:check_defined('g:airline_mode_map', {
|
call s:check_defined('g:airline_mode_map', {
|
||||||
\ '__' : '------',
|
\ '__' : '------',
|
||||||
@ -90,7 +89,7 @@ function! s:on_colorscheme_changed()
|
|||||||
call airline#load_theme()
|
call airline#load_theme()
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function airline#cmdwinenter()
|
function airline#cmdwinenter(...)
|
||||||
call airline#extensions#apply_left_override('Command Line', '')
|
call airline#extensions#apply_left_override('Command Line', '')
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user