support x,y,z theming. resolves #159.

This commit is contained in:
Bailey Ling 2013-08-20 01:56:13 +00:00
parent 54d3605497
commit f780621aa0
4 changed files with 13 additions and 12 deletions

View File

@ -61,9 +61,9 @@ function! airline#get_statusline(winnr, active)
call builder.split(s:get_section(a:winnr, 'gutter', '', ''))
if airline#util#getwinvar(a:winnr, 'airline_render_right', 1)
call builder.add_section('airline_c', s:get_section(a:winnr, 'x'))
call builder.add_section('airline_b', s:get_section(a:winnr, 'y'))
call builder.add_section('airline_a', s:get_section(a:winnr, 'z'))
call builder.add_section('airline_x', s:get_section(a:winnr, 'x'))
call builder.add_section('airline_y', s:get_section(a:winnr, 'y'))
call builder.add_section('airline_z', s:get_section(a:winnr, 'z'))
if a:active
call builder.add_raw('%(')
call builder.add_section('warningmsg', s:get_section(a:winnr, 'warning', '', ''))

View File

@ -10,10 +10,8 @@ endfunction
function! s:prototype.add_section(group, contents)
if self._curgroup != ''
call self._highlighter.add_separator(self._group(self._curgroup), self._group(a:group))
let self._line .= self._side
\ ? '%#'.self._group(a:group).'_to_'.self._group(self._curgroup).'#'
\ : '%#'.self._group(self._curgroup).'_to_'.self._group(a:group).'#'
call self._highlighter.add_separator(self._group(self._curgroup), self._group(a:group), self._side)
let self._line .= '%#'.self._group(self._curgroup).'_to_'.self._group(a:group).'#'
let self._line .= self._side
\ ? self._active ? g:airline_left_sep : g:airline_left_alt_sep
\ : self._active ? g:airline_right_sep : g:airline_right_alt_sep

View File

@ -19,11 +19,11 @@ function! airline#highlighter#exec(group, colors)
\ get(colors, 4, '') != '' ? 'term='.colors[4] : '')
endfunction
function! s:exec_separator(dict, from, to)
function! s:exec_separator(dict, from, to, inverse)
let l:from = airline#themes#get_highlight(a:from)
let l:to = airline#themes#get_highlight(a:to)
let group = a:from.'_to_'.a:to
let colors = [ l:to[1], l:from[1], l:to[3], l:from[3] ]
let colors = [ l:to[1], l:from[1], l:to[3], l:from[3], a:inverse ? 'inverse' : '' ]
let a:dict[group] = colors
call airline#highlighter#exec(group, colors)
endfunction
@ -37,8 +37,8 @@ function! airline#highlighter#new()
call self.highlight(['normal'])
endfunction
function! highlighter.add_separator(from, to)
let self._separators[a:from.a:to] = [a:from, a:to]
function! highlighter.add_separator(from, to, inverse)
let self._separators[a:from.a:to] = [a:from, a:to, a:inverse]
endfunction
function! highlighter.highlight(modes)
@ -54,7 +54,7 @@ function! airline#highlighter#new()
" TODO: optimize this
for sep in items(self._separators)
call <sid>exec_separator(dict, sep[1][0].suffix, sep[1][1].suffix)
call <sid>exec_separator(dict, sep[1][0].suffix, sep[1][1].suffix, sep[1][2])
endfor
endif
endfor

View File

@ -9,6 +9,9 @@ function! airline#themes#generate_color_map(section1, section2, section3, file)
\ 'airline_b': [ a:section2[0] , a:section2[1] , a:section2[2] , a:section2[3] , get(a:section2 , 4 , '' ) ] ,
\ 'airline_c': [ a:section3[0] , a:section3[1] , a:section3[2] , a:section3[3] , get(a:section3 , 4 , '' ) ] ,
\ 'airline_file': [ a:file[0] , a:file[1] , a:file[2] , a:file[3] , get(a:file , 4 , '' ) ] ,
\ 'airline_x': [ a:section3[0] , a:section3[1] , a:section3[2] , a:section3[3] , get(a:section3 , 4 , '' ) ] ,
\ 'airline_y': [ a:section2[0] , a:section2[1] , a:section2[2] , a:section2[3] , get(a:section2 , 4 , '' ) ] ,
\ 'airline_z': [ a:section1[0] , a:section1[1] , a:section1[2] , a:section1[3] , get(a:section1 , 4 , '' ) ] ,
\ }
endfunction