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:is_win32term = (has('win32') || has('win64')) && !has('gui_running')
let s:sections = ['a','b','c','gutter','x','y','z','warning'] 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) function! airline#exec_highlight(group, colors)
let colors = a:colors let colors = a:colors
if s:is_win32term if s:is_win32term
@ -52,7 +43,7 @@ function! airline#highlight(modes)
for key in keys(g:airline#themes#{g:airline_theme}#{mode}) for key in keys(g:airline#themes#{g:airline_theme}#{mode})
let colors = g:airline#themes#{g:airline_theme}#{mode}[key] let colors = g:airline#themes#{g:airline_theme}#{mode}[key]
let suffix = a:modes[0] == 'inactive' ? '_inactive' : '' 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 endfor
endif endif
endfor endfor
@ -71,17 +62,17 @@ function! airline#get_statusline(winnr, active)
let builder = airline#builder#new(a: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)) 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('a', 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('b', 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('c', s:get_section(a:winnr, 'c').' %#airline_file#%{&ro ? g:airline_readonly_symbol : ""}')
else else
call builder.add_section('Al6', '%f%m') call builder.add_section('c', '%f%m')
endif endif
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('Al6', s:get_section(a:winnr, 'x')) call builder.add_section('c', s:get_section(a:winnr, 'x'))
call builder.add_section('Al4', s:get_section(a:winnr, 'y')) call builder.add_section('b', s:get_section(a:winnr, 'y'))
call builder.add_section('Al2', s:get_section(a:winnr, 'z')) call builder.add_section('a', 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', '', ''))

View File

@ -11,7 +11,7 @@ function! airline#builder#new(active)
endfunction endfunction
function! builder.add_section(group, contents) function! builder.add_section(group, contents)
call add(self._sections, [a:group, a:contents]) call add(self._sections, ['airline_'.a:group, a:contents])
endfunction endfunction
function! builder.add_raw(text) 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 let theme = g:airline#themes#{g:airline_theme}#ctrlp
else else
let theme = airline#extensions#ctrlp#generate_color_map( let theme = airline#extensions#ctrlp#generate_color_map(
\ g:airline#themes#{g:airline_theme}#insert['statusline'], \ g:airline#themes#{g:airline_theme}#insert['airline_c'],
\ g:airline#themes#{g:airline_theme}#insert['info'], \ g:airline#themes#{g:airline_theme}#insert['airline_b'],
\ g:airline#themes#{g:airline_theme}#insert['mode']) \ g:airline#themes#{g:airline_theme}#insert['airline_a'])
endif endif
for key in keys(theme) for key in keys(theme)
call airline#exec_highlight(key, theme[key]) 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[1] == '' | let file[1] = a:section3[1] | endif
if file[3] == '' | let file[3] = a:section3[3] | endif if file[3] == '' | let file[3] = a:section3[3] | endif
" guifg guibg ctermfg ctermbg gui/term " guifg guibg ctermfg ctermbg gui/term
return { return {
\ 'mode': [ a:section1[0] , a:section1[1] , a:section1[2] , a:section1[3] , get(a:section1, 4, 'bold') ] , \ 'airline_a': [ 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] , '' ] , \ 'airline_b': [ a:section2[0] , a:section2[1] , a:section2[2] , a:section2[3] , get(a:section2, 4, '' ) ] ,
\ 'info': [ 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, '' ) ] ,
\ 'info_separator': [ a:section2[1] , a:section3[1] , a:section2[3] , a:section3[3] , '' ] , \ 'airline_file': [ file[0] , file[1] , file[2] , file[3] , get(file , 4, '' ) ] ,
\ '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 , '' ) ] ,
\ } \ }
endfunction endfunction