diff --git a/autoload/airline/extensions.vim b/autoload/airline/extensions.vim new file mode 100644 index 0000000..baa6d84 --- /dev/null +++ b/autoload/airline/extensions.vim @@ -0,0 +1,9 @@ +function! airline#extensions#load() + if exists('g:loaded_ctrlp') && g:loaded_ctrlp + call airline#extensions#ctrlp#load_ctrlp_hi() + let g:ctrlp_status_func = { + \ 'main': 'airline#extensions#ctrlp#ctrlp_airline', + \ 'prog': 'airline#extensions#ctrlp#ctrlp_airline_status', + \ } + endif +endfunction diff --git a/autoload/airline/themes/ctrlp.vim b/autoload/airline/extensions/ctrlp.vim similarity index 87% rename from autoload/airline/themes/ctrlp.vim rename to autoload/airline/extensions/ctrlp.vim index 1dcac8e..c70f135 100644 --- a/autoload/airline/themes/ctrlp.vim +++ b/autoload/airline/extensions/ctrlp.vim @@ -1,5 +1,6 @@ +" TODO: support loading color palette from g:airline_theme -function! airline#themes#ctrlp#load_ctrlp_hi() +function! airline#extensions#ctrlp#load_ctrlp_hi() hi! CtrlPdark ctermfg=189 ctermbg=55 guifg=#d7d7ff guibg=#5f00af hi! CtrlPlight ctermfg=231 ctermbg=98 guifg=#ffffff guibg=#875fd7 hi! CtrlPwhite ctermfg=55 ctermbg=231 term=bold guifg=#5f00af guibg=#ffffff gui=bold @@ -14,7 +15,7 @@ endfunction " Arguments: focus, byfname, s:regexp, prv, item, nxt, marked " a:1 a:2 a:3 a:4 a:5 a:6 a:7 -function! airline#themes#ctrlp#ctrlp_airline(...) +function! airline#extensions#ctrlp#ctrlp_airline(...) let regex = a:3 ? '%#CtrlPlight# regex %*' : '' let prv = '%#CtrlPlight# '.a:4.' %#Ctrlparrow1#'.g:airline_left_sep let item = '%#CtrlPwhite# '.a:5.' %#CtrlParrow2#'.g:airline_left_sep @@ -29,11 +30,9 @@ endfunction " Argument: len " a:1 -function! airline#themes#ctrlp#ctrlp_airline_status(...) +function! airline#extensions#ctrlp#ctrlp_airline_status(...) let len = '%#CtrlPwhite# '.a:1 let dir = '%=%<%#CtrlParrow5#'.g:airline_right_sep.'%#CtrlPlight# '.getcwd().' %*' " Return the full statusline return len.dir endfunction - - diff --git a/plugin/airline.vim b/plugin/airline.vim index 52983a5..c80a1ad 100644 --- a/plugin/airline.vim +++ b/plugin/airline.vim @@ -26,15 +26,6 @@ call s:check_defined('g:airline_exclude_filetypes', ['qf','netrw','diff','undotr let s:is_win32term = (has('win32') || has('win64')) && !has('gui_running') let s:load_the_theme = g:airline#themes#{g:airline_theme}#normal -if exists('g:loaded_ctrlp') && g:loaded_ctrlp - call airline#themes#ctrlp#load_ctrlp_hi() - " ctrlp only looks for this - let g:ctrlp_status_func = { - \ 'main': 'airline#themes#ctrlp#ctrlp_airline', - \ 'prog': 'airline#themes#ctrlp#ctrlp_airline_status', - \ } -endif - call s:check_defined('g:airline_mode_map', { \ 'n' : 'NORMAL', \ 'i' : 'INSERT', @@ -100,6 +91,7 @@ function! s:update_externals() \ ? g:airline_fugitive_prefix.fugitive#head() : '' if !s:airline_sections_defined + call airline#extensions#load() call s:check_defined('g:airline_section_a', '%{g:airline_current_mode_text}') call s:check_defined('g:airline_section_b', '%{g:airline_externals_fugitive}') call s:check_defined('g:airline_section_c', g:airline_externals_bufferline)