convert mode/paste/iminsert parts to function names.

This commit is contained in:
Bailey Ling
2013-08-28 23:29:35 +00:00
parent 8beb275534
commit e10b690cdf
3 changed files with 48 additions and 12 deletions

View File

@@ -1,13 +1,31 @@
" MIT License. Copyright (c) 2013 Bailey Ling.
" vim: et ts=2 sts=2 sw=2
function! airline#parts#append(name)
let val = function(a:name)()
return empty(val) ? '' : ' '.g:airline_left_alt_sep.' '.val
endfunction
function! airline#parts#prepend(name)
let val = function(a:name)()
return empty(val) ? '' : val.' '.g:airline_right_alt_sep
endfunction
function! airline#parts#empty()
return ''
endfunction
function! airline#parts#mode()
return get(w:, 'airline_current_mode', '')
endfunction
function! airline#parts#paste()
return g:airline_detect_paste && &paste ? ' '.g:airline_symbols.paste : ''
return g:airline_detect_paste && &paste ? g:airline_symbols.paste : ''
endfunction
function! airline#parts#iminsert()
if g:airline_detect_iminsert && &iminsert && exists('b:keymap_name')
return ' '.g:airline_left_alt_sep.' '.toupper(b:keymap_name)
return toupper(b:keymap_name)
endif
return ''
endfunction

View File

@@ -1,6 +1,24 @@
" MIT License. Copyright (c) 2013 Bailey Ling.
" vim: et ts=2 sts=2 sw=2
function! s:get_val(part)
let val = g:airline_parts[a:part]
if match(val, '%') > -1
return val
else
return '%{function("'.val.'")()}'
endif
endfunction
function! airline#util#define_section(key, parts)
if !exists('g:airline_section_{a:key}') && len(a:parts) > 0
let g:airline_section_{a:key} = s:get_val(a:parts[0])
for i in range(1, len(a:parts) - 1)
let g:airline_section_{a:key} .= s:get_val(a:parts[i])
endfor
endif
endfunction
if v:version >= 704
function! airline#util#getwinvar(winnr, key, def)
return getwinvar(a:winnr, a:key, a:def)