" vim: et ts=2 sts=2 sw=2

scriptencoding utf-8

if !exists('g:rufo_loaded')
  finish
endif

let s:spc = g:airline_symbols.space

if !exists('g:airline#extensions#rufo#symbol')
  let g:airline#extensions#rufo#symbol = 'RuFo'
endif

function! airline#extensions#rufo#init(ext)
   call airline#parts#define_raw('rufo', '%{airline#extensions#rufo#get_status}')
   call a:ext.add_statusline_func('airline#extensions#rufo#apply')
endfunction

function! airline#extensions#rufo#get_status()
  let out = ''
  if &ft == "ruby" && g:rufo_auto_formatting == 1
    let out .= s:spc.g:airline_left_alt_sep.s:spc.g:airline#extensions#rufo#symbol
  endif
  return out
endfunction

" This function will be invoked just prior to the statusline getting modified.
function! airline#extensions#rufo#apply(...)
  " First we check for the filetype.
  if &filetype == "ruby"
    " section_z.
    let w:airline_section_z = get(w:, 'airline_section_z', g:airline_section_z)

    " Then we just append this extenion to it, optionally using separators.
    let w:airline_section_z .= '%{airline#extensions#rufo#get_status()}'
  endif
endfunction