From cb830ca66004bd893c465e0734d26639829ad03d Mon Sep 17 00:00:00 2001 From: itchyny Date: Thu, 22 Aug 2013 19:48:52 +0900 Subject: [PATCH] add Tomorrow colorscheme --- autoload/lightline.vim | 2 +- autoload/lightline/colorscheme.vim | 39 ++++++++++++- autoload/lightline/colorscheme/Tomorrow.vim | 55 +++++++++++++++++++ autoload/lightline/colorscheme/jellybeans.vim | 4 +- 4 files changed, 95 insertions(+), 5 deletions(-) create mode 100644 autoload/lightline/colorscheme/Tomorrow.vim diff --git a/autoload/lightline.vim b/autoload/lightline.vim index e472df8..3aaa961 100644 --- a/autoload/lightline.vim +++ b/autoload/lightline.vim @@ -3,7 +3,7 @@ " Version: 0.0 " Author: itchyny " License: MIT License -" Last Change: 2013/08/22 19:05:48. +" Last Change: 2013/08/22 19:31:24. " ============================================================================= let s:save_cpo = &cpo diff --git a/autoload/lightline/colorscheme.vim b/autoload/lightline/colorscheme.vim index 6eef464..8fd5e94 100644 --- a/autoload/lightline/colorscheme.vim +++ b/autoload/lightline/colorscheme.vim @@ -98,13 +98,48 @@ let s:guicolor = { \ 'green' : '#859900', \ } +function! s:convert(rgb) + let rgb = map(matchlist(a:rgb, '#\(..\)\(..\)\(..\)')[1:3], '0 + ("0x".v:val)') + if len(rgb) == 0 + return 0 + endif + if rgb[0] == 0xc0 && rgb[1] == 0xc0 && rgb[2] == 0xc0 + return 7 + elseif rgb[0] == 0x80 && rgb[1] == 0x80 && rgb[2] == 0x80 + return 8 + elseif (rgb[0] == 0x80 || rgb[0] == 0x00) && (rgb[1] == 0x80 || rgb[1] == 0x00) && (rgb[2] == 0x80 || rgb[2] == 0x00) + return (rgb[0] / 0x80) + (rgb[1] / 0x80) * 2 + (rgb[1] / 0x80) * 4 + elseif abs(rgb[0]-rgb[1]) < 3 && abs(rgb[1]-rgb[2]) < 3 && abs(rgb[2]-rgb[0]) < 3 + return s:black((rgb[0] + rgb[1] + rgb[2]) / 3) + else + return 16 + ((s:nr(rgb[0]) * 6) + s:nr(rgb[1])) * 6 + s:nr(rgb[2]) + endif +endfunction + +function! s:black(x) + if a:x < 0x04 + return 16 + elseif a:x > 0xf4 + return 231 + elseif index([0x00, 0x5f, 0x87, 0xaf, 0xdf, 0xff], a:x) >= 0 + let l = a:x / 0x30 + return ((l * 6) + l) * 6 + l + 16 + else + return 232 + (a:x < 8 ? 0 : a:x < 0x60 ? (a:x-8)/10 : a:x < 0x76 ? (a:x-0x60)/6+9 : (a:x-8)/10) + endif +endfunction + +function! s:nr(x) + return a:x < 0x2f ? 0 : a:x < 0x73 ? 1 : a:x < 0x9b ? 2 : a:x < 0xc7 ? 3 : a:x < 0xef ? 4 : 5 +endfunction + function! lightline#colorscheme#fill(p) for k in values(a:p) for l in values(k) for m in l if len(m) < 4 && type(m[0]) == 1 && type(m[1]) == 1 - call insert(m, get(s:cuicolor, m[0], 15), 2) - call insert(m, get(s:cuicolor, m[1], 15), 3) + call insert(m, get(s:cuicolor, m[0], s:convert(m[0])), 2) + call insert(m, get(s:cuicolor, m[1], s:convert(m[1])), 3) let m[0] = get(s:guicolor, m[0], m[0]) let m[1] = get(s:guicolor, m[1], m[1]) endif diff --git a/autoload/lightline/colorscheme/Tomorrow.vim b/autoload/lightline/colorscheme/Tomorrow.vim new file mode 100644 index 0000000..2074167 --- /dev/null +++ b/autoload/lightline/colorscheme/Tomorrow.vim @@ -0,0 +1,55 @@ +" ============================================================================= +" Filename: autoload/lightline/colorscheme/Tomorrow.vim +" Version: 0.0 +" Author: itchyny +" License: MIT License +" Last Change: 2013/08/22 19:47:24. +" ============================================================================= +if &background ==# 'light' + let s:base03 = '#fafafa' + let s:base023 = '#dfdfdf' + let s:base02 = '#c8c8c8' + let s:base01 = '#b4b4b4' + let s:base00 = '#808080' + let s:base0 = '#666666' + let s:base1 = '#555555' + let s:base2 = '#4f4f4f' + let s:base3 = '#4d4d4c' + let s:red = '#c82829' + let s:orange = '#f5871f' + let s:yellow = '#eab700' + let s:green = '#718c00' + let s:cyan = '#3e999f' + let s:blue = '#4271ae' + let s:magenta = '#8959a8' +else + let s:base3 = '#c5c8c6' + let s:base2 = '#bababa' + let s:base1 = '#a0a0a0' + let s:base0 = '#909090' + let s:base00 = '#666666' + let s:base01 = '#555555' + let s:base02 = '#434343' + let s:base023 = '#303030' + let s:base03 = '#1d1f21' + let s:red = '#cc6666' + let s:orange = '#de935f' + let s:yellow = '#f0c674' + let s:green = '#b5bd68' + let s:cyan = '#8abeb7' + let s:blue = '#81a2be' + let s:magenta = '#b294bb' +endif + +let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}} +let s:p.normal.left = [ [ s:base02, s:blue ], [ s:base3, s:base01 ] ] +let s:p.normal.right = [ [ s:base02, s:base0 ], [ s:base1, s:base01 ], [ s:base0, s:base02 ] ] +let s:p.inactive.right = [ [ s:base02, s:base01 ], [ s:base0, s:base02 ], [ s:base0, s:base02 ] ] +let s:p.inactive.left = [ [ s:base0, s:base02 ], [ s:base00, s:base03 ] ] +let s:p.insert.left = [ [ s:base02, s:green ], [ s:base3, s:base01 ] ] +let s:p.replace.left = [ [ s:base02, s:orange ], [ s:base3, s:base01 ] ] +let s:p.visual.left = [ [ s:base02, s:magenta ], [ s:base3, s:base01 ] ] +let s:p.normal.middle = [ [ s:base02, s:base02 ] ] +let s:p.inactive.middle = [ [ s:base023, s:base023 ] ] + +let g:lightline#colorscheme#Tomorrow#palette = lightline#colorscheme#fill(s:p) diff --git a/autoload/lightline/colorscheme/jellybeans.vim b/autoload/lightline/colorscheme/jellybeans.vim index 5158b34..2c04809 100644 --- a/autoload/lightline/colorscheme/jellybeans.vim +++ b/autoload/lightline/colorscheme/jellybeans.vim @@ -1,9 +1,9 @@ " ============================================================================= -" Filename: autoload/lightline/colorscheme/wombat.vim +" Filename: autoload/lightline/colorscheme/jellybeans.vim " Version: 0.0 " Author: itchyny " License: MIT License -" Last Change: 2013/08/22 18:50:17. +" Last Change: 2013/08/22 19:40:13. " ============================================================================= let s:base03 = [ '#151513', 233 ] let s:base02 = [ '#30302c ', 236 ]