From a9fc5fc62ea5c44b6329ecca0fc1a23ac964968f Mon Sep 17 00:00:00 2001 From: Eric Nielsen Date: Sun, 7 Aug 2016 11:30:03 -0500 Subject: [PATCH] Fix solarized themes colors - Use colors according to http://ethanschoonover.com/solarized#usage-development, namely dark mode core colors are only base1, base0, base01, base03, base03 - 'altercation/vim-colors-solarized' also uses base00 in dark mode for the VertSplit highlight, so use this too (has more contrast) - Use colors as to optimize contrast, and as to make the same scheme work for light mode by just inverting the colors (base03 becomes base3 and so on, as in 'altercation/vim-colors-solarized') - Refactor removing duplicate code --- autoload/lightline/colorscheme/solarized.vim | 85 ++++++++++++++++++- .../lightline/colorscheme/solarized_dark.vim | 73 ---------------- .../lightline/colorscheme/solarized_light.vim | 80 ----------------- 3 files changed, 81 insertions(+), 157 deletions(-) delete mode 100644 autoload/lightline/colorscheme/solarized_dark.vim delete mode 100644 autoload/lightline/colorscheme/solarized_light.vim diff --git a/autoload/lightline/colorscheme/solarized.vim b/autoload/lightline/colorscheme/solarized.vim index 2695c35..fc8a244 100644 --- a/autoload/lightline/colorscheme/solarized.vim +++ b/autoload/lightline/colorscheme/solarized.vim @@ -2,10 +2,87 @@ " Filename: autoload/lightline/colorscheme/solarized.vim " Author: itchyny " License: MIT License -" Last Change: 2013/08/27 10:24:28. +" Last Change: 2016/08/07 11:13:00. " ============================================================================= -if &background ==# 'light' - let g:lightline#colorscheme#solarized#palette = g:lightline#colorscheme#solarized_light#palette + +let s:cuicolors = { + \ 'base03': [ '8', '234', 'DarkGray' ], + \ 'base02': [ '0', '235', 'Black' ], + \ 'base01': [ '10', '239', 'LightGreen' ], + \ 'base00': [ '11', '240', 'LightYellow' ], + \ 'base0': [ '12', '244', 'LightBlue' ], + \ 'base1': [ '14', '245', 'LightCyan' ], + \ 'base2': [ '7', '187', 'LightGray' ], + \ 'base3': [ '15', '230', 'White' ], + \ 'yellow': [ '3', '136', 'DarkYellow' ], + \ 'orange': [ '9', '166', 'LightRed' ], + \ 'red': [ '1', '124', 'DarkRed' ], + \ 'magenta': [ '5', '125', 'DarkMagenta' ], + \ 'violet': [ '13', '61', 'LightMagenta' ], + \ 'blue': [ '4', '33', 'DarkBlue' ], + \ 'cyan': [ '6', '37', 'DarkCyan' ], + \ 'green': [ '2', '64', 'DarkGreen' ], + \ } + +" The following condition only applies for the console and is the same +" condition vim-colors-solarized uses to determine which set of colors +" to use. +let s:solarized_termcolors = get(g:, 'solarized_termcolors', 256) +if s:solarized_termcolors != 256 && &t_Co >= 16 + let s:cuiindex = 0 +elseif s:solarized_termcolors == 256 + let s:cuiindex = 1 else - let g:lightline#colorscheme#solarized#palette = g:lightline#colorscheme#solarized_dark#palette + let s:cuiindex = 2 endif + +let s:base03 = [ '#002b36', s:cuicolors.base03[s:cuiindex] ] +let s:base02 = [ '#073642', s:cuicolors.base02[s:cuiindex] ] +let s:base01 = [ '#586e75', s:cuicolors.base01[s:cuiindex] ] +let s:base00 = [ '#657b83', s:cuicolors.base00[s:cuiindex] ] +let s:base0 = [ '#839496', s:cuicolors.base0[s:cuiindex] ] +let s:base1 = [ '#93a1a1', s:cuicolors.base1[s:cuiindex] ] +let s:base2 = [ '#eee8d5', s:cuicolors.base2[s:cuiindex] ] +let s:base3 = [ '#fdf6e3', s:cuicolors.base3[s:cuiindex] ] +let s:yellow = [ '#b58900', s:cuicolors.yellow[s:cuiindex] ] +let s:orange = [ '#cb4b16', s:cuicolors.orange[s:cuiindex] ] +let s:red = [ '#dc322f', s:cuicolors.red[s:cuiindex] ] +let s:magenta = [ '#d33682', s:cuicolors.magenta[s:cuiindex] ] +let s:violet = [ '#6c71c4', s:cuicolors.violet[s:cuiindex] ] +let s:blue = [ '#268bd2', s:cuicolors.blue[s:cuiindex] ] +let s:cyan = [ '#2aa198', s:cuicolors.cyan[s:cuiindex] ] +let s:green = [ '#859900', s:cuicolors.green[s:cuiindex] ] + +if &background ==# 'light' + let s:temp03 = s:base03 + let s:temp02 = s:base02 + let s:temp01 = s:base01 + let s:temp00 = s:base00 + let s:base03 = s:base3 + let s:base02 = s:base2 + let s:base01 = s:base1 + let s:base00 = s:base0 + let s:base0 = s:temp00 + let s:base1 = s:temp01 + let s:base2 = s:temp02 + let s:base3 = s:temp03 +endif + +let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}} +let s:p.normal.left = [ [ s:base03, s:blue ], [ s:base03, s:base00 ] ] +let s:p.normal.right = [ [ s:base03, s:base1 ], [ s:base03, s:base00 ] ] +let s:p.inactive.right = [ [ s:base03, s:base00 ], [ s:base0, s:base02 ] ] +let s:p.inactive.left = [ [ s:base0, s:base02 ], [ s:base0, s:base02 ] ] +let s:p.insert.left = [ [ s:base03, s:green ], [ s:base03, s:base00 ] ] +let s:p.replace.left = [ [ s:base03, s:red ], [ s:base03, s:base00 ] ] +let s:p.visual.left = [ [ s:base03, s:magenta ], [ s:base03, s:base00 ] ] +let s:p.normal.middle = [ [ s:base1, s:base02 ] ] +let s:p.inactive.middle = [ [ s:base01, s:base02 ] ] +let s:p.tabline.left = [ [ s:base03, s:base00 ] ] +let s:p.tabline.tabsel = [ [ s:base03, s:base1 ] ] +let s:p.tabline.middle = [ [ s:base0, s:base02 ] ] +let s:p.tabline.right = copy(s:p.normal.right) +let s:p.normal.error = [ [ s:base03, s:red ] ] +let s:p.normal.warning = [ [ s:base03, s:yellow ] ] + +let g:lightline#colorscheme#solarized#palette = lightline#colorscheme#flatten(s:p) diff --git a/autoload/lightline/colorscheme/solarized_dark.vim b/autoload/lightline/colorscheme/solarized_dark.vim deleted file mode 100644 index 37a3dc7..0000000 --- a/autoload/lightline/colorscheme/solarized_dark.vim +++ /dev/null @@ -1,73 +0,0 @@ -" ============================================================================= -" Filename: autoload/lightline/colorscheme/solarized_dark.vim -" Author: itchyny -" License: MIT License -" Last Change: 2014/05/31 01:04:15. -" ============================================================================= - -let s:cuicolors = { - \ 'base03': [ '8', '234', 'DarkGray' ], - \ 'base02': [ '0', '235', 'Black' ], - \ 'base01': [ '10', '239', 'LightGreen' ], - \ 'base00': [ '11', '240', 'LightYellow' ], - \ 'base0': [ '12', '244', 'LightBlue' ], - \ 'base1': [ '14', '245', 'LightCyan' ], - \ 'base2': [ '7', '187', 'LightGray' ], - \ 'base3': [ '15', '230', 'White' ], - \ 'yellow': [ '3', '136', 'DarkYellow' ], - \ 'orange': [ '9', '166', 'LightRed' ], - \ 'red': [ '1', '124', 'DarkRed' ], - \ 'magenta': [ '5', '125', 'DarkMagenta' ], - \ 'violet': [ '13', '61', 'LightMagenta' ], - \ 'blue': [ '4', '33', 'DarkBlue' ], - \ 'cyan': [ '6', '37', 'DarkCyan' ], - \ 'green': [ '2', '64', 'DarkGreen' ], - \ } - -" The following condition only applies for the console and is the same -" condition vim-colors-solarized uses to determine which set of colors -" to use. -let s:solarized_termcolors = get(g:, 'solarized_termcolors', 256) -if s:solarized_termcolors != 256 && &t_Co >= 16 - let s:cuiindex = 0 -elseif s:solarized_termcolors == 256 - let s:cuiindex = 1 -else - let s:cuiindex = 2 -endif - -let s:base03 = [ '#002b36', s:cuicolors.base03[s:cuiindex] ] -let s:base02 = [ '#073642', s:cuicolors.base02[s:cuiindex] ] -let s:base01 = [ '#586e75', s:cuicolors.base01[s:cuiindex] ] -let s:base00 = [ '#657b83', s:cuicolors.base00[s:cuiindex] ] -let s:base0 = [ '#839496', s:cuicolors.base0[s:cuiindex] ] -let s:base1 = [ '#93a1a1', s:cuicolors.base1[s:cuiindex] ] -let s:base2 = [ '#eee8d5', s:cuicolors.base2[s:cuiindex] ] -let s:base3 = [ '#fdf6e3', s:cuicolors.base3[s:cuiindex] ] -let s:yellow = [ '#b58900', s:cuicolors.yellow[s:cuiindex] ] -let s:orange = [ '#cb4b16', s:cuicolors.orange[s:cuiindex] ] -let s:red = [ '#dc322f', s:cuicolors.red[s:cuiindex] ] -let s:magenta = [ '#d33682', s:cuicolors.magenta[s:cuiindex] ] -let s:violet = [ '#6c71c4', s:cuicolors.violet[s:cuiindex] ] -let s:blue = [ '#268bd2', s:cuicolors.blue[s:cuiindex] ] -let s:cyan = [ '#2aa198', s:cuicolors.cyan[s:cuiindex] ] -let s:green = [ '#859900', s:cuicolors.green[s:cuiindex] ] - -let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}} -let s:p.normal.left = [ [ s:base3, s:blue ], [ s:base3, s:base01 ] ] -let s:p.normal.right = [ [ s:base02, s:base0 ], [ s:base1, s:base01 ] ] -let s:p.inactive.right = [ [ s:base02, s:base01 ], [ s:base00, s:base02 ] ] -let s:p.inactive.left = [ [ s:base0, s:base02 ], [ s:base00, s:base02 ] ] -let s:p.insert.left = [ [ s:base3, s:green ], [ s:base3, s:base01 ] ] -let s:p.replace.left = [ [ s:base3, s:red ], [ s:base3, s:base01 ] ] -let s:p.visual.left = [ [ s:base3, s:magenta ], [ s:base3, s:base01 ] ] -let s:p.normal.middle = [ [ s:base1, s:base02 ] ] -let s:p.inactive.middle = [ [ s:base0, s:base02 ] ] -let s:p.tabline.left = [ [ s:base1, s:base00 ] ] -let s:p.tabline.tabsel = [ [ s:base3, s:base0 ] ] -let s:p.tabline.middle = [ [ s:base01, s:base02 ] ] -let s:p.tabline.right = copy(s:p.normal.right) -let s:p.normal.error = [ [ s:base2, s:red ] ] -let s:p.normal.warning = [ [ s:base02, s:yellow ] ] - -let g:lightline#colorscheme#solarized_dark#palette = lightline#colorscheme#flatten(s:p) diff --git a/autoload/lightline/colorscheme/solarized_light.vim b/autoload/lightline/colorscheme/solarized_light.vim deleted file mode 100644 index 99046af..0000000 --- a/autoload/lightline/colorscheme/solarized_light.vim +++ /dev/null @@ -1,80 +0,0 @@ -" ============================================================================= -" Filename: autoload/lightline/colorscheme/solarized_light.vim -" Author: itchyny -" License: MIT License -" Last Change: 2014/05/31 01:04:21. -" ============================================================================= - -let s:cuicolors = { - \ 'base03': [ '8', '234', 'DarkGray' ], - \ 'base02': [ '0', '235', 'Black' ], - \ 'base01': [ '10', '239', 'LightGreen' ], - \ 'base00': [ '11', '240', 'LightYellow' ], - \ 'base0': [ '12', '244', 'LightBlue' ], - \ 'base1': [ '14', '245', 'LightCyan' ], - \ 'base2': [ '7', '187', 'LightGray' ], - \ 'base3': [ '15', '230', 'White' ], - \ 'yellow': [ '3', '136', 'DarkYellow' ], - \ 'orange': [ '9', '166', 'LightRed' ], - \ 'red': [ '1', '124', 'DarkRed' ], - \ 'magenta': [ '5', '125', 'DarkMagenta' ], - \ 'violet': [ '13', '61', 'LightMagenta' ], - \ 'blue': [ '4', '33', 'DarkBlue' ], - \ 'cyan': [ '6', '37', 'DarkCyan' ], - \ 'green': [ '2', '64', 'DarkGreen' ], - \ } - -" The following condition only applies for the console and is the same -" condition vim-colors-solarized uses to determine which set of colors -" to use. -let s:solarized_termcolors = get(g:, 'solarized_termcolors', 256) -if s:solarized_termcolors != 256 && &t_Co >= 16 - let s:cuiindex = 0 -elseif s:solarized_termcolors == 256 - let s:cuiindex = 1 -else - let s:cuiindex = 2 -endif - -let s:base03 = [ '#002b36', s:cuicolors.base03[s:cuiindex] ] -let s:base02 = [ '#073642', s:cuicolors.base02[s:cuiindex] ] -let s:base01 = [ '#586e75', s:cuicolors.base01[s:cuiindex] ] -let s:base00 = [ '#657b83', s:cuicolors.base00[s:cuiindex] ] -let s:base0 = [ '#839496', s:cuicolors.base0[s:cuiindex] ] -let s:base1 = [ '#93a1a1', s:cuicolors.base1[s:cuiindex] ] -let s:base2 = [ '#eee8d5', s:cuicolors.base2[s:cuiindex] ] -let s:base3 = [ '#fdf6e3', s:cuicolors.base3[s:cuiindex] ] -let s:yellow = [ '#b58900', s:cuicolors.yellow[s:cuiindex] ] -let s:orange = [ '#cb4b16', s:cuicolors.orange[s:cuiindex] ] -let s:red = [ '#dc322f', s:cuicolors.red[s:cuiindex] ] -let s:magenta = [ '#d33682', s:cuicolors.magenta[s:cuiindex] ] -let s:violet = [ '#6c71c4', s:cuicolors.violet[s:cuiindex] ] -let s:blue = [ '#268bd2', s:cuicolors.blue[s:cuiindex] ] -let s:cyan = [ '#2aa198', s:cuicolors.cyan[s:cuiindex] ] -let s:green = [ '#859900', s:cuicolors.green[s:cuiindex] ] - -let [s:base03, s:base3] = [s:base3, s:base03] -let [s:base02, s:base2] = [s:base2, s:base02] -let [s:base01, s:base1] = [s:base1, s:base01] -let [s:base00, s:base0] = [s:base0, s:base00] - -let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}} -let s:p.normal.left = [ [ s:base3, s:blue ], [ s:base3, s:base01 ] ] -let s:p.normal.right = [ [ s:base02, s:base0 ], [ s:base1, s:base01 ] ] -let s:p.inactive.right = [ [ s:base02, s:base01 ], [ s:base00, s:base02 ] ] -let s:p.inactive.left = [ [ s:base0, s:base02 ], [ s:base00, s:base02 ] ] -let s:p.insert.left = [ [ s:base3, s:green ], [ s:base3, s:base01 ] ] -let s:p.replace.left = [ [ s:base3, s:red ], [ s:base3, s:base01 ] ] -let s:p.visual.left = [ [ s:base3, s:magenta ], [ s:base3, s:base01 ] ] -let s:p.normal.middle = [ [ s:base1, s:base02 ] ] -let s:p.inactive.middle = [ [ s:base0, s:base02 ] ] -let s:p.tabline.left = [ [ s:base2, s:base01 ] ] -let s:p.tabline.tabsel = [ [ s:base2, s:base03 ] ] -let s:p.tabline.middle = [ [ s:base1, s:base02 ] ] -let s:p.tabline.right = copy(s:p.normal.right) -let s:p.normal.error = [ [ s:red, s:base01 ] ] -let s:p.normal.warning = [ [ s:yellow, s:base01 ] ] -let s:p.normal.error = [ [ s:base02, s:red ] ] -let s:p.normal.warning = [ [ s:base2, s:yellow ] ] - -let g:lightline#colorscheme#solarized_light#palette = lightline#colorscheme#flatten(s:p)