diff --git a/autoload/airline/extensions.vim b/autoload/airline/extensions.vim index 4c0e96a1..60716b34 100644 --- a/autoload/airline/extensions.vim +++ b/autoload/airline/extensions.vim @@ -444,6 +444,12 @@ function! airline#extensions#load() endif endfor endif + + if exists(':Dirvish') + call airline#extensions#dirvish#init(s:ext) + call add(s:loaded_ext, 'dirvish') + endif + endfunction function! airline#extensions#get_loaded_extensions() diff --git a/autoload/airline/extensions/dirvish.vim b/autoload/airline/extensions/dirvish.vim new file mode 100644 index 00000000..5ccab971 --- /dev/null +++ b/autoload/airline/extensions/dirvish.vim @@ -0,0 +1,39 @@ +" MIT Licsense +" Plugin: https://github.com/justinmk/vim-dirvish +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +if !exists(':Dirvish') + finish +endif + +let s:spc = g:airline_symbols.space + +function! airline#extensions#dirvish#init(ext) abort + call a:ext.add_statusline_func('airline#extensions#dirvish#apply') +endfunction + +function! airline#extensions#dirvish#apply(...) abort + if &filetype ==# 'dirvish' + let w:airline_section_a = 'Dirvish' + + let w:airline_section_b = exists('*airline#extensions#branch#get_head') + \ ? '%{airline#extensions#branch#get_head()}' + \ : '' + + let w:airline_section_c = + \ '%{join(split((execute("lcd"))))}' + \ . s:spc + \ . get(w:, 'airline_section_c', g:airline_section_c) + + let w:airline_section_x = '' + let w:airline_section_y = '' + + let current_column_regex = ':%\dv' + let w:airline_section_z = join(filter( + \ split(get(w:, 'airline_section_z', g:airline_section_z)), + \ 'v:val !~ current_column_regex' + \ )) + endif +endfunction