mirror of
https://github.com/vim-airline/vim-airline.git
synced 2025-12-06 12:14:24 +08:00
main: Make :AirlineRefresh! skip recrecrating highlighting groups
When `g:skip_empty_sections` is set, `:AirlineRefresh` can be called very often and cause slow down, because it forcefully re-creates the highlighting groups. This is mostly not needed for the redraw to happen, therefore, add the `<bang>` attribute to the command, making it skip to re-create the highlighting groups and have all extensions that rely on a forced update use the `!` form. Should be much fast then. fixes #1908
This commit is contained in:
@@ -195,14 +195,18 @@ function! s:airline_theme(...)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! s:airline_refresh()
|
||||
function! s:airline_refresh(...)
|
||||
" a:1, fast refresh, do not reload the theme
|
||||
let fast=!empty(get(a:000, 0, 0))
|
||||
if !exists("#airline")
|
||||
" disabled
|
||||
return
|
||||
endif
|
||||
call airline#util#doautocmd('AirlineBeforeRefresh')
|
||||
call airline#highlighter#reset_hlcache()
|
||||
call airline#load_theme()
|
||||
if !fast
|
||||
call airline#load_theme()
|
||||
endif
|
||||
call airline#update_statusline()
|
||||
call airline#update_tabline()
|
||||
endfunction
|
||||
@@ -255,7 +259,7 @@ endfunction
|
||||
command! -bar -nargs=? -complete=customlist,<sid>get_airline_themes AirlineTheme call <sid>airline_theme(<f-args>)
|
||||
command! -bar AirlineToggleWhitespace call airline#extensions#whitespace#toggle()
|
||||
command! -bar AirlineToggle call s:airline_toggle()
|
||||
command! -bar AirlineRefresh call s:airline_refresh()
|
||||
command! -bar -bang AirlineRefresh call s:airline_refresh(<q-bang>)
|
||||
command! AirlineExtensions call s:airline_extensions()
|
||||
|
||||
call airline#init#bootstrap()
|
||||
|
||||
Reference in New Issue
Block a user