rufo.vim 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. " vim: et ts=2 sts=2 sw=2
  2. scriptencoding utf-8
  3. if !exists('g:rufo_loaded')
  4. finish
  5. endif
  6. let s:spc = g:airline_symbols.space
  7. if !exists('g:airline#extensions#rufo#symbol')
  8. let g:airline#extensions#rufo#symbol = 'RuFo'
  9. endif
  10. function! airline#extensions#rufo#init(ext)
  11. call airline#parts#define_raw('rufo', '%{airline#extensions#rufo#get_status}')
  12. call a:ext.add_statusline_func('airline#extensions#rufo#apply')
  13. endfunction
  14. function! airline#extensions#rufo#get_status()
  15. let out = ''
  16. if &ft == "ruby" && g:rufo_auto_formatting == 1
  17. let out .= s:spc.g:airline_left_alt_sep.s:spc.g:airline#extensions#rufo#symbol
  18. endif
  19. return out
  20. endfunction
  21. " This function will be invoked just prior to the statusline getting modified.
  22. function! airline#extensions#rufo#apply(...)
  23. " First we check for the filetype.
  24. if &filetype == "ruby"
  25. " section_z.
  26. let w:airline_section_z = get(w:, 'airline_section_z', g:airline_section_z)
  27. " Then we just append this extension to it, optionally using separators.
  28. let w:airline_section_z .= '%{airline#extensions#rufo#get_status()}'
  29. endif
  30. endfunction