fix parts being undefined when referenced by sections in vimrc (#207).

This commit is contained in:
Bailey Ling 2013-09-25 22:13:57 -04:00
parent c8ef456a25
commit d123e3583a
3 changed files with 13 additions and 10 deletions

View File

@ -14,6 +14,8 @@ function! airline#init#bootstrap()
endif endif
let s:loaded = 1 let s:loaded = 1
let g:airline#init#bootstrapping = 1
call s:check_defined('g:airline_left_sep', get(g:, 'airline_powerline_fonts', 0)?"":">") call s:check_defined('g:airline_left_sep', get(g:, 'airline_powerline_fonts', 0)?"":">")
call s:check_defined('g:airline_left_alt_sep', get(g:, 'airline_powerline_fonts', 0)?"":">") call s:check_defined('g:airline_left_alt_sep', get(g:, 'airline_powerline_fonts', 0)?"":">")
call s:check_defined('g:airline_right_sep', get(g:, 'airline_powerline_fonts', 0)?"":"<") call s:check_defined('g:airline_right_sep', get(g:, 'airline_powerline_fonts', 0)?"":"<")
@ -61,10 +63,6 @@ function! airline#init#bootstrap()
\ 'modified': '+', \ 'modified': '+',
\ 'space': ' ', \ 'space': ' ',
\ }, 'keep') \ }, 'keep')
endfunction
function! airline#init#sections()
let g:airline#init#initializing_sections = 1
call airline#parts#define('mode', { call airline#parts#define('mode', {
\ 'function': 'airline#parts#mode', \ 'function': 'airline#parts#mode',
@ -82,6 +80,10 @@ function! airline#init#sections()
call airline#parts#define_function('ffenc', 'airline#parts#ffenc') call airline#parts#define_function('ffenc', 'airline#parts#ffenc')
call airline#parts#define_empty(['hunks', 'branch', 'tagbar', 'syntastic', 'whitespace']) call airline#parts#define_empty(['hunks', 'branch', 'tagbar', 'syntastic', 'whitespace'])
unlet g:airline#init#bootstrapping
endfunction
function! airline#init#sections()
let spc = g:airline_symbols.space let spc = g:airline_symbols.space
if !exists('g:airline_section_a') if !exists('g:airline_section_a')
let g:airline_section_a = airline#section#create_left(['mode', 'paste', 'iminsert']) let g:airline_section_a = airline#section#create_left(['mode', 'paste', 'iminsert'])
@ -107,7 +109,5 @@ function! airline#init#sections()
if !exists('g:airline_section_warning') if !exists('g:airline_section_warning')
let g:airline_section_warning = airline#section#create(['syntastic', 'whitespace']) let g:airline_section_warning = airline#section#create(['syntastic', 'whitespace'])
endif endif
unlet g:airline#init#initializing_sections
endfunction endfunction

View File

@ -7,7 +7,7 @@ let s:parts = {}
function! airline#parts#define(key, config) function! airline#parts#define(key, config)
let s:parts[a:key] = get(s:parts, a:key, {}) let s:parts[a:key] = get(s:parts, a:key, {})
if exists('g:airline#init#initializing_sections') if exists('g:airline#init#bootstrapping')
call extend(s:parts[a:key], a:config, 'keep') call extend(s:parts[a:key], a:config, 'keep')
else else
call extend(s:parts[a:key], a:config, 'force') call extend(s:parts[a:key], a:config, 'force')

View File

@ -1,6 +1,3 @@
call airline#init#bootstrap()
call airline#extensions#load()
function! SectionSpec() function! SectionSpec()
endfunction endfunction
@ -11,6 +8,11 @@ describe 'section'
call airline#parts#define_function('func', 'SectionSpec') call airline#parts#define_function('func', 'SectionSpec')
end end
it 'should be able to reference default parts'
let s = airline#section#create(['paste'])
Expect s == '%{airline#util#wrap(airline#parts#paste(),0)}'
end
it 'should create sections with no separators' it 'should create sections with no separators'
let s = airline#section#create(['text', 'raw', 'func']) let s = airline#section#create(['text', 'raw', 'func'])
Expect s == '%{airline#util#wrap("text",0)}raw%{airline#util#wrap(SectionSpec(),0)}' Expect s == '%{airline#util#wrap("text",0)}raw%{airline#util#wrap(SectionSpec(),0)}'
@ -43,6 +45,7 @@ describe 'section'
end end
it 'should parse out a section from the distro' it 'should parse out a section from the distro'
call airline#extensions#load()
let s = airline#section#create(['whitespace']) let s = airline#section#create(['whitespace'])
Expect s =~ 'airline#extensions#whitespace#check' Expect s =~ 'airline#extensions#whitespace#check'
end end