vim-airline/autoload/airline/parts.vim

93 lines
2.4 KiB
VimL
Raw Normal View History

2016-01-15 10:38:38 +08:00
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
2013-08-27 10:55:11 +08:00
" vim: et ts=2 sts=2 sw=2
scriptencoding utf-8
2013-08-31 05:51:10 +08:00
let s:parts = {}
2013-09-01 00:07:56 +08:00
" PUBLIC API {{{
2013-08-31 05:51:10 +08:00
function! airline#parts#define(key, config)
let s:parts[a:key] = get(s:parts, a:key, {})
if exists('g:airline#init#bootstrapping')
call extend(s:parts[a:key], a:config, 'keep')
else
call extend(s:parts[a:key], a:config, 'force')
endif
2013-08-31 05:51:10 +08: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 })
endfunction
function! airline#parts#define_minwidth(key, width)
call airline#parts#define(a:key, { 'minwidth': a:width })
endfunction
function! airline#parts#define_condition(key, predicate)
call airline#parts#define(a:key, { 'condition': a:predicate })
endfunction
function! airline#parts#define_accent(key, accent)
call airline#parts#define(a:key, { 'accent': a:accent })
endfunction
function! airline#parts#define_empty(keys)
for key in a:keys
call airline#parts#define_raw(key, '')
endfor
endfunction
2013-08-31 05:51:10 +08:00
function! airline#parts#get(key)
return get(s:parts, a:key, {})
endfunction
2013-09-01 00:07:56 +08:00
" }}}
function! airline#parts#mode()
return get(w:, 'airline_current_mode', '')
endfunction
function! airline#parts#crypt()
return g:airline_detect_crypt && exists("+key") && !empty(&key) ? g:airline_symbols.crypt : ''
endfunction
2013-08-28 02:08:50 +08:00
function! airline#parts#paste()
return g:airline_detect_paste && &paste ? g:airline_symbols.paste : ''
2013-08-27 11:07:14 +08:00
endfunction
2016-03-22 14:52:04 +08:00
function! airline#parts#spell()
return g:airline_detect_spell && &spell ? g:airline_symbols.spell : ''
endfunction
2013-08-28 02:08:50 +08:00
function! airline#parts#iminsert()
2013-08-27 11:07:14 +08:00
if g:airline_detect_iminsert && &iminsert && exists('b:keymap_name')
return toupper(b:keymap_name)
2013-08-27 11:07:14 +08:00
endif
return ''
2013-08-27 10:55:11 +08:00
endfunction
2013-08-28 02:08:50 +08:00
function! airline#parts#readonly()
if &readonly && &modifiable && !filereadable(bufname('%'))
return '[noperm]'
else
return &readonly ? g:airline_symbols.readonly : ''
endif
2013-08-27 11:34:02 +08:00
endfunction
function! airline#parts#filetype()
return winwidth(0) < 100 && strlen(&filetype) > 3 ? matchstr(&filetype, '...'). (&encoding is? 'utf-8' ? '…' : '>') : &filetype
endfunction
2013-09-08 02:14:41 +08:00
function! airline#parts#ffenc()
return printf('%s%s%s', &fenc, &l:bomb ? '[BOM]' : '', strlen(&ff) > 0 ? '['.&ff.']' : '')
2013-09-08 02:14:41 +08:00
endfunction