basic working independent inactive modified highlights.

This commit is contained in:
Bailey Ling
2013-09-05 20:45:12 +00:00
parent e1be8ff22f
commit 01d742794f
3 changed files with 26 additions and 7 deletions

View File

@@ -66,7 +66,7 @@ endfunction
function! airline#update_statusline()
for nr in filter(range(1, winnr('$')), 'v:val != winnr()')
call setwinvar(nr, 'airline_active', 0)
let context = { 'winnr': nr, 'active': 0 }
let context = { 'winnr': nr, 'active': 0, 'bufnr': winbufnr(nr) }
call s:invoke_funcrefs(context, s:inactive_funcrefs)
endfor
@@ -77,7 +77,7 @@ function! airline#update_statusline()
endfor
let w:airline_active = 1
let context = { 'winnr': winnr(), 'active': 1 }
let context = { 'winnr': winnr(), 'active': 1, 'bufnr': winbufnr(winnr()) }
call s:invoke_funcrefs(context, g:airline_statusline_funcrefs)
endfunction
@@ -96,10 +96,12 @@ function! s:invoke_funcrefs(context, funcrefs)
endfunction
function! airline#statusline(winnr)
return '%{airline#check_mode()}'.s:contexts[a:winnr].line
return '%{airline#check_mode('.a:winnr.')}'.s:contexts[a:winnr].line
endfunction
function! airline#check_mode()
function! airline#check_mode(winnr)
let context = s:contexts[a:winnr]
if get(w:, 'airline_active', 1)
let l:m = mode()
if l:m ==# "i"
@@ -117,9 +119,23 @@ function! airline#check_mode()
let w:airline_current_mode = get(g:airline_mode_map, '__')
endif
if g:airline_detect_modified && &modified
call add(l:mode, 'modified')
if g:airline_detect_modified
if &modified
call add(l:mode, 'modified')
let colors = g:airline#themes#{g:airline_theme}#palette.inactive_modified.airline_b
else
let colors = g:airline#themes#{g:airline_theme}#palette.inactive.airline_b
endif
for winnr in range(1, winnr('$'))
if winnr != a:winnr
\ && has_key(s:contexts, winnr)
\ && s:contexts[winnr].bufnr == context.bufnr
call airline#highlighter#exec('airline_b'.(context.bufnr).'_inactive', colors)
endif
endfor
endif
if g:airline_detect_paste && &paste
call add(l:mode, 'paste')
endif