support x,y,z theming. resolves #159.
This commit is contained in:
parent
54d3605497
commit
f780621aa0
@ -61,9 +61,9 @@ function! airline#get_statusline(winnr, active)
|
|||||||
call builder.split(s:get_section(a:winnr, 'gutter', '', ''))
|
call builder.split(s:get_section(a:winnr, 'gutter', '', ''))
|
||||||
|
|
||||||
if airline#util#getwinvar(a:winnr, 'airline_render_right', 1)
|
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_x', s:get_section(a:winnr, 'x'))
|
||||||
call builder.add_section('airline_b', s:get_section(a:winnr, 'y'))
|
call builder.add_section('airline_y', s:get_section(a:winnr, 'y'))
|
||||||
call builder.add_section('airline_a', s:get_section(a:winnr, 'z'))
|
call builder.add_section('airline_z', s:get_section(a:winnr, 'z'))
|
||||||
if a:active
|
if a:active
|
||||||
call builder.add_raw('%(')
|
call builder.add_raw('%(')
|
||||||
call builder.add_section('warningmsg', s:get_section(a:winnr, 'warning', '', ''))
|
call builder.add_section('warningmsg', s:get_section(a:winnr, 'warning', '', ''))
|
||||||
|
@ -10,10 +10,8 @@ endfunction
|
|||||||
|
|
||||||
function! s:prototype.add_section(group, contents)
|
function! s:prototype.add_section(group, contents)
|
||||||
if self._curgroup != ''
|
if self._curgroup != ''
|
||||||
call self._highlighter.add_separator(self._group(self._curgroup), self._group(a:group))
|
call self._highlighter.add_separator(self._group(self._curgroup), self._group(a:group), self._side)
|
||||||
let self._line .= self._side
|
let self._line .= '%#'.self._group(self._curgroup).'_to_'.self._group(a:group).'#'
|
||||||
\ ? '%#'.self._group(a:group).'_to_'.self._group(self._curgroup).'#'
|
|
||||||
\ : '%#'.self._group(self._curgroup).'_to_'.self._group(a:group).'#'
|
|
||||||
let self._line .= self._side
|
let self._line .= self._side
|
||||||
\ ? self._active ? g:airline_left_sep : g:airline_left_alt_sep
|
\ ? self._active ? g:airline_left_sep : g:airline_left_alt_sep
|
||||||
\ : self._active ? g:airline_right_sep : g:airline_right_alt_sep
|
\ : self._active ? g:airline_right_sep : g:airline_right_alt_sep
|
||||||
|
@ -19,11 +19,11 @@ function! airline#highlighter#exec(group, colors)
|
|||||||
\ get(colors, 4, '') != '' ? 'term='.colors[4] : '')
|
\ get(colors, 4, '') != '' ? 'term='.colors[4] : '')
|
||||||
endfunction
|
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:from = airline#themes#get_highlight(a:from)
|
||||||
let l:to = airline#themes#get_highlight(a:to)
|
let l:to = airline#themes#get_highlight(a:to)
|
||||||
let group = a:from.'_to_'.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
|
let a:dict[group] = colors
|
||||||
call airline#highlighter#exec(group, colors)
|
call airline#highlighter#exec(group, colors)
|
||||||
endfunction
|
endfunction
|
||||||
@ -37,8 +37,8 @@ function! airline#highlighter#new()
|
|||||||
call self.highlight(['normal'])
|
call self.highlight(['normal'])
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! highlighter.add_separator(from, to)
|
function! highlighter.add_separator(from, to, inverse)
|
||||||
let self._separators[a:from.a:to] = [a:from, a:to]
|
let self._separators[a:from.a:to] = [a:from, a:to, a:inverse]
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! highlighter.highlight(modes)
|
function! highlighter.highlight(modes)
|
||||||
@ -54,7 +54,7 @@ function! airline#highlighter#new()
|
|||||||
|
|
||||||
" TODO: optimize this
|
" TODO: optimize this
|
||||||
for sep in items(self._separators)
|
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
|
endfor
|
||||||
endif
|
endif
|
||||||
endfor
|
endfor
|
||||||
|
@ -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_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_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_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
|
endfunction
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user