2016-01-14 21:38:38 -05:00
|
|
|
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
|
2013-08-26 22:55:11 -04:00
|
|
|
" vim: et ts=2 sts=2 sw=2
|
|
|
|
|
2013-08-30 17:51:10 -04:00
|
|
|
let s:parts = {}
|
|
|
|
|
2013-08-31 12:07:56 -04:00
|
|
|
" PUBLIC API {{{
|
|
|
|
|
2013-08-30 17:51:10 -04:00
|
|
|
function! airline#parts#define(key, config)
|
|
|
|
let s:parts[a:key] = get(s:parts, a:key, {})
|
2013-09-25 22:13:57 -04:00
|
|
|
if exists('g:airline#init#bootstrapping')
|
2013-09-25 14:48:18 -04:00
|
|
|
call extend(s:parts[a:key], a:config, 'keep')
|
|
|
|
else
|
|
|
|
call extend(s:parts[a:key], a:config, 'force')
|
|
|
|
endif
|
2013-08-30 17:51:10 -04:00
|
|
|
endfunction
|
|
|
|
|
|
|
|
function! airline#parts#define_function(key, name)
|
|
|
|
call airline#parts#define(a:key, { 'function': a:name })
|
|
|
|
endfunction
|
|
|
|
|
|
|
|
function! airline#parts#define_text(key, text)
|
|
|
|
call airline#parts#define(a:key, { 'text': a:text })
|
|
|
|
endfunction
|
|
|
|
|
|
|
|
function! airline#parts#define_raw(key, raw)
|
|
|
|
call airline#parts#define(a:key, { 'raw': a:raw })
|
2013-08-28 19:29:35 -04:00
|
|
|
endfunction
|
|
|
|
|
2013-08-31 12:33:58 -04:00
|
|
|
function! airline#parts#define_minwidth(key, width)
|
|
|
|
call airline#parts#define(a:key, { 'minwidth': a:width })
|
|
|
|
endfunction
|
|
|
|
|
2013-09-08 19:06:57 -04:00
|
|
|
function! airline#parts#define_condition(key, predicate)
|
|
|
|
call airline#parts#define(a:key, { 'condition': a:predicate })
|
|
|
|
endfunction
|
|
|
|
|
2013-09-15 22:52:42 -04:00
|
|
|
function! airline#parts#define_accent(key, accent)
|
|
|
|
call airline#parts#define(a:key, { 'accent': a:accent })
|
|
|
|
endfunction
|
|
|
|
|
2013-08-30 23:35:23 -04:00
|
|
|
function! airline#parts#define_empty(keys)
|
|
|
|
for key in a:keys
|
|
|
|
call airline#parts#define_raw(key, '')
|
|
|
|
endfor
|
|
|
|
endfunction
|
|
|
|
|
2013-08-30 17:51:10 -04:00
|
|
|
function! airline#parts#get(key)
|
|
|
|
return get(s:parts, a:key, {})
|
2013-08-28 19:29:35 -04:00
|
|
|
endfunction
|
|
|
|
|
2013-08-31 12:07:56 -04:00
|
|
|
" }}}
|
2013-08-28 19:29:35 -04:00
|
|
|
|
2013-08-31 12:57:02 -04:00
|
|
|
function! airline#parts#mode()
|
|
|
|
return get(w:, 'airline_current_mode', '')
|
|
|
|
endfunction
|
|
|
|
|
2015-06-02 14:37:08 -04:00
|
|
|
function! airline#parts#crypt()
|
2015-06-09 12:19:16 -04:00
|
|
|
return g:airline_detect_crypt && exists("+key") && !empty(&key) ? g:airline_symbols.crypt : ''
|
2015-06-02 14:37:08 -04:00
|
|
|
endfunction
|
|
|
|
|
2013-08-27 14:08:50 -04:00
|
|
|
function! airline#parts#paste()
|
2013-08-28 19:29:35 -04:00
|
|
|
return g:airline_detect_paste && &paste ? g:airline_symbols.paste : ''
|
2013-08-26 23:07:14 -04:00
|
|
|
endfunction
|
|
|
|
|
2016-03-22 02:52:04 -04:00
|
|
|
function! airline#parts#spell()
|
|
|
|
return g:airline_detect_spell && &spell ? g:airline_symbols.spell : ''
|
|
|
|
endfunction
|
|
|
|
|
2013-08-27 14:08:50 -04:00
|
|
|
function! airline#parts#iminsert()
|
2013-08-26 23:07:14 -04:00
|
|
|
if g:airline_detect_iminsert && &iminsert && exists('b:keymap_name')
|
2013-08-28 19:29:35 -04:00
|
|
|
return toupper(b:keymap_name)
|
2013-08-26 23:07:14 -04:00
|
|
|
endif
|
|
|
|
return ''
|
2013-08-26 22:55:11 -04:00
|
|
|
endfunction
|
|
|
|
|
2013-08-27 14:08:50 -04:00
|
|
|
function! airline#parts#readonly()
|
2016-02-24 20:57:49 -05:00
|
|
|
if &readonly && &modifiable && !filereadable(bufname('%'))
|
2016-02-24 14:40:29 -05:00
|
|
|
return '[noperm]'
|
|
|
|
else
|
|
|
|
return &readonly ? g:airline_symbols.readonly : ''
|
|
|
|
endif
|
2013-08-26 23:34:02 -04:00
|
|
|
endfunction
|
|
|
|
|
2013-09-01 12:07:46 -04:00
|
|
|
function! airline#parts#filetype()
|
2016-09-08 15:32:36 -04:00
|
|
|
return winwidth(0) < 100 && strlen(&filetype) > 3 ? matchstr(&filetype, '...'). (&encoding is? 'utf-8' ? '…' : '>') : &filetype
|
2013-09-01 12:07:46 -04:00
|
|
|
endfunction
|
|
|
|
|
2013-09-07 14:14:41 -04:00
|
|
|
function! airline#parts#ffenc()
|
2016-02-05 12:19:53 -05:00
|
|
|
return printf('%s%s%s', &fenc, &l:bomb ? '[BOM]' : '', strlen(&ff) > 0 ? '['.&ff.']' : '')
|
2013-09-07 14:14:41 -04:00
|
|
|
endfunction
|