2019-03-25 19:27:10 +08:00
|
|
|
" MIT License. Copyright (c) 2013-2019 Bailey Ling et al.
|
2013-08-21 23:14:12 +08:00
|
|
|
" vim: et ts=2 sts=2 sw=2
|
2013-08-03 01:56:12 +08:00
|
|
|
|
2016-09-24 08:16:30 +08:00
|
|
|
scriptencoding utf-8
|
|
|
|
|
2013-09-10 23:37:25 +08:00
|
|
|
if !get(g:, 'loaded_ctrlp', 0)
|
|
|
|
finish
|
|
|
|
endif
|
|
|
|
|
2013-08-21 04:30:46 +08:00
|
|
|
let s:color_template = get(g:, 'airline#extensions#ctrlp#color_template', 'insert')
|
|
|
|
|
2013-07-28 04:16:13 +08:00
|
|
|
function! airline#extensions#ctrlp#generate_color_map(dark, light, white)
|
|
|
|
return {
|
|
|
|
\ 'CtrlPdark' : a:dark,
|
|
|
|
\ 'CtrlPlight' : a:light,
|
|
|
|
\ 'CtrlPwhite' : a:white,
|
|
|
|
\ 'CtrlParrow1' : [ a:light[1] , a:white[1] , a:light[3] , a:white[3] , '' ] ,
|
|
|
|
\ 'CtrlParrow2' : [ a:white[1] , a:light[1] , a:white[3] , a:light[3] , '' ] ,
|
|
|
|
\ 'CtrlParrow3' : [ a:light[1] , a:dark[1] , a:light[3] , a:dark[3] , '' ] ,
|
|
|
|
\ }
|
|
|
|
endfunction
|
|
|
|
|
2013-09-02 07:39:06 +08:00
|
|
|
function! airline#extensions#ctrlp#load_theme(palette)
|
|
|
|
if exists('a:palette.ctrlp')
|
|
|
|
let theme = a:palette.ctrlp
|
2013-07-27 01:21:43 +08:00
|
|
|
else
|
2013-09-02 07:39:06 +08:00
|
|
|
let s:color_template = has_key(a:palette, s:color_template) ? s:color_template : 'insert'
|
2013-07-28 04:16:13 +08:00
|
|
|
let theme = airline#extensions#ctrlp#generate_color_map(
|
2013-09-02 07:39:06 +08:00
|
|
|
\ a:palette[s:color_template]['airline_c'],
|
|
|
|
\ a:palette[s:color_template]['airline_b'],
|
|
|
|
\ a:palette[s:color_template]['airline_a'])
|
2013-07-27 01:21:43 +08:00
|
|
|
endif
|
|
|
|
for key in keys(theme)
|
2013-08-17 20:50:07 +08:00
|
|
|
call airline#highlighter#exec(key, theme[key])
|
2013-07-27 01:21:43 +08:00
|
|
|
endfor
|
2013-07-06 16:20:20 +08:00
|
|
|
endfunction
|
|
|
|
|
2013-10-02 09:23:17 +08:00
|
|
|
" Arguments: focus, byfname, regexp, prv, item, nxt, marked
|
2013-07-07 20:41:36 +08:00
|
|
|
function! airline#extensions#ctrlp#ctrlp_airline(...)
|
2013-10-02 09:23:17 +08:00
|
|
|
let b = airline#builder#new({'active': 1})
|
2014-11-20 21:23:25 +08:00
|
|
|
if a:2 == 'file'
|
|
|
|
call b.add_section_spaced('CtrlPlight', 'by fname')
|
|
|
|
endif
|
2013-10-02 09:23:17 +08:00
|
|
|
if a:3
|
|
|
|
call b.add_section_spaced('CtrlPlight', 'regex')
|
|
|
|
endif
|
2013-09-19 23:04:37 +08:00
|
|
|
if get(g:, 'airline#extensions#ctrlp#show_adjacent_modes', 1)
|
2013-10-02 09:23:17 +08:00
|
|
|
call b.add_section_spaced('CtrlPlight', a:4)
|
|
|
|
call b.add_section_spaced('CtrlPwhite', a:5)
|
|
|
|
call b.add_section_spaced('CtrlPlight', a:6)
|
2013-09-19 23:04:37 +08:00
|
|
|
else
|
2013-10-02 09:23:17 +08:00
|
|
|
call b.add_section_spaced('CtrlPwhite', a:5)
|
2013-09-19 23:04:37 +08:00
|
|
|
endif
|
2013-10-02 09:23:17 +08:00
|
|
|
call b.add_section_spaced('CtrlPdark', a:7)
|
|
|
|
call b.split()
|
2014-11-23 00:52:54 +08:00
|
|
|
call b.add_section_spaced('CtrlPdark', a:1)
|
2013-10-02 09:23:17 +08:00
|
|
|
call b.add_section_spaced('CtrlPdark', a:2)
|
|
|
|
call b.add_section_spaced('CtrlPlight', '%{getcwd()}')
|
|
|
|
return b.build()
|
2013-07-06 16:20:20 +08:00
|
|
|
endfunction
|
|
|
|
|
|
|
|
" Argument: len
|
2013-07-07 20:41:36 +08:00
|
|
|
function! airline#extensions#ctrlp#ctrlp_airline_status(...)
|
2013-07-28 05:54:05 +08:00
|
|
|
let len = '%#CtrlPdark# '.a:1
|
|
|
|
let dir = '%=%<%#CtrlParrow3#'.g:airline_right_sep.'%#CtrlPlight# '.getcwd().' %*'
|
2013-07-06 16:20:20 +08:00
|
|
|
return len.dir
|
|
|
|
endfunction
|
2013-08-06 11:34:45 +08:00
|
|
|
|
2013-08-22 11:25:22 +08:00
|
|
|
function! airline#extensions#ctrlp#apply(...)
|
|
|
|
" disable statusline overwrite if ctrlp already did it
|
2013-10-02 09:23:17 +08:00
|
|
|
return match(&statusline, 'CtrlPwhite') >= 0 ? -1 : 0
|
2013-08-06 11:34:45 +08:00
|
|
|
endfunction
|
|
|
|
|
|
|
|
function! airline#extensions#ctrlp#init(ext)
|
|
|
|
let g:ctrlp_status_func = {
|
|
|
|
\ 'main': 'airline#extensions#ctrlp#ctrlp_airline',
|
|
|
|
\ 'prog': 'airline#extensions#ctrlp#ctrlp_airline_status',
|
|
|
|
\ }
|
2013-08-24 05:22:20 +08:00
|
|
|
call a:ext.add_statusline_func('airline#extensions#ctrlp#apply')
|
2013-09-02 07:39:06 +08:00
|
|
|
call a:ext.add_theme_func('airline#extensions#ctrlp#load_theme')
|
2013-08-06 11:34:45 +08:00
|
|
|
endfunction
|