highlight: skip processing the same hi group twice

Shouldn't happen, but just in case skip creating highlighting group,
if the same group with the same attributes has already been defined.
This commit is contained in:
Christian Brabandt
2017-06-26 23:06:46 +02:00
parent 583ae3d5f9
commit feee9bcf3c
3 changed files with 25 additions and 7 deletions

View File

@@ -47,7 +47,9 @@ function! airline#load_theme()
endif
call airline#highlighter#load_theme()
let g:airline_theme_dict = {}
call airline#extensions#load_theme()
unlet g:airline_theme_dict
call airline#update_statusline()
endfunction
@@ -102,6 +104,7 @@ function! airline#update_statusline()
if airline#util#getwinvar(winnr(), 'airline_disabled', 0)
return
endif
let g:airline_theme_dict={}
for nr in filter(range(1, winnr('$')), 'v:val != winnr()')
if airline#util#getwinvar(nr, 'airline_disabled', 0)
continue
@@ -117,6 +120,7 @@ function! airline#update_statusline()
let w:airline_active = 1
let context = { 'winnr': winnr(), 'active': 1, 'bufnr': winbufnr(winnr()) }
call s:invoke_funcrefs(context, g:airline_statusline_funcrefs)
unlet g:airline_theme_dict
endfunction
let s:contexts = {}
@@ -198,9 +202,11 @@ function! airline#check_mode(winnr)
return ''
endif
if get(w:, 'airline_lastmode', '') != mode_string
let g:airline_theme_dict = {}
call airline#highlighter#highlight_modified_inactive(context.bufnr)
call airline#highlighter#highlight(l:mode, context.bufnr)
let w:airline_lastmode = mode_string
unlet g:airline_theme_dict
endif
return ''