2020-01-06 10:22:49 +08:00
|
|
|
" MIT License. Copyright (c) 2013-2020 Bailey Ling et al.
|
2013-09-15 01:07:37 +08:00
|
|
|
" vim: et ts=2 sts=2 sw=2
|
2013-08-03 01:56:12 +08:00
|
|
|
|
2016-09-24 08:16:30 +08:00
|
|
|
scriptencoding utf-8
|
|
|
|
|
2013-07-24 11:00:23 +08:00
|
|
|
" generates a dictionary which defines the colors for each highlight group
|
2013-09-15 23:59:22 +08:00
|
|
|
function! airline#themes#generate_color_map(sect1, sect2, sect3, ...)
|
2013-09-15 01:07:37 +08:00
|
|
|
let palette = {
|
2013-09-27 22:34:33 +08:00
|
|
|
\ 'airline_a': [ a:sect1[0] , a:sect1[1] , a:sect1[2] , a:sect1[3] , get(a:sect1 , 4 , '') ] ,
|
|
|
|
\ 'airline_b': [ a:sect2[0] , a:sect2[1] , a:sect2[2] , a:sect2[3] , get(a:sect2 , 4 , '') ] ,
|
|
|
|
\ 'airline_c': [ a:sect3[0] , a:sect3[1] , a:sect3[2] , a:sect3[3] , get(a:sect3 , 4 , '') ] ,
|
2013-09-15 01:07:37 +08:00
|
|
|
\ }
|
|
|
|
|
2013-09-15 23:59:22 +08:00
|
|
|
if a:0 > 0
|
2013-09-15 01:07:37 +08:00
|
|
|
call extend(palette, {
|
2013-09-15 23:59:22 +08:00
|
|
|
\ 'airline_x': [ a:1[0] , a:1[1] , a:1[2] , a:1[3] , get(a:1 , 4 , '' ) ] ,
|
|
|
|
\ 'airline_y': [ a:2[0] , a:2[1] , a:2[2] , a:2[3] , get(a:2 , 4 , '' ) ] ,
|
|
|
|
\ 'airline_z': [ a:3[0] , a:3[1] , a:3[2] , a:3[3] , get(a:3 , 4 , '' ) ] ,
|
2013-09-15 01:07:37 +08:00
|
|
|
\ })
|
|
|
|
else
|
|
|
|
call extend(palette, {
|
2013-09-23 22:53:51 +08:00
|
|
|
\ 'airline_x': [ a:sect3[0] , a:sect3[1] , a:sect3[2] , a:sect3[3] , '' ] ,
|
|
|
|
\ 'airline_y': [ a:sect2[0] , a:sect2[1] , a:sect2[2] , a:sect2[3] , '' ] ,
|
|
|
|
\ 'airline_z': [ a:sect1[0] , a:sect1[1] , a:sect1[2] , a:sect1[3] , '' ] ,
|
2013-09-15 01:07:37 +08:00
|
|
|
\ })
|
|
|
|
endif
|
|
|
|
|
|
|
|
return palette
|
2013-07-09 09:22:04 +08:00
|
|
|
endfunction
|
2013-08-04 09:25:35 +08:00
|
|
|
|
|
|
|
function! airline#themes#get_highlight(group, ...)
|
2013-09-02 10:57:32 +08:00
|
|
|
return call('airline#highlighter#get_highlight', [a:group] + a:000)
|
2013-08-04 09:25:35 +08:00
|
|
|
endfunction
|
|
|
|
|
|
|
|
function! airline#themes#get_highlight2(fg, bg, ...)
|
2013-09-02 10:57:32 +08:00
|
|
|
return call('airline#highlighter#get_highlight2', [a:fg, a:bg] + a:000)
|
2013-08-04 09:25:35 +08:00
|
|
|
endfunction
|
2013-08-10 04:08:36 +08:00
|
|
|
|
2013-08-18 11:25:24 +08:00
|
|
|
function! airline#themes#patch(palette)
|
2013-09-01 22:06:25 +08:00
|
|
|
for mode in keys(a:palette)
|
2018-11-07 20:49:22 +08:00
|
|
|
if mode == 'accents'
|
|
|
|
continue
|
|
|
|
endif
|
2013-09-01 22:06:25 +08:00
|
|
|
if !has_key(a:palette[mode], 'airline_warning')
|
2016-02-17 06:32:38 +08:00
|
|
|
let a:palette[mode]['airline_warning'] = [ '#000000', '#df5f00', 232, 166 ]
|
2015-12-26 13:10:55 +08:00
|
|
|
endif
|
|
|
|
if !has_key(a:palette[mode], 'airline_error')
|
2016-02-03 03:32:30 +08:00
|
|
|
let a:palette[mode]['airline_error'] = [ '#000000', '#990000', 232, 160 ]
|
2013-09-01 22:06:25 +08:00
|
|
|
endif
|
2017-08-22 21:30:15 +08:00
|
|
|
if !has_key(a:palette[mode], 'airline_term')
|
2018-06-05 04:44:46 +08:00
|
|
|
let a:palette[mode]['airline_term'] = [ '#9cffd3', '#202020', 85, 232]
|
2017-08-22 21:30:15 +08:00
|
|
|
endif
|
2013-09-01 22:06:25 +08:00
|
|
|
endfor
|
2013-09-18 11:13:32 +08:00
|
|
|
|
|
|
|
let a:palette.accents = get(a:palette, 'accents', {})
|
2013-12-21 01:02:34 +08:00
|
|
|
let a:palette.accents.none = [ '', '', '', '', '' ]
|
2013-09-20 11:24:27 +08:00
|
|
|
let a:palette.accents.bold = [ '', '', '', '', 'bold' ]
|
|
|
|
let a:palette.accents.italic = [ '', '', '', '', 'italic' ]
|
|
|
|
|
2013-09-18 11:13:32 +08:00
|
|
|
if !has_key(a:palette.accents, 'red')
|
|
|
|
let a:palette.accents.red = [ '#ff0000' , '' , 160 , '' ]
|
|
|
|
endif
|
2013-09-18 11:55:39 +08:00
|
|
|
if !has_key(a:palette.accents, 'green')
|
|
|
|
let a:palette.accents.green = [ '#008700' , '' , 22 , '' ]
|
|
|
|
endif
|
|
|
|
if !has_key(a:palette.accents, 'blue')
|
|
|
|
let a:palette.accents.blue = [ '#005fff' , '' , 27 , '' ]
|
|
|
|
endif
|
|
|
|
if !has_key(a:palette.accents, 'yellow')
|
|
|
|
let a:palette.accents.yellow = [ '#dfff00' , '' , 190 , '' ]
|
|
|
|
endif
|
|
|
|
if !has_key(a:palette.accents, 'orange')
|
|
|
|
let a:palette.accents.orange = [ '#df5f00' , '' , 166 , '' ]
|
|
|
|
endif
|
|
|
|
if !has_key(a:palette.accents, 'purple')
|
|
|
|
let a:palette.accents.purple = [ '#af00df' , '' , 128 , '' ]
|
|
|
|
endif
|
2013-08-18 11:25:24 +08:00
|
|
|
endfunction
|