" Base16 {{scheme-name}} vim-airline-theme (https://github.com/dawikur/base16-vim-airline-themes)
" For vim-airline (https://github.com/vim-airline/vim-airline)
" By {{scheme-author}}


let g:airline#themes#theme#palette = {}

" GUI color definitions
let s:gui00 = '#{{base00-hex}}'
let s:gui01 = '#{{base01-hex}}'
let s:gui02 = '#{{base02-hex}}'
let s:gui03 = '#{{base03-hex}}'
let s:gui04 = '#{{base04-hex}}'
let s:gui05 = '#{{base05-hex}}'
let s:gui06 = '#{{base06-hex}}'
let s:gui07 = '#{{base07-hex}}'
let s:gui08 = '#{{base08-hex}}'
let s:gui09 = '#{{base09-hex}}'
let s:gui0A = '#{{base0A-hex}}'
let s:gui0B = '#{{base0B-hex}}'
let s:gui0C = '#{{base0C-hex}}'
let s:gui0D = '#{{base0D-hex}}'
let s:gui0E = '#{{base0E-hex}}'
let s:gui0F = '#{{base0F-hex}}'

" Terminal color definitions
let s:cterm00        = "00"
let s:cterm03        = "08"
let s:cterm05        = "07"
let s:cterm07        = "15"
let s:cterm08        = "01"
let s:cterm0A        = "03"
let s:cterm0B        = "02"
let s:cterm0C        = "06"
let s:cterm0D        = "04"
let s:cterm0E        = "05"
if exists("base16colorspace") && base16colorspace == "256"
	let s:cterm01        = "18"
	let s:cterm02        = "19"
	let s:cterm04        = "20"
	let s:cterm06        = "21"
	let s:cterm09        = "16"
	let s:cterm0F        = "17"
else
	let s:cterm01        = "10"
	let s:cterm02        = "11"
	let s:cterm04        = "12"
	let s:cterm06        = "13"
	let s:cterm09        = "09"
	let s:cterm0F        = "14"
endif

let s:N1   = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ]
let s:N2   = [ s:gui06, s:gui03, s:cterm06, s:cterm03 ]
let s:N3   = [ s:gui09, s:gui02, s:cterm09, s:cterm02 ]
let g:airline#themes#theme#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3)
let g:airline#themes#theme#palette.normal_modified = { 'airline_c': [ s:gui0A, '', s:cterm0A, '' ] }


let s:I1   = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ]
let s:I2   = [ s:gui06, s:gui03, s:cterm06, s:cterm03 ]
let s:I3   = [ s:gui09, s:gui02, s:cterm09, s:cterm02 ]
let g:airline#themes#theme#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3)
let g:airline#themes#theme#palette.insert_modified = g:airline#themes#theme#palette.normal_modified
let g:airline#themes#theme#palette.insert_paste = { 'airline_a': s:I3 }


let s:R1   = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ]
let s:R2   = [ s:gui06, s:gui03, s:cterm06, s:cterm03 ]
let s:R3   = [ s:gui09, s:gui02, s:cterm09, s:cterm02 ]
let g:airline#themes#theme#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3)
let g:airline#themes#theme#palette.replace_modified = g:airline#themes#theme#palette.normal_modified


let s:V1   = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ]
let s:V2   = [ s:gui06, s:gui03, s:cterm06, s:cterm03 ]
let s:V3   = [ s:gui09, s:gui02, s:cterm09, s:cterm02 ]
let g:airline#themes#theme#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3)
let g:airline#themes#theme#palette.visual_modified = g:airline#themes#theme#palette.normal_modified


let s:IA1   = [ s:gui05, s:gui02, s:cterm05, s:cterm02 ]
let s:IA2   = [ s:gui05, s:gui02, s:cterm05, s:cterm02 ]
let s:IA3   = [ s:gui05, s:gui02, s:cterm05, s:cterm02 ]
let g:airline#themes#theme#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3)
let g:airline#themes#theme#palette.inactive_modified = g:airline#themes#theme#palette.normal_modified

let g:airline#themes#theme#palette.normal.airline_warning =
      \ [ s:gui01, s:gui09, s:cterm01, s:cterm09 ]

let g:airline#themes#theme#palette.insert.airline_warning =
      \ [ s:gui01, s:gui09, s:cterm01, s:cterm09 ]

let g:airline#themes#theme#palette.visual.airline_warning =
      \ [ s:gui01, s:gui09, s:cterm01, s:cterm09 ]

let g:airline#themes#theme#palette.replace.airline_warning =
      \ [ s:gui01, s:gui09, s:cterm01, s:cterm09 ]

let g:airline#themes#theme#palette.inactive.airline_warning =
      \ [ s:gui05, s:gui09, s:cterm05, s:cterm09 ]

let g:airline#themes#theme#palette.normal_modified.airline_warning =
      \ [ s:gui05, s:gui09, s:cterm05, s:cterm09 ]

let g:airline#themes#theme#palette.insert_modified.airline_warning =
      \ [ s:gui05, s:gui09, s:cterm05, s:cterm09 ]

let g:airline#themes#theme#palette.visual_modified.airline_warning =
      \ [ s:gui05, s:gui09, s:cterm05, s:cterm09 ]

let g:airline#themes#theme#palette.replace_modified.airline_warning =
      \ [ s:gui05, s:gui09, s:cterm05, s:cterm09 ]

let g:airline#themes#theme#palette.insert_paste.airline_warning =
      \ [ s:gui05, s:gui09, s:cterm05, s:cterm09 ]



let g:airline#themes#theme#palette.normal.airline_error =
      \ [ s:gui01, s:gui08, s:cterm01, s:cterm08 ]

let g:airline#themes#theme#palette.insert.airline_error =
      \ [ s:gui01, s:gui08, s:cterm01, s:cterm08 ]

let g:airline#themes#theme#palette.visual.airline_error =
      \ [ s:gui01, s:gui08, s:cterm01, s:cterm08 ]

let g:airline#themes#theme#palette.replace.airline_error =
      \ [ s:gui01, s:gui08, s:cterm01, s:cterm08 ]

let g:airline#themes#theme#palette.inactive.airline_error =
      \ [ s:gui05, s:gui08, s:cterm05, s:cterm08 ]

let g:airline#themes#theme#palette.normal_modified.airline_error =
      \ [ s:gui05, s:gui08, s:cterm05, s:cterm08 ]

let g:airline#themes#theme#palette.insert_modified.airline_error =
      \ [ s:gui05, s:gui08, s:cterm05, s:cterm08 ]

let g:airline#themes#theme#palette.visual_modified.airline_error =
      \ [ s:gui05, s:gui08, s:cterm05, s:cterm08 ]

let g:airline#themes#theme#palette.replace_modified.airline_error =
      \ [ s:gui05, s:gui08, s:cterm05, s:cterm08 ]

let g:airline#themes#theme#palette.insert_paste.airline_error =
      \ [ s:gui05, s:gui08, s:cterm05, s:cterm08 ]


" g Here we define the color map for ctrlp.  We check for the g:loaded_ctrlp
" variable so that related functionality is loaded iff the user is using
" ctrlp. Note that this is optional, and if you do not define ctrlp colors
" they will be chosen automatically from the existing palette.
if !get(g:, 'loaded_ctrlp', 0)
  finish
endif
let g:airline#themes#theme#palette.ctrlp = airline#extensions#ctrlp#generate_color_map(
      \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ],
      \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ],
      \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ])

" Remove color variables
unlet s:gui00 s:gui01 s:gui02 s:gui03 s:gui04 s:gui05 s:gui06 s:gui07 s:gui08 s:gui09 s:gui0A s:gui0B s:gui0C s:gui0D s:gui0E s:gui0F
unlet s:cterm00 s:cterm01 s:cterm02 s:cterm03 s:cterm04 s:cterm05 s:cterm06 s:cterm07 s:cterm08 s:cterm09 s:cterm0A s:cterm0B s:cterm0C s:cterm0D s:cterm0E s:cterm0F
