remove redundancy from the map

This commit is contained in:
Bailey Ling 2013-08-16 02:02:32 +00:00
parent 30adb973fc
commit 6e515a4627
4 changed files with 17 additions and 28 deletions

View File

@ -4,15 +4,6 @@
let s:is_win32term = (has('win32') || has('win64')) && !has('gui_running')
let s:sections = ['a','b','c','gutter','x','y','z','warning']
let s:airline_highlight_map = {
\ 'mode' : 'Al2',
\ 'mode_separator' : 'Al3',
\ 'info' : 'Al4',
\ 'info_separator' : 'Al5',
\ 'statusline' : 'Al6',
\ 'file' : 'Al7',
\ }
function! airline#exec_highlight(group, colors)
let colors = a:colors
if s:is_win32term
@ -52,7 +43,7 @@ function! airline#highlight(modes)
for key in keys(g:airline#themes#{g:airline_theme}#{mode})
let colors = g:airline#themes#{g:airline_theme}#{mode}[key]
let suffix = a:modes[0] == 'inactive' ? '_inactive' : ''
call airline#exec_highlight(s:airline_highlight_map[key].suffix, colors)
call airline#exec_highlight(key.suffix, colors)
endfor
endif
endfor
@ -71,17 +62,17 @@ function! airline#get_statusline(winnr, active)
let builder = airline#builder#new(a:active)
if airline#util#getwinvar(a:winnr, 'airline_render_left', a:active || (!a:active && !g:airline_inactive_collapse))
call builder.add_section('Al2', s:get_section(a:winnr, 'a').'%{g:airline_detect_paste && &paste ? g:airline_paste_symbol." " : ""}')
call builder.add_section('Al4', s:get_section(a:winnr, 'b'))
call builder.add_section('Al6', s:get_section(a:winnr, 'c').' %#Al7#%{&ro ? g:airline_readonly_symbol : ""}')
call builder.add_section('a', s:get_section(a:winnr, 'a').'%{g:airline_detect_paste && &paste ? g:airline_paste_symbol." " : ""}')
call builder.add_section('b', s:get_section(a:winnr, 'b'))
call builder.add_section('c', s:get_section(a:winnr, 'c').' %#airline_file#%{&ro ? g:airline_readonly_symbol : ""}')
else
call builder.add_section('Al6', '%f%m')
call builder.add_section('c', '%f%m')
endif
call builder.split(s:get_section(a:winnr, 'gutter', '', ''))
if airline#util#getwinvar(a:winnr, 'airline_render_right', 1)
call builder.add_section('Al6', s:get_section(a:winnr, 'x'))
call builder.add_section('Al4', s:get_section(a:winnr, 'y'))
call builder.add_section('Al2', s:get_section(a:winnr, 'z'))
call builder.add_section('c', s:get_section(a:winnr, 'x'))
call builder.add_section('b', s:get_section(a:winnr, 'y'))
call builder.add_section('a', 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

@ -11,7 +11,7 @@ function! airline#builder#new(active)
endfunction
function! builder.add_section(group, contents)
call add(self._sections, [a:group, a:contents])
call add(self._sections, ['airline_'.a:group, a:contents])
endfunction
function! builder.add_raw(text)

View File

@ -17,9 +17,9 @@ function! airline#extensions#ctrlp#load_theme()
let theme = g:airline#themes#{g:airline_theme}#ctrlp
else
let theme = airline#extensions#ctrlp#generate_color_map(
\ g:airline#themes#{g:airline_theme}#insert['statusline'],
\ g:airline#themes#{g:airline_theme}#insert['info'],
\ g:airline#themes#{g:airline_theme}#insert['mode'])
\ g:airline#themes#{g:airline_theme}#insert['airline_c'],
\ g:airline#themes#{g:airline_theme}#insert['airline_b'],
\ g:airline#themes#{g:airline_theme}#insert['airline_a'])
endif
for key in keys(theme)
call airline#exec_highlight(key, theme[key])

View File

@ -8,14 +8,12 @@ function! airline#themes#generate_color_map(section1, section2, section3, file)
if file[1] == '' | let file[1] = a:section3[1] | endif
if file[3] == '' | let file[3] = a:section3[3] | endif
" guifg guibg ctermfg ctermbg gui/term
" guifg guibg ctermfg ctermbg gui/term
return {
\ 'mode': [ a:section1[0] , a:section1[1] , a:section1[2] , a:section1[3] , get(a:section1, 4, 'bold') ] ,
\ 'mode_separator': [ a:section1[1] , a:section2[1] , a:section1[3] , a:section2[3] , '' ] ,
\ 'info': [ a:section2[0] , a:section2[1] , a:section2[2] , a:section2[3] , get(a:section2, 4, '' ) ] ,
\ 'info_separator': [ a:section2[1] , a:section3[1] , a:section2[3] , a:section3[3] , '' ] ,
\ 'statusline': [ a:section3[0] , a:section3[1] , a:section3[2] , a:section3[3] , get(a:section3 , 4 , '' ) ] ,
\ 'file': [ file[0] , file[1] , file[2] , file[3] , get(file , 4 , '' ) ] ,
\ 'airline_a': [ a:section1[0] , a:section1[1] , a:section1[2] , a:section1[3] , get(a:section1, 4, 'bold') ] ,
\ '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': [ file[0] , file[1] , file[2] , file[3] , get(file , 4, '' ) ] ,
\ }
endfunction