diff --git a/autoload/airline.vim b/autoload/airline.vim index 113ec313..81255e4a 100644 --- a/autoload/airline.vim +++ b/autoload/airline.vim @@ -143,7 +143,6 @@ function! airline#update_statusline() endfor endfunction -let g:airline_current_mode_text = '' function! airline#update_highlight() if get(w:, 'airline_active', 1) let l:m = mode() diff --git a/autoload/airline/extensions/branch.vim b/autoload/airline/extensions/branch.vim index 4b35e467..aa6db6e6 100644 --- a/autoload/airline/extensions/branch.vim +++ b/autoload/airline/extensions/branch.vim @@ -1,14 +1,15 @@ " MIT license. Copyright (c) 2013 Bailey Ling. " vim: ts=2 sts=2 sw=2 fdm=indent -function! airline#extensions#branch#init(ext) - if g:airline_section_b == '' - let g:airline_section_b = - \ exists('*fugitive#head') && strlen(fugitive#head()) > 0 - \ ? g:airline_branch_prefix.fugitive#head() - \ : exists('*lawrencium#statusline') && strlen(lawrencium#statusline()) > 0 - \ ? g:airline_branch_prefix.lawrencium#statusline() - \ : '' - endif +function! airline#extensions#branch#apply() + let g:airline_current_branch = exists('*fugitive#head') && strlen(fugitive#head()) > 0 + \ ? g:airline_branch_prefix.fugitive#head() + \ : exists('*lawrencium#statusline') && strlen(lawrencium#statusline()) > 0 + \ ? g:airline_branch_prefix.lawrencium#statusline() + \ : '' +endfunction + +function! airline#extensions#branch#init(ext) + call a:ext.add_statusline_funcref(function('airline#extensions#branch#apply')) endfunction diff --git a/plugin/airline.vim b/plugin/airline.vim index cfd6197e..455b9fc8 100644 --- a/plugin/airline.vim +++ b/plugin/airline.vim @@ -48,8 +48,8 @@ call s:check_defined('g:airline_mode_map', { \ '' : 'V-BLOCK', \ }) -call s:check_defined('g:airline_section_a', '%{g:airline_current_mode_text}') -call s:check_defined('g:airline_section_b', '') +call s:check_defined('g:airline_section_a', '%{get(g:, "airline_current_mode_text", "")}') +call s:check_defined('g:airline_section_b', '%{get(g:, "airline_current_branch", "")}') call s:check_defined('g:airline_section_c', '%f%m') call s:check_defined('g:airline_section_gutter', '') call s:check_defined('g:airline_section_x', "%{strlen(&filetype)>0?&filetype:''}")