Merge branch 'dev'
This commit is contained in:
commit
b460822c84
@ -26,6 +26,18 @@ function! airline#add_inactive_statusline_func(name)
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#load_theme()
|
function! airline#load_theme()
|
||||||
|
if exists('*airline#themes#{g:airline_theme}#refresh')
|
||||||
|
call airline#themes#{g:airline_theme}#refresh()
|
||||||
|
endif
|
||||||
|
|
||||||
|
let palette = g:airline#themes#{g:airline_theme}#palette
|
||||||
|
call airline#themes#patch(palette)
|
||||||
|
|
||||||
|
if exists('g:airline_theme_patch_func')
|
||||||
|
let Fn = function(g:airline_theme_patch_func)
|
||||||
|
call Fn(palette)
|
||||||
|
endif
|
||||||
|
|
||||||
call airline#highlighter#load_theme()
|
call airline#highlighter#load_theme()
|
||||||
call airline#extensions#load_theme()
|
call airline#extensions#load_theme()
|
||||||
endfunction
|
endfunction
|
||||||
@ -40,15 +52,8 @@ function! airline#switch_theme(name)
|
|||||||
return
|
return
|
||||||
else
|
else
|
||||||
let g:airline_theme = 'dark'
|
let g:airline_theme = 'dark'
|
||||||
let palette = g:airline#themes#dark#palette
|
|
||||||
endif
|
endif
|
||||||
endtry
|
endtry
|
||||||
call airline#themes#patch(palette)
|
|
||||||
|
|
||||||
if exists('g:airline_theme_patch_func')
|
|
||||||
let Fn = function(g:airline_theme_patch_func)
|
|
||||||
call Fn(palette)
|
|
||||||
endif
|
|
||||||
|
|
||||||
let w:airline_lastmode = ''
|
let w:airline_lastmode = ''
|
||||||
call airline#update_statusline()
|
call airline#update_statusline()
|
||||||
|
@ -28,7 +28,6 @@ function! s:prototype.add_section(group, contents)
|
|||||||
let content_parts = split(a:contents, '__accent')
|
let content_parts = split(a:contents, '__accent')
|
||||||
for cpart in content_parts
|
for cpart in content_parts
|
||||||
let accent = matchstr(cpart, '_\zs[^#]*\ze')
|
let accent = matchstr(cpart, '_\zs[^#]*\ze')
|
||||||
call airline#highlighter#add_accent(a:group, accent)
|
|
||||||
call add(contents, cpart)
|
call add(contents, cpart)
|
||||||
endfor
|
endfor
|
||||||
let line = join(contents, a:group)
|
let line = join(contents, a:group)
|
||||||
|
@ -94,28 +94,6 @@ function! airline#highlighter#add_separator(from, to, inverse)
|
|||||||
call <sid>exec_separator({}, a:from, a:to, a:inverse, '')
|
call <sid>exec_separator({}, a:from, a:to, a:inverse, '')
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#highlighter#add_accent(group, accent)
|
|
||||||
let p = g:airline#themes#{g:airline_theme}#palette
|
|
||||||
if exists('p.accents')
|
|
||||||
if has_key(p.accents, a:accent)
|
|
||||||
for kvp in items(p)
|
|
||||||
let mode_colors = kvp[1]
|
|
||||||
if has_key(mode_colors, a:group)
|
|
||||||
let colors = copy(mode_colors[a:group])
|
|
||||||
if p.accents[a:accent][0] != ''
|
|
||||||
let colors[0] = p.accents[a:accent][0]
|
|
||||||
endif
|
|
||||||
if p.accents[a:accent][2] != ''
|
|
||||||
let colors[2] = p.accents[a:accent][2]
|
|
||||||
endif
|
|
||||||
let colors[4] = get(p.accents[a:accent], 4, '')
|
|
||||||
let mode_colors[a:group.'_'.a:accent] = colors
|
|
||||||
endif
|
|
||||||
endfor
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! airline#highlighter#highlight_modified_inactive(bufnr)
|
function! airline#highlighter#highlight_modified_inactive(bufnr)
|
||||||
if getbufvar(a:bufnr, '&modified')
|
if getbufvar(a:bufnr, '&modified')
|
||||||
let colors = exists('g:airline#themes#{g:airline_theme}#palette.inactive_modified.airline_c')
|
let colors = exists('g:airline#themes#{g:airline_theme}#palette.inactive_modified.airline_c')
|
||||||
@ -131,6 +109,8 @@ function! airline#highlighter#highlight_modified_inactive(bufnr)
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! airline#highlighter#highlight(modes)
|
function! airline#highlighter#highlight(modes)
|
||||||
|
let p = g:airline#themes#{g:airline_theme}#palette
|
||||||
|
|
||||||
" draw the base mode, followed by any overrides
|
" draw the base mode, followed by any overrides
|
||||||
let mapped = map(a:modes, 'v:val == a:modes[0] ? v:val : a:modes[0]."_".v:val')
|
let mapped = map(a:modes, 'v:val == a:modes[0] ? v:val : a:modes[0]."_".v:val')
|
||||||
let suffix = a:modes[0] == 'inactive' ? '_inactive' : ''
|
let suffix = a:modes[0] == 'inactive' ? '_inactive' : ''
|
||||||
@ -138,7 +118,24 @@ function! airline#highlighter#highlight(modes)
|
|||||||
if exists('g:airline#themes#{g:airline_theme}#palette[mode]')
|
if exists('g:airline#themes#{g:airline_theme}#palette[mode]')
|
||||||
let dict = g:airline#themes#{g:airline_theme}#palette[mode]
|
let dict = g:airline#themes#{g:airline_theme}#palette[mode]
|
||||||
for kvp in items(dict)
|
for kvp in items(dict)
|
||||||
call airline#highlighter#exec(kvp[0].suffix, kvp[1])
|
let mode_colors = kvp[1]
|
||||||
|
call airline#highlighter#exec(kvp[0].suffix, mode_colors)
|
||||||
|
|
||||||
|
for accent in keys(p.accents)
|
||||||
|
let colors = copy(mode_colors)
|
||||||
|
if p.accents[accent][0] != ''
|
||||||
|
let colors[0] = p.accents[accent][0]
|
||||||
|
endif
|
||||||
|
if p.accents[accent][2] != ''
|
||||||
|
let colors[2] = p.accents[accent][2]
|
||||||
|
endif
|
||||||
|
if len(colors) >= 5
|
||||||
|
let colors[4] = get(p.accents[accent], 4, '')
|
||||||
|
else
|
||||||
|
call add(colors, get(p.accents[accent], 4, ''))
|
||||||
|
endif
|
||||||
|
call airline#highlighter#exec(kvp[0].suffix.'_'.accent, colors)
|
||||||
|
endfor
|
||||||
endfor
|
endfor
|
||||||
|
|
||||||
" TODO: optimize this
|
" TODO: optimize this
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
function! s:load_constant()
|
if get(g:, 'airline#themes#base16#constant', 0)
|
||||||
let g:airline#themes#base16#palette = {}
|
let g:airline#themes#base16#palette = {}
|
||||||
|
|
||||||
" Color palette
|
" Color palette
|
||||||
@ -60,9 +60,8 @@ function! s:load_constant()
|
|||||||
let g:airline#themes#base16#palette.inactive_modified = {
|
let g:airline#themes#base16#palette.inactive_modified = {
|
||||||
\ 'airline_c': [s:gui_orange, '', s:cterm_orange, '', ''],
|
\ 'airline_c': [s:gui_orange, '', s:cterm_orange, '', ''],
|
||||||
\ }
|
\ }
|
||||||
endfunction
|
else
|
||||||
|
function! airline#themes#base16#refresh()
|
||||||
function! s:load_dynamic()
|
|
||||||
let g:airline#themes#base16#palette = {}
|
let g:airline#themes#base16#palette = {}
|
||||||
|
|
||||||
let g:airline#themes#base16#palette.accents = {
|
let g:airline#themes#base16#palette.accents = {
|
||||||
@ -102,15 +101,7 @@ function! s:load_dynamic()
|
|||||||
let g:airline#themes#base16#palette.inactive_modified = {
|
let g:airline#themes#base16#palette.inactive_modified = {
|
||||||
\ 'airline_c': [ group[0], '', group[2], '', '' ]
|
\ 'airline_c': [ group[0], '', group[2], '', '' ]
|
||||||
\ }
|
\ }
|
||||||
endfunction
|
endfunction
|
||||||
|
call airline#themes#base16#refresh()
|
||||||
if get(g:, 'airline#themes#base16#constant', 0)
|
|
||||||
call s:load_constant()
|
|
||||||
else
|
|
||||||
call s:load_dynamic()
|
|
||||||
augroup airline_base16
|
|
||||||
autocmd!
|
|
||||||
autocmd ColorScheme * call <sid>load_dynamic() | call airline#load_theme()
|
|
||||||
augroup END
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
let g:airline#themes#jellybeans#palette = {}
|
let g:airline#themes#jellybeans#palette = {}
|
||||||
|
|
||||||
function! s:generate()
|
" The name of the function must be 'refresh'.
|
||||||
|
function! airline#themes#jellybeans#refresh()
|
||||||
" This theme is an example of how to use helper functions to extract highlight
|
" This theme is an example of how to use helper functions to extract highlight
|
||||||
" values from the corresponding colorscheme. It was written in a hurry, so it
|
" values from the corresponding colorscheme. It was written in a hurry, so it
|
||||||
" is very minimalistic. If you are a jellybeans user and want to make updates,
|
" is very minimalistic. If you are a jellybeans user and want to make updates,
|
||||||
@ -47,8 +48,5 @@ function! s:generate()
|
|||||||
let g:airline#themes#jellybeans#palette.inactive_modified = g:airline#themes#jellybeans#palette.normal_modified
|
let g:airline#themes#jellybeans#palette.inactive_modified = g:airline#themes#jellybeans#palette.normal_modified
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
call s:generate()
|
call airline#themes#jellybeans#refresh()
|
||||||
augroup airline_jellybeans
|
|
||||||
autocmd!
|
|
||||||
autocmd ColorScheme * call <sid>generate()
|
|
||||||
augroup END
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
let g:airline#themes#monochrome#palette = {}
|
let g:airline#themes#monochrome#palette = {}
|
||||||
|
|
||||||
function! s:load()
|
function! airline#themes#monochrome#refresh()
|
||||||
let s:SL = airline#themes#get_highlight('StatusLine')
|
let s:SL = airline#themes#get_highlight('StatusLine')
|
||||||
let g:airline#themes#monochrome#palette.normal = airline#themes#generate_color_map(s:SL, s:SL, s:SL)
|
let g:airline#themes#monochrome#palette.normal = airline#themes#generate_color_map(s:SL, s:SL, s:SL)
|
||||||
let g:airline#themes#monochrome#palette.insert = g:airline#themes#monochrome#palette.normal
|
let g:airline#themes#monochrome#palette.insert = g:airline#themes#monochrome#palette.normal
|
||||||
@ -11,8 +11,5 @@ function! s:load()
|
|||||||
let g:airline#themes#monochrome#palette.inactive = airline#themes#generate_color_map(s:SLNC, s:SLNC, s:SLNC)
|
let g:airline#themes#monochrome#palette.inactive = airline#themes#generate_color_map(s:SLNC, s:SLNC, s:SLNC)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
call s:load()
|
call airline#themes#monochrome#refresh()
|
||||||
augroup airline_monochrome
|
|
||||||
autocmd!
|
|
||||||
autocmd ColorScheme * call <sid>load()
|
|
||||||
augroup END
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
let g:airline#themes#solarized#palette = {}
|
let g:airline#themes#solarized#palette = {}
|
||||||
|
|
||||||
function! s:generate()
|
function! airline#themes#solarized#refresh()
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""
|
""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
" Options
|
" Options
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""
|
""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
@ -169,8 +169,5 @@ function! s:generate()
|
|||||||
\ s:N2[0].g, s:N2[1].g, s:N2[0].t, s:N2[1].t, s:N2[2]]
|
\ s:N2[0].g, s:N2[1].g, s:N2[0].t, s:N2[1].t, s:N2[2]]
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
call s:generate()
|
call airline#themes#solarized#refresh()
|
||||||
augroup airline_solarized
|
|
||||||
autocmd!
|
|
||||||
autocmd ColorScheme * call <sid>generate() | call airline#load_theme()
|
|
||||||
augroup END
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
let g:airline#themes#tomorrow#palette = {}
|
let g:airline#themes#tomorrow#palette = {}
|
||||||
|
|
||||||
function! s:generate()
|
function! airline#themes#tomorrow#refresh()
|
||||||
let g:airline#themes#tomorrow#palette.accents = {
|
let g:airline#themes#tomorrow#palette.accents = {
|
||||||
\ 'red': airline#themes#get_highlight('Constant'),
|
\ 'red': airline#themes#get_highlight('Constant'),
|
||||||
\ }
|
\ }
|
||||||
@ -40,8 +40,5 @@ function! s:generate()
|
|||||||
\ }
|
\ }
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
call s:generate()
|
call airline#themes#tomorrow#refresh()
|
||||||
augroup airline_tomorrow
|
|
||||||
autocmd!
|
|
||||||
autocmd ColorScheme * call <sid>generate() | call airline#load_theme()
|
|
||||||
augroup END
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
let g:airline#themes#zenburn#palette = {}
|
let g:airline#themes#zenburn#palette = {}
|
||||||
|
|
||||||
function! s:generate()
|
function! airline#themes#zenburn#refresh()
|
||||||
let g:airline#themes#zenburn#palette.accents = {
|
let g:airline#themes#zenburn#palette.accents = {
|
||||||
\ 'red': airline#themes#get_highlight('Constant'),
|
\ 'red': airline#themes#get_highlight('Constant'),
|
||||||
\ }
|
\ }
|
||||||
@ -40,9 +40,5 @@ function! s:generate()
|
|||||||
\ }
|
\ }
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
call s:generate()
|
call airline#themes#zenburn#refresh()
|
||||||
augroup airline_zenburn
|
|
||||||
autocmd!
|
|
||||||
autocmd ColorScheme * call <sid>generate()
|
|
||||||
augroup END
|
|
||||||
|
|
||||||
|
@ -11,10 +11,10 @@ describe 'highlighter'
|
|||||||
|
|
||||||
it 'should populate accent colors'
|
it 'should populate accent colors'
|
||||||
Expect exists('g:airline#themes#dark#palette.normal.airline_c_red') to_be_false
|
Expect exists('g:airline#themes#dark#palette.normal.airline_c_red') to_be_false
|
||||||
Expect exists('g:airline#themes#dark#palette.insert.airline_c_red') to_be_false
|
Expect hlID('airline_c_red') == 0
|
||||||
call airline#highlighter#add_accent('airline_c', 'red')
|
call airline#themes#patch(g:airline#themes#dark#palette)
|
||||||
Expect exists('g:airline#themes#dark#palette.normal.airline_c_red') to_be_true
|
call airline#highlighter#highlight(['normal'])
|
||||||
Expect exists('g:airline#themes#dark#palette.insert.airline_c_red') to_be_true
|
Expect hlID('airline_c_red') != 0
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user