diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 29028c1..f67dff7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -8,17 +8,15 @@ Please read this document before submitting a Pull Request. ### Background Information -onedark.vim, its companion [lightline.vim](https://github.com/itchyny/lightline.vim) and [vim-airline](https://github.com/vim-airline/vim-airline) themes, and its companion Xresources color palette file are built using a rudimentary templating and build system that allows color definitions to live in a single, central file. (Additional terminal color palette files are themselves generated from the template-produced Xresources file.) +onedark.vim's shared color definitions file `autoload/onedark.vim` and its companion Xresources color palette file are built using a rudimentary templating and build system that allows color definitions to live in a single, central file. (Additional terminal color palette files are themselves generated from the template-produced Xresources file.) -The basic idea is that the theme files are generated by a build tool that substitutes color values into templates that live in `build/templates`. +The basic idea is that these files are generated by a build tool that substitutes color values into templates that live in `build/templates`. -Here are the locations of the theme files that are generated by the build system, along with the locations of the corresponding templates they are generated from: +Here are the locations of the files that are generated by the build system, along with the locations of the corresponding templates they are generated from: | Theme Location | Template Location | |----------------------------------------------|------------------------------------------| -| `colors/onedark.vim` | `build/templates/onedark.template.vim` | -| `autoload/lightline/colorscheme/onedark.vim` | `build/templates/lightline.template.vim` | -| `autoload/airline/themes/onedark.vim` | `build/templates/airline.template.vim` | +| `autoload/onedark.vim` | `build/templates/autoload.template.vim` | | `term/One Dark.Xresources` | `build/templates/One Dark.Xresources` | ### Configure It diff --git a/README.md b/README.md index 1f9902e..1f992ea 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ A dark Vim/Neovim color scheme for the GUI and 16/256/true-color terminals, base ## Installation -1. Install the theme using your Vim plug-in manager of choice, or by manually placing `colors/onedark.vim` in your `~/.vim/colors/` directory. +1. Install the theme using your Vim plug-in manager of choice (or manually, by placing `colors/onedark.vim` in your `~/.vim/colors/` directory and `autoload/onedark.vim` in your `~/.vim/autoload/` directory.) 2. If you use Vim in a terminal, do the following to test whether your terminal emulator supports [24-bit/"true" color](https://gist.github.com/XVilka/8346728), then add relevant `~/.vimrc` configuration if so: @@ -67,7 +67,7 @@ This repository includes a companion [lightline.vim](https://github.com/itchyny/ The lightline.vim colorscheme: -* Depends on onedark.vim for its colors, and must therefore be used in conjunction with it. +* Depends on `autoload/onedark.vim` for its colors, and must therefore be used in conjunction with it. * Works with both color modes available in onedark.vim (16 or 256 colors), as specified in the configuration for onedark.vim. ### Installation @@ -90,7 +90,7 @@ This repository includes a companion [vim-airline](https://github.com/vim-airlin The vim-airline theme: -* Depends on onedark.vim for its colors, and must therefore be used in conjunction with it. +* Depends on `autoload/onedark.vim` for its colors, and must therefore be used in conjunction with it. * Works with both color modes available in onedark.vim (16 or 256 colors), as specified in the configuration for onedark.vim. * Is based on vim-airline's ["tomorrow" theme](https://github.com/vim-airline/vim-airline-themes/blob/master/autoload/airline/themes/tomorrow.vim). @@ -168,6 +168,17 @@ if (has("autocmd") && !has("gui")) end ``` +You can also override a color across all highlights by adding the color definitions to the `g:onedark_color_overrides` dictionary in your `~/.vimrc` like so: + +```vim +let g:onedark_color_overrides = { +\ "black": {"gui": "#2F343F", "cterm": "235", "cterm16": "0" }, +\ "purple": { "gui": "#C678DF", "cterm": "170", "cterm16": "5" } +\} +``` + +This also needs to be done **before** `colorscheme onedark`. + More examples of highlight group names and style data can be found in onedark.vim's source code (`colors/onedark.vim` inside this repository). ### tmux theme diff --git a/autoload/airline/themes/onedark.vim b/autoload/airline/themes/onedark.vim index 26a925f..bd01234 100644 --- a/autoload/airline/themes/onedark.vim +++ b/autoload/airline/themes/onedark.vim @@ -5,36 +5,37 @@ " It is based on vim-airline's ["tomorrow" theme](https://github.com/vim-airline/vim-airline-themes/blob/master/autoload/airline/themes/tomorrow.vim). function! airline#themes#onedark#refresh() + let s:colors = onedark#GetColors() if get(g:, 'onedark_termcolors', 256) == 16 - let s:term_red = 1 - let s:term_green = 2 - let s:term_yellow = 3 - let s:term_blue = 4 - let s:term_purple = 5 - let s:term_white = 7 - let s:term_black = 0 - let s:term_grey = 8 + let s:term_red = s:colors.red.cterm16 + let s:term_green = s:colors.green.cterm16 + let s:term_yellow = s:colors.yellow.cterm16 + let s:term_blue = s:colors.blue.cterm16 + let s:term_purple = s:colors.purple.cterm16 + let s:term_white = s:colors.white.cterm16 + let s:term_black = s:colors.black.cterm16 + let s:term_grey = s:colors.cursor_grey.cterm16 else - let s:term_red = 204 - let s:term_green = 114 - let s:term_yellow = 180 - let s:term_blue = 39 - let s:term_purple = 170 - let s:term_white = 145 - let s:term_black = 235 - let s:term_grey = 236 + let s:term_red = s:colors.red.cterm + let s:term_green = s:colors.green.cterm + let s:term_yellow = s:colors.yellow.cterm + let s:term_blue = s:colors.blue.cterm + let s:term_purple = s:colors.purple.cterm + let s:term_white = s:colors.white.cterm + let s:term_black = s:colors.black.cterm + let s:term_grey = s:colors.cursor_grey.cterm endif let g:airline#themes#onedark#palette = {} let g:airline#themes#onedark#palette.accents = { - \ 'red': [ '#E06C75', '', s:term_red, 0 ] + \ 'red': [ s:colors.red.gui, '', s:term_red, 0 ] \ } - let s:N1 = [ '#282C34', '#98C379', s:term_black, s:term_green ] - let s:N2 = [ '#ABB2BF', '#3E4452', s:term_white, s:term_grey ] - let s:N3 = [ '#98C379', '#282C34', s:term_green, '' ] + let s:N1 = [ s:colors.black.gui, s:colors.green.gui, s:term_black, s:term_green ] + let s:N2 = [ s:colors.white.gui, s:colors.visual_grey.gui, s:term_white, s:term_grey ] + let s:N3 = [ s:colors.green.gui, s:colors.black.gui, s:term_green, '' ] let g:airline#themes#onedark#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) let group = airline#themes#get_highlight('vimCommand') @@ -42,26 +43,26 @@ function! airline#themes#onedark#refresh() \ 'airline_c': [ group[0], '', group[2], '', '' ] \ } - let s:I1 = [ '#282C34', '#61AFEF', s:term_black, s:term_blue ] + let s:I1 = [ s:colors.black.gui, s:colors.blue.gui, s:term_black, s:term_blue ] let s:I2 = s:N2 - let s:I3 = [ '#61AFEF', '#282C34', s:term_blue, '' ] + let s:I3 = [ s:colors.blue.gui, s:colors.black.gui, s:term_blue, '' ] let g:airline#themes#onedark#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) let g:airline#themes#onedark#palette.insert_modified = g:airline#themes#onedark#palette.normal_modified - let s:R1 = [ '#282C34', '#E06C75', s:term_black, s:term_red ] + let s:R1 = [ s:colors.black.gui, s:colors.red.gui, s:term_black, s:term_red ] let s:R2 = s:N2 - let s:R3 = [ '#E06C75', '#282C34', s:term_red, '' ] + let s:R3 = [ s:colors.red.gui, s:colors.black.gui, s:term_red, '' ] let g:airline#themes#onedark#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) let g:airline#themes#onedark#palette.replace_modified = g:airline#themes#onedark#palette.normal_modified - let s:V1 = [ '#282C34', '#C678DD', s:term_black, s:term_purple ] + let s:V1 = [ s:colors.black.gui, s:colors.purple.gui, s:term_black, s:term_purple ] let s:V2 = s:N2 - let s:V3 = [ '#C678DD', '#282C34', s:term_purple, '' ] + let s:V3 = [ s:colors.purple.gui, s:colors.black.gui, s:term_purple, '' ] let g:airline#themes#onedark#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) let g:airline#themes#onedark#palette.visual_modified = g:airline#themes#onedark#palette.normal_modified - let s:IA1 = [ '#282C34', '#ABB2BF', s:term_black, s:term_white ] - let s:IA2 = [ '#ABB2BF', '#3E4452', s:term_white, s:term_grey ] + let s:IA1 = [ s:colors.black.gui, s:colors.white.gui, s:term_black, s:term_white ] + let s:IA2 = [ s:colors.white.gui, s:colors.visual_grey.gui, s:term_white, s:term_grey ] let s:IA3 = s:N2 let g:airline#themes#onedark#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) let g:airline#themes#onedark#palette.inactive_modified = { @@ -71,7 +72,7 @@ function! airline#themes#onedark#refresh() " Warning/Error styling code from vim-airline's ["base16" theme](https://github.com/vim-airline/vim-airline-themes/blob/master/autoload/airline/themes/base16.vim) " Warnings - let s:WI = [ '#282C34', '#E5C07B', s:term_black, s:term_yellow ] + let s:WI = [ s:colors.black.gui, s:colors.yellow.gui, s:term_black, s:term_yellow ] let g:airline#themes#onedark#palette.normal.airline_warning = [ \ s:WI[0], s:WI[1], s:WI[2], s:WI[3] \ ] @@ -98,7 +99,7 @@ function! airline#themes#onedark#refresh() \ g:airline#themes#onedark#palette.normal.airline_warning " Errors - let s:ER = [ '#282C34', '#E06C75', s:term_black, s:term_red ] + let s:ER = [ s:colors.black.gui, s:colors.red.gui, s:term_black, s:term_red ] let g:airline#themes#onedark#palette.normal.airline_error = [ \ s:ER[0], s:ER[1], s:ER[2], s:ER[3] \ ] diff --git a/autoload/lightline/colorscheme/onedark.vim b/autoload/lightline/colorscheme/onedark.vim index ea7ca9d..10f9a0b 100644 --- a/autoload/lightline/colorscheme/onedark.vim +++ b/autoload/lightline/colorscheme/onedark.vim @@ -3,34 +3,36 @@ " This is a [lightline.vim](https://github.com/itchyny/lightline.vim) colorscheme for use with " the [onedark.vim](https://github.com/joshdick/onedark.vim) colorscheme. +let s:colors = onedark#GetColors() + if get(g:, 'onedark_termcolors', 256) == 16 - let s:term_red = 1 - let s:term_green = 2 - let s:term_yellow = 3 - let s:term_blue = 4 - let s:term_purple = 5 - let s:term_white = 7 - let s:term_black = 0 - let s:term_grey = 8 + let s:term_red = s:colors.red.cterm16 + let s:term_green = s:colors.green.cterm16 + let s:term_yellow = s:colors.yellow.cterm16 + let s:term_blue = s:colors.blue.cterm16 + let s:term_purple = s:colors.purple.cterm16 + let s:term_white = s:colors.white.cterm16 + let s:term_black = s:colors.black.cterm16 + let s:term_grey = s:colors.cursor_grey.cterm16 else - let s:term_red = 204 - let s:term_green = 114 - let s:term_yellow = 180 - let s:term_blue = 39 - let s:term_purple = 170 - let s:term_white = 145 - let s:term_black = 235 - let s:term_grey = 236 + let s:term_red = s:colors.red.cterm + let s:term_green = s:colors.green.cterm + let s:term_yellow = s:colors.yellow.cterm + let s:term_blue = s:colors.blue.cterm + let s:term_purple = s:colors.purple.cterm + let s:term_white = s:colors.white.cterm + let s:term_black = s:colors.black.cterm + let s:term_grey = s:colors.cursor_grey.cterm endif -let s:red = [ '#E06C75', s:term_red ] -let s:green = [ '#98C379', s:term_green ] -let s:yellow = [ '#E5C07B', s:term_yellow ] -let s:blue = [ '#61AFEF', s:term_blue ] -let s:purple = [ '#C678DD', s:term_purple ] -let s:white = [ '#ABB2BF', s:term_white ] -let s:black = [ '#282C34', s:term_black ] -let s:grey = [ '#3E4452', s:term_grey ] +let s:red = [ s:colors.red.gui, s:term_red ] +let s:green = [ s:colors.green.gui, s:term_green ] +let s:yellow = [ s:colors.yellow.gui, s:term_yellow ] +let s:blue = [ s:colors.blue.gui, s:term_blue ] +let s:purple = [ s:colors.purple.gui, s:term_purple ] +let s:white = [ s:colors.white.gui, s:term_white ] +let s:black = [ s:colors.black.gui, s:term_black ] +let s:grey = [ s:colors.visual_grey.gui, s:term_grey ] let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}} let s:p.normal.left = [ [ s:black, s:green ], [ s:white, s:grey ] ] diff --git a/autoload/onedark.vim b/autoload/onedark.vim new file mode 100644 index 0000000..054a430 --- /dev/null +++ b/autoload/onedark.vim @@ -0,0 +1,28 @@ +" [onedark.vim](https://github.com/joshdick/onedark.vim/) + +let s:overrides = get(g:, "onedark_color_overrides", {}) + +let s:colors = { + \ "red": get(s:overrides, "red", { "gui": "#E06C75", "cterm": "204", "cterm16": "1" }), + \ "dark_red": get(s:overrides, "dark_red", { "gui": "#BE5046", "cterm": "196", "cterm16": "9" }), + \ "green": get(s:overrides, "green", { "gui": "#98C379", "cterm": "114", "cterm16": "2" }), + \ "yellow": get(s:overrides, "yellow", { "gui": "#E5C07B", "cterm": "180", "cterm16": "3" }), + \ "dark_yellow": get(s:overrides, "dark_yellow", { "gui": "#D19A66", "cterm": "173", "cterm16": "11" }), + \ "blue": get(s:overrides, "blue", { "gui": "#61AFEF", "cterm": "39", "cterm16": "4" }), + \ "purple": get(s:overrides, "purple", { "gui": "#C678DD", "cterm": "170", "cterm16": "5" }), + \ "cyan": get(s:overrides, "cyan", { "gui": "#56B6C2", "cterm": "38", "cterm16": "6" }), + \ "white": get(s:overrides, "white", { "gui": "#ABB2BF", "cterm": "145", "cterm16": "7" }), + \ "black": get(s:overrides, "black", { "gui": "#282C34", "cterm": "235", "cterm16": "0" }), + \ "visual_black": get(s:overrides, "visual_black", { "gui": "NONE", "cterm": "NONE", "cterm16": "0" }), + \ "comment_grey": get(s:overrides, "comment_grey", { "gui": "#5C6370", "cterm": "59", "cterm16": "15" }), + \ "gutter_fg_grey": get(s:overrides, "gutter_fg_grey", { "gui": "#4B5263", "cterm": "238", "cterm16": "15" }), + \ "cursor_grey": get(s:overrides, "cursor_grey", { "gui": "#2C323C", "cterm": "236", "cterm16": "8" }), + \ "visual_grey": get(s:overrides, "visual_grey", { "gui": "#3E4452", "cterm": "237", "cterm16": "15" }), + \ "menu_grey": get(s:overrides, "menu_grey", { "gui": "#3E4452", "cterm": "237", "cterm16": "8" }), + \ "special_grey": get(s:overrides, "special_grey", { "gui": "#3B4048", "cterm": "238", "cterm16": "15" }), + \ "vertsplit": get(s:overrides, "vertsplit", { "gui": "#181A1F", "cterm": "59", "cterm16": "15" }), + \} + +function! onedark#GetColors() + return s:colors +endfunction diff --git a/build/build.js b/build/build.js index f16ab12..91a9b50 100755 --- a/build/build.js +++ b/build/build.js @@ -43,9 +43,7 @@ const specialColors = Object.freeze({ const colors = Object.assign({}, baseColors, specialColors) const templateMap = Object.freeze({ - 'templates/onedark.template.vim': '../colors/onedark.vim', - 'templates/lightline.template.vim': '../autoload/lightline/colorscheme/onedark.vim', - 'templates/airline.template.vim': '../autoload/airline/themes/onedark.vim', + 'templates/autoload.template.vim': '../autoload/onedark.vim', 'templates/One Dark.Xresources': '../term/One Dark.Xresources' }) diff --git a/build/templates/airline.template.vim b/build/templates/airline.template.vim deleted file mode 100644 index 8d957a7..0000000 --- a/build/templates/airline.template.vim +++ /dev/null @@ -1,129 +0,0 @@ -" [onedark.vim](https://github.com/joshdick/onedark.vim/) - -" This is a [vim-airline](https://github.com/vim-airline/vim-airline) theme for use with -" the [onedark.vim](https://github.com/joshdick/onedark.vim) colorscheme. - -" It is based on vim-airline's ["tomorrow" theme](https://github.com/vim-airline/vim-airline-themes/blob/master/autoload/airline/themes/tomorrow.vim). -function! airline#themes#onedark#refresh() - - if get(g:, 'onedark_termcolors', 256) == 16 - let s:term_red = <%=it.red.cterm16%> - let s:term_green = <%=it.green.cterm16%> - let s:term_yellow = <%=it.yellow.cterm16%> - let s:term_blue = <%=it.blue.cterm16%> - let s:term_purple = <%=it.purple.cterm16%> - let s:term_white = <%=it.white.cterm16%> - let s:term_black = <%=it.black.cterm16%> - let s:term_grey = <%=it.cursor_grey.cterm16%> - else - let s:term_red = <%=it.red.cterm%> - let s:term_green = <%=it.green.cterm%> - let s:term_yellow = <%=it.yellow.cterm%> - let s:term_blue = <%=it.blue.cterm%> - let s:term_purple = <%=it.purple.cterm%> - let s:term_white = <%=it.white.cterm%> - let s:term_black = <%=it.black.cterm%> - let s:term_grey = <%=it.cursor_grey.cterm%> - endif - - let g:airline#themes#onedark#palette = {} - - let g:airline#themes#onedark#palette.accents = { - \ 'red': [ '<%=it.red.gui%>', '', s:term_red, 0 ] - \ } - - let s:N1 = [ '<%=it.black.gui%>', '<%=it.green.gui%>', s:term_black, s:term_green ] - let s:N2 = [ '<%=it.white.gui%>', '<%=it.visual_grey.gui%>', s:term_white, s:term_grey ] - let s:N3 = [ '<%=it.green.gui%>', '<%=it.black.gui%>', s:term_green, '' ] - let g:airline#themes#onedark#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) - - let group = airline#themes#get_highlight('vimCommand') - let g:airline#themes#onedark#palette.normal_modified = { - \ 'airline_c': [ group[0], '', group[2], '', '' ] - \ } - - let s:I1 = [ '<%=it.black.gui%>', '<%=it.blue.gui%>', s:term_black, s:term_blue ] - let s:I2 = s:N2 - let s:I3 = [ '<%=it.blue.gui%>', '<%=it.black.gui%>', s:term_blue, '' ] - let g:airline#themes#onedark#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) - let g:airline#themes#onedark#palette.insert_modified = g:airline#themes#onedark#palette.normal_modified - - let s:R1 = [ '<%=it.black.gui%>', '<%=it.red.gui%>', s:term_black, s:term_red ] - let s:R2 = s:N2 - let s:R3 = [ '<%=it.red.gui%>', '<%=it.black.gui%>', s:term_red, '' ] - let g:airline#themes#onedark#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) - let g:airline#themes#onedark#palette.replace_modified = g:airline#themes#onedark#palette.normal_modified - - let s:V1 = [ '<%=it.black.gui%>', '<%=it.purple.gui%>', s:term_black, s:term_purple ] - let s:V2 = s:N2 - let s:V3 = [ '<%=it.purple.gui%>', '<%=it.black.gui%>', s:term_purple, '' ] - let g:airline#themes#onedark#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) - let g:airline#themes#onedark#palette.visual_modified = g:airline#themes#onedark#palette.normal_modified - - let s:IA1 = [ '<%=it.black.gui%>', '<%=it.white.gui%>', s:term_black, s:term_white ] - let s:IA2 = [ '<%=it.white.gui%>', '<%=it.visual_grey.gui%>', s:term_white, s:term_grey ] - let s:IA3 = s:N2 - let g:airline#themes#onedark#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) - let g:airline#themes#onedark#palette.inactive_modified = { - \ 'airline_c': [ group[0], '', group[2], '', '' ] - \ } - - " Warning/Error styling code from vim-airline's ["base16" theme](https://github.com/vim-airline/vim-airline-themes/blob/master/autoload/airline/themes/base16.vim) - - " Warnings - let s:WI = [ '<%=it.black.gui%>', '<%=it.yellow.gui%>', s:term_black, s:term_yellow ] - let g:airline#themes#onedark#palette.normal.airline_warning = [ - \ s:WI[0], s:WI[1], s:WI[2], s:WI[3] - \ ] - - let g:airline#themes#onedark#palette.normal_modified.airline_warning = - \ g:airline#themes#onedark#palette.normal.airline_warning - - let g:airline#themes#onedark#palette.insert.airline_warning = - \ g:airline#themes#onedark#palette.normal.airline_warning - - let g:airline#themes#onedark#palette.insert_modified.airline_warning = - \ g:airline#themes#onedark#palette.normal.airline_warning - - let g:airline#themes#onedark#palette.visual.airline_warning = - \ g:airline#themes#onedark#palette.normal.airline_warning - - let g:airline#themes#onedark#palette.visual_modified.airline_warning = - \ g:airline#themes#onedark#palette.normal.airline_warning - - let g:airline#themes#onedark#palette.replace.airline_warning = - \ g:airline#themes#onedark#palette.normal.airline_warning - - let g:airline#themes#onedark#palette.replace_modified.airline_warning = - \ g:airline#themes#onedark#palette.normal.airline_warning - - " Errors - let s:ER = [ '<%=it.black.gui%>', '<%=it.red.gui%>', s:term_black, s:term_red ] - let g:airline#themes#onedark#palette.normal.airline_error = [ - \ s:ER[0], s:ER[1], s:ER[2], s:ER[3] - \ ] - - let g:airline#themes#onedark#palette.normal_modified.airline_error = - \ g:airline#themes#onedark#palette.normal.airline_error - - let g:airline#themes#onedark#palette.insert.airline_error = - \ g:airline#themes#onedark#palette.normal.airline_error - - let g:airline#themes#onedark#palette.insert_modified.airline_error = - \ g:airline#themes#onedark#palette.normal.airline_error - - let g:airline#themes#onedark#palette.visual.airline_error = - \ g:airline#themes#onedark#palette.normal.airline_error - - let g:airline#themes#onedark#palette.visual_modified.airline_error = - \ g:airline#themes#onedark#palette.normal.airline_error - - let g:airline#themes#onedark#palette.replace.airline_error = - \ g:airline#themes#onedark#palette.normal.airline_error - - let g:airline#themes#onedark#palette.replace_modified.airline_error = - \ g:airline#themes#onedark#palette.normal.airline_error - -endfunction - -call airline#themes#onedark#refresh() diff --git a/build/templates/autoload.template.vim b/build/templates/autoload.template.vim new file mode 100644 index 0000000..3dd3056 --- /dev/null +++ b/build/templates/autoload.template.vim @@ -0,0 +1,28 @@ +" [onedark.vim](https://github.com/joshdick/onedark.vim/) + +let s:overrides = get(g:, "onedark_color_overrides", {}) + +let s:colors = { + \ "red": get(s:overrides, "red", { "gui": "<%=it.red.gui%>", "cterm": "<%=it.red.cterm%>", "cterm16": "<%=it.red.cterm16%>" }), + \ "dark_red": get(s:overrides, "dark_red", { "gui": "<%=it.dark_red.gui%>", "cterm": "<%=it.dark_red.cterm%>", "cterm16": "<%=it.dark_red.cterm16%>" }), + \ "green": get(s:overrides, "green", { "gui": "<%=it.green.gui%>", "cterm": "<%=it.green.cterm%>", "cterm16": "<%=it.green.cterm16%>" }), + \ "yellow": get(s:overrides, "yellow", { "gui": "<%=it.yellow.gui%>", "cterm": "<%=it.yellow.cterm%>", "cterm16": "<%=it.yellow.cterm16%>" }), + \ "dark_yellow": get(s:overrides, "dark_yellow", { "gui": "<%=it.dark_yellow.gui%>", "cterm": "<%=it.dark_yellow.cterm%>", "cterm16": "<%=it.dark_yellow.cterm16%>" }), + \ "blue": get(s:overrides, "blue", { "gui": "<%=it.blue.gui%>", "cterm": "<%=it.blue.cterm%>", "cterm16": "<%=it.blue.cterm16%>" }), + \ "purple": get(s:overrides, "purple", { "gui": "<%=it.purple.gui%>", "cterm": "<%=it.purple.cterm%>", "cterm16": "<%=it.purple.cterm16%>" }), + \ "cyan": get(s:overrides, "cyan", { "gui": "<%=it.cyan.gui%>", "cterm": "<%=it.cyan.cterm%>", "cterm16": "<%=it.cyan.cterm16%>" }), + \ "white": get(s:overrides, "white", { "gui": "<%=it.white.gui%>", "cterm": "<%=it.white.cterm%>", "cterm16": "<%=it.white.cterm16%>" }), + \ "black": get(s:overrides, "black", { "gui": "<%=it.black.gui%>", "cterm": "<%=it.black.cterm%>", "cterm16": "<%=it.black.cterm16%>" }), + \ "visual_black": get(s:overrides, "visual_black", { "gui": "NONE", "cterm": "NONE", "cterm16": "<%=it.black.cterm16%>" }), + \ "comment_grey": get(s:overrides, "comment_grey", { "gui": "<%=it.comment_grey.gui%>", "cterm": "<%=it.comment_grey.cterm%>", "cterm16": "<%=it.comment_grey.cterm16%>" }), + \ "gutter_fg_grey": get(s:overrides, "gutter_fg_grey", { "gui": "<%=it.gutter_fg_grey.gui%>", "cterm": "<%=it.gutter_fg_grey.cterm%>", "cterm16": "<%=it.gutter_fg_grey.cterm16%>" }), + \ "cursor_grey": get(s:overrides, "cursor_grey", { "gui": "<%=it.cursor_grey.gui%>", "cterm": "<%=it.cursor_grey.cterm%>", "cterm16": "<%=it.cursor_grey.cterm16%>" }), + \ "visual_grey": get(s:overrides, "visual_grey", { "gui": "<%=it.visual_grey.gui%>", "cterm": "<%=it.visual_grey.cterm%>", "cterm16": "<%=it.visual_grey.cterm16%>" }), + \ "menu_grey": get(s:overrides, "menu_grey", { "gui": "<%=it.visual_grey.gui%>", "cterm": "<%=it.visual_grey.cterm%>", "cterm16": "<%=it.menu_grey.cterm16%>" }), + \ "special_grey": get(s:overrides, "special_grey", { "gui": "<%=it.special_grey.gui%>", "cterm": "<%=it.special_grey.cterm%>", "cterm16": "<%=it.special_grey.cterm16%>" }), + \ "vertsplit": get(s:overrides, "vertsplit", { "gui": "<%=it.vertsplit.gui%>", "cterm": "<%=it.vertsplit.cterm%>", "cterm16": "<%=it.vertsplit.cterm16%>" }), + \} + +function! onedark#GetColors() + return s:colors +endfunction diff --git a/build/templates/lightline.template.vim b/build/templates/lightline.template.vim deleted file mode 100644 index d982d58..0000000 --- a/build/templates/lightline.template.vim +++ /dev/null @@ -1,56 +0,0 @@ -" [onedark.vim](https://github.com/joshdick/onedark.vim/) - -" This is a [lightline.vim](https://github.com/itchyny/lightline.vim) colorscheme for use with -" the [onedark.vim](https://github.com/joshdick/onedark.vim) colorscheme. - -if get(g:, 'onedark_termcolors', 256) == 16 - let s:term_red = <%=it.red.cterm16%> - let s:term_green = <%=it.green.cterm16%> - let s:term_yellow = <%=it.yellow.cterm16%> - let s:term_blue = <%=it.blue.cterm16%> - let s:term_purple = <%=it.purple.cterm16%> - let s:term_white = <%=it.white.cterm16%> - let s:term_black = <%=it.black.cterm16%> - let s:term_grey = <%=it.cursor_grey.cterm16%> -else - let s:term_red = <%=it.red.cterm%> - let s:term_green = <%=it.green.cterm%> - let s:term_yellow = <%=it.yellow.cterm%> - let s:term_blue = <%=it.blue.cterm%> - let s:term_purple = <%=it.purple.cterm%> - let s:term_white = <%=it.white.cterm%> - let s:term_black = <%=it.black.cterm%> - let s:term_grey = <%=it.cursor_grey.cterm%> -endif - -let s:red = [ '<%=it.red.gui%>', s:term_red ] -let s:green = [ '<%=it.green.gui%>', s:term_green ] -let s:yellow = [ '<%=it.yellow.gui%>', s:term_yellow ] -let s:blue = [ '<%=it.blue.gui%>', s:term_blue ] -let s:purple = [ '<%=it.purple.gui%>', s:term_purple ] -let s:white = [ '<%=it.white.gui%>', s:term_white ] -let s:black = [ '<%=it.black.gui%>', s:term_black ] -let s:grey = [ '<%=it.visual_grey.gui%>', s:term_grey ] - -let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}} -let s:p.normal.left = [ [ s:black, s:green ], [ s:white, s:grey ] ] -let s:p.normal.right = [ [ s:black, s:green ], [ s:white, s:grey ] ] -let s:p.inactive.left = [ [ s:white, s:grey ], [ s:white, s:grey ] ] -let s:p.inactive.right = [ [ s:black, s:white ], [ s:black, s:white ] ] -let s:p.insert.left = [ [ s:black, s:blue ], [ s:white, s:grey ] ] -let s:p.insert.right = [ [ s:black, s:blue ], [ s:white, s:grey ] ] -let s:p.replace.left = [ [ s:black, s:red ], [ s:white, s:grey ] ] -let s:p.replace.right = [ [ s:black, s:red ], [ s:white, s:grey ] ] -let s:p.visual.left = [ [ s:black, s:purple ], [ s:white, s:grey ] ] -let s:p.visual.right = [ [ s:black, s:purple ], [ s:white, s:grey ] ] -let s:p.normal.middle = [ [ s:white, s:black ] ] -let s:p.inactive.middle = [ [ s:white, s:grey ] ] -let s:p.tabline.left = [ [ s:white, s:grey ] ] -let s:p.tabline.tabsel = [ [ s:black, s:white ] ] -let s:p.tabline.middle = [ [ s:white, s:black ] ] -let s:p.tabline.right = [ [ s:white, s:grey ] ] -let s:p.normal.error = [ [ s:black, s:red ] ] -let s:p.normal.warning = [ [ s:black, s:yellow ] ] - -let g:lightline#colorscheme#onedark#palette = lightline#colorscheme#flatten(s:p) - diff --git a/build/templates/onedark.template.vim b/build/templates/onedark.template.vim deleted file mode 100644 index 28d6a4d..0000000 --- a/build/templates/onedark.template.vim +++ /dev/null @@ -1,533 +0,0 @@ -" vim:fdm=marker -" Vim Color File -" Name: onedark.vim -" Maintainer: https://github.com/joshdick/onedark.vim/ -" License: The MIT License (MIT) -" Based On: https://github.com/MaxSt/FlatColor/ - -" A companion [vim-airline](https://github.com/bling/vim-airline) theme is available at: https://github.com/joshdick/airline-onedark.vim - -" Color Reference {{{ - -" The following colors were measured inside Atom using its built-in inspector. - -" +---------------------------------------------+ -" | Color Name | RGB | Hex | -" |--------------+--------------------+---------| -" | Black | rgb(40, 44, 52) | #282c34 | -" |--------------+--------------------+---------| -" | White | rgb(171, 178, 191) | #abb2bf | -" |--------------+--------------------+---------| -" | Light Red | rgb(224, 108, 117) | #e06c75 | -" |--------------+--------------------+---------| -" | Dark Red | rgb(190, 80, 70) | #be5046 | -" |--------------+--------------------+---------| -" | Green | rgb(152, 195, 121) | #98c379 | -" |--------------+--------------------+---------| -" | Light Yellow | rgb(229, 192, 123) | #e5c07b | -" |--------------+--------------------+---------| -" | Dark Yellow | rgb(209, 154, 102) | #d19a66 | -" |--------------+--------------------+---------| -" | Blue | rgb(97, 175, 239) | #61afef | -" |--------------+--------------------+---------| -" | Magenta | rgb(198, 120, 221) | #c678dd | -" |--------------+--------------------+---------| -" | Cyan | rgb(86, 182, 194) | #56b6c2 | -" |--------------+--------------------+---------| -" | Gutter Grey | rgb(76, 82, 99) | #4b5263 | -" |--------------+--------------------+---------| -" | Comment Grey | rgb(92, 99, 112) | #5c6370 | -" +---------------------------------------------+ - -" }}} - -" Initialization {{{ - -highlight clear - -if exists("syntax_on") - syntax reset -endif - -set t_Co=256 - -let g:colors_name="onedark" - -" Set to "256" for 256-color terminals, or -" set to "16" to use your terminal emulator's native colors -" (a 16-color palette for this color scheme is available; see -" < https://github.com/joshdick/onedark.vim/blob/master/README.md > -" for more information.) -if !exists("g:onedark_termcolors") - let g:onedark_termcolors = 256 -endif - -" Not all terminals support italics properly. If yours does, opt-in. -if !exists("g:onedark_terminal_italics") - let g:onedark_terminal_italics = 0 -endif - -" This function is based on one from FlatColor: https://github.com/MaxSt/FlatColor/ -" Which in turn was based on one found in hemisu: https://github.com/noahfrederick/vim-hemisu/ -function! s:h(group, style) - if g:onedark_terminal_italics == 0 - if has_key(a:style, "cterm") && a:style["cterm"] == "italic" - unlet a:style.cterm - endif - if has_key(a:style, "gui") && a:style["gui"] == "italic" - unlet a:style.gui - endif - endif - if g:onedark_termcolors == 16 - let l:ctermfg = (has_key(a:style, "fg") ? a:style.fg.cterm16 : "NONE") - let l:ctermbg = (has_key(a:style, "bg") ? a:style.bg.cterm16 : "NONE") - else - let l:ctermfg = (has_key(a:style, "fg") ? a:style.fg.cterm : "NONE") - let l:ctermbg = (has_key(a:style, "bg") ? a:style.bg.cterm : "NONE") - endif - execute "highlight" a:group - \ "guifg=" (has_key(a:style, "fg") ? a:style.fg.gui : "NONE") - \ "guibg=" (has_key(a:style, "bg") ? a:style.bg.gui : "NONE") - \ "guisp=" (has_key(a:style, "sp") ? a:style.sp.gui : "NONE") - \ "gui=" (has_key(a:style, "gui") ? a:style.gui : "NONE") - \ "ctermfg=" . l:ctermfg - \ "ctermbg=" . l:ctermbg - \ "cterm=" (has_key(a:style, "cterm") ? a:style.cterm : "NONE") -endfunction - -" public {{{ - -function! onedark#set_highlight(group, style) - call s:h(a:group, a:style) -endfunction - -" }}} - -" }}} - -" Color Variables {{{ - -let s:red = { "gui": "<%=it.red.gui%>", "cterm": "<%=it.red.cterm%>", "cterm16": "<%=it.red.cterm16%>" } -let s:dark_red = { "gui": "<%=it.dark_red.gui%>", "cterm": "<%=it.dark_red.cterm%>", "cterm16": "<%=it.dark_red.cterm16%>" } - -let s:green = { "gui": "<%=it.green.gui%>", "cterm": "<%=it.green.cterm%>", "cterm16": "<%=it.green.cterm16%>" } - -let s:yellow = { "gui": "<%=it.yellow.gui%>", "cterm": "<%=it.yellow.cterm%>", "cterm16": "<%=it.yellow.cterm16%>" } -let s:dark_yellow = { "gui": "<%=it.dark_yellow.gui%>", "cterm": "<%=it.dark_yellow.cterm%>", "cterm16": "<%=it.dark_yellow.cterm16%>" } - -let s:blue = { "gui": "<%=it.blue.gui%>", "cterm": "<%=it.blue.cterm%>", "cterm16": "<%=it.blue.cterm16%>" } - -let s:purple = { "gui": "<%=it.purple.gui%>", "cterm": "<%=it.purple.cterm%>", "cterm16": "<%=it.purple.cterm16%>" } - -let s:cyan = { "gui": "<%=it.cyan.gui%>", "cterm": "<%=it.cyan.cterm%>", "cterm16": "<%=it.cyan.cterm16%>" } - -let s:white = { "gui": "<%=it.white.gui%>", "cterm": "<%=it.white.cterm%>", "cterm16": "<%=it.white.cterm16%>" } - -let s:black = { "gui": "<%=it.black.gui%>", "cterm": "<%=it.black.cterm%>", "cterm16": "<%=it.black.cterm16%>" } -let s:visual_black = { "gui": "NONE", "cterm": "NONE", "cterm16": s:black.cterm16 } " Black out selected text in 16-color visual mode - -let s:comment_grey = { "gui": "<%=it.comment_grey.gui%>", "cterm": "<%=it.comment_grey.cterm%>", "cterm16": "<%=it.comment_grey.cterm16%>" } -let s:gutter_fg_grey = { "gui": "<%=it.gutter_fg_grey.gui%>", "cterm": "<%=it.gutter_fg_grey.cterm%>", "cterm16": "<%=it.gutter_fg_grey.cterm16%>" } -let s:cursor_grey = { "gui": "<%=it.cursor_grey.gui%>", "cterm": "<%=it.cursor_grey.cterm%>", "cterm16": "<%=it.cursor_grey.cterm16%>" } -let s:visual_grey = { "gui": "<%=it.visual_grey.gui%>", "cterm": "<%=it.visual_grey.cterm%>", "cterm16": "<%=it.visual_grey.cterm16%>" } -let s:menu_grey = { "gui": s:visual_grey.gui, "cterm": s:visual_grey.cterm, "cterm16": "<%=it.menu_grey.cterm16%>" } -let s:special_grey = { "gui": "<%=it.special_grey.gui%>", "cterm": "<%=it.special_grey.cterm%>", "cterm16": "<%=it.special_grey.cterm16%>" } -let s:vertsplit = { "gui": "<%=it.vertsplit.gui%>", "cterm": "<%=it.vertsplit.cterm%>", "cterm16": "<%=it.vertsplit.cterm16%>" } - -" }}} - -" Syntax Groups (descriptions and ordering from `:h w18`) {{{ - -call s:h("Comment", { "fg": s:comment_grey, "gui": "italic", "cterm": "italic" }) " any comment -call s:h("Constant", { "fg": s:cyan }) " any constant -call s:h("String", { "fg": s:green }) " a string constant: "this is a string" -call s:h("Character", { "fg": s:green }) " a character constant: 'c', '\n' -call s:h("Number", { "fg": s:dark_yellow }) " a number constant: 234, 0xff -call s:h("Boolean", { "fg": s:dark_yellow }) " a boolean constant: TRUE, false -call s:h("Float", { "fg": s:dark_yellow }) " a floating point constant: 2.3e10 -call s:h("Identifier", { "fg": s:red }) " any variable name -call s:h("Function", { "fg": s:blue }) " function name (also: methods for classes) -call s:h("Statement", { "fg": s:purple }) " any statement -call s:h("Conditional", { "fg": s:purple }) " if, then, else, endif, switch, etc. -call s:h("Repeat", { "fg": s:purple }) " for, do, while, etc. -call s:h("Label", { "fg": s:purple }) " case, default, etc. -call s:h("Operator", { "fg": s:purple }) " sizeof", "+", "*", etc. -call s:h("Keyword", { "fg": s:red }) " any other keyword -call s:h("Exception", { "fg": s:purple }) " try, catch, throw -call s:h("PreProc", { "fg": s:yellow }) " generic Preprocessor -call s:h("Include", { "fg": s:blue }) " preprocessor #include -call s:h("Define", { "fg": s:purple }) " preprocessor #define -call s:h("Macro", { "fg": s:purple }) " same as Define -call s:h("PreCondit", { "fg": s:yellow }) " preprocessor #if, #else, #endif, etc. -call s:h("Type", { "fg": s:yellow }) " int, long, char, etc. -call s:h("StorageClass", { "fg": s:yellow }) " static, register, volatile, etc. -call s:h("Structure", { "fg": s:yellow }) " struct, union, enum, etc. -call s:h("Typedef", { "fg": s:yellow }) " A typedef -call s:h("Special", { "fg": s:blue }) " any special symbol -call s:h("SpecialChar", {}) " special character in a constant -call s:h("Tag", {}) " you can use CTRL-] on this -call s:h("Delimiter", {}) " character that needs attention -call s:h("SpecialComment", { "fg": s:comment_grey }) " special things inside a comment -call s:h("Debug", {}) " debugging statements -call s:h("Underlined", { "gui": "underline", "cterm": "underline" }) " text that stands out, HTML links -call s:h("Ignore", {}) " left blank, hidden -call s:h("Error", { "fg": s:red }) " any erroneous construct -call s:h("Todo", { "fg": s:purple }) " anything that needs extra attention; mostly the keywords TODO FIXME and XXX - -" }}} - -" Highlighting Groups (descriptions and ordering from `:h hitest.vim`) {{{ - -call s:h("ColorColumn", { "bg": s:cursor_grey }) " used for the columns set with 'colorcolumn' -call s:h("Conceal", {}) " placeholder characters substituted for concealed text (see 'conceallevel') -call s:h("Cursor", { "fg": s:black, "bg": s:blue }) " the character under the cursor -call s:h("CursorIM", {}) " like Cursor, but used when in IME mode -call s:h("CursorColumn", { "bg": s:cursor_grey }) " the screen column that the cursor is in when 'cursorcolumn' is set -call s:h("CursorLine", { "bg": s:cursor_grey }) " the screen line that the cursor is in when 'cursorline' is set -call s:h("Directory", { "fg": s:blue }) " directory names (and other special names in listings) -call s:h("DiffAdd", { "bg": s:green, "fg": s:black }) " diff mode: Added line -call s:h("DiffChange", { "bg": s:yellow, "fg": s:black }) " diff mode: Changed line -call s:h("DiffDelete", { "bg": s:red, "fg": s:black }) " diff mode: Deleted line -call s:h("DiffText", { "bg": s:black, "fg": s:yellow }) " diff mode: Changed text within a changed line -call s:h("ErrorMsg", { "fg": s:red }) " error messages on the command line -call s:h("VertSplit", { "fg": s:vertsplit }) " the column separating vertically split windows -call s:h("Folded", { "fg": s:comment_grey }) " line used for closed folds -call s:h("FoldColumn", {}) " 'foldcolumn' -call s:h("SignColumn", {}) " column where signs are displayed -call s:h("IncSearch", { "fg": s:yellow, "bg": s:comment_grey }) " 'incsearch' highlighting; also used for the text replaced with ":s///c" -call s:h("LineNr", { "fg": s:gutter_fg_grey }) " Line number for ":number" and ":#" commands, and when 'number' or 'relativenumber' option is set. -call s:h("CursorLineNr", {}) " Like LineNr when 'cursorline' or 'relativenumber' is set for the cursor line. -call s:h("MatchParen", { "fg": s:blue, "gui": "underline" }) " The character under the cursor or just before it, if it is a paired bracket, and its match. -call s:h("ModeMsg", {}) " 'showmode' message (e.g., "-- INSERT --") -call s:h("MoreMsg", {}) " more-prompt -call s:h("NonText", { "fg": s:special_grey }) " '~' and '@' at the end of the window, characters from 'showbreak' and other characters that do not really exist in the text (e.g., ">" displayed when a double-wide character doesn't fit at the end of the line). -call s:h("Normal", { "fg": s:white, "bg": s:black }) " normal text -call s:h("Pmenu", { "bg": s:menu_grey }) " Popup menu: normal item. -call s:h("PmenuSel", { "fg": s:black, "bg": s:blue }) " Popup menu: selected item. -call s:h("PmenuSbar", { "bg": s:special_grey }) " Popup menu: scrollbar. -call s:h("PmenuThumb", { "bg": s:white }) " Popup menu: Thumb of the scrollbar. -call s:h("Question", { "fg": s:purple }) " hit-enter prompt and yes/no questions -call s:h("Search", { "fg": s:black, "bg": s:yellow }) " Last search pattern highlighting (see 'hlsearch'). Also used for highlighting the current line in the quickfix window and similar items that need to stand out. -call s:h("SpecialKey", { "fg": s:special_grey }) " Meta and special keys listed with ":map", also for text used to show unprintable characters in the text, 'listchars'. Generally: text that is displayed differently from what it really is. -call s:h("SpellBad", { "fg": s:red, "gui": "underline", "cterm": "underline" }) " Word that is not recognized by the spellchecker. This will be combined with the highlighting used otherwise. -call s:h("SpellCap", { "fg": s:dark_yellow }) " Word that should start with a capital. This will be combined with the highlighting used otherwise. -call s:h("SpellLocal", { "fg": s:dark_yellow }) " Word that is recognized by the spellchecker as one that is used in another region. This will be combined with the highlighting used otherwise. -call s:h("SpellRare", { "fg": s:dark_yellow }) " Word that is recognized by the spellchecker as one that is hardly ever used. spell This will be combined with the highlighting used otherwise. -call s:h("StatusLine", { "fg": s:white, "bg": s:cursor_grey }) " status line of current window -call s:h("StatusLineNC", { "fg": s:comment_grey }) " status lines of not-current windows Note: if this is equal to "StatusLine" Vim will use "^^^" in the status line of the current window. -call s:h("TabLine", { "fg": s:comment_grey }) " tab pages line, not active tab page label -call s:h("TabLineFill", {}) " tab pages line, where there are no labels -call s:h("TabLineSel", { "fg": s:white }) " tab pages line, active tab page label -call s:h("Title", { "fg": s:green }) " titles for output from ":set all", ":autocmd" etc. -call s:h("Visual", { "fg": s:visual_black, "bg": s:visual_grey }) " Visual mode selection -call s:h("VisualNOS", { "bg": s:visual_grey }) " Visual mode selection when vim is "Not Owning the Selection". Only X11 Gui's gui-x11 and xterm-clipboard supports this. -call s:h("WarningMsg", { "fg": s:yellow }) " warning messages -call s:h("WildMenu", { "fg": s:black, "bg": s:blue }) " current match in 'wildmenu' completion - -" }}} - -" Language-Specific Highlighting {{{ - -" CSS -call s:h("cssAttrComma", { "fg": s:purple }) -call s:h("cssAttributeSelector", { "fg": s:green }) -call s:h("cssBraces", { "fg": s:white }) -call s:h("cssClassName", { "fg": s:dark_yellow }) -call s:h("cssClassNameDot", { "fg": s:dark_yellow }) -call s:h("cssDefinition", { "fg": s:purple }) -call s:h("cssFontAttr", { "fg": s:dark_yellow }) -call s:h("cssFontDescriptor", { "fg": s:purple }) -call s:h("cssFunctionName", { "fg": s:blue }) -call s:h("cssIdentifier", { "fg": s:blue }) -call s:h("cssImportant", { "fg": s:purple }) -call s:h("cssInclude", { "fg": s:white }) -call s:h("cssIncludeKeyword", { "fg": s:purple }) -call s:h("cssMediaType", { "fg": s:dark_yellow }) -call s:h("cssProp", { "fg": s:white }) -call s:h("cssPseudoClassId", { "fg": s:dark_yellow }) -call s:h("cssSelectorOp", { "fg": s:purple }) -call s:h("cssSelectorOp2", { "fg": s:purple }) -call s:h("cssTagName", { "fg": s:red }) - -" Go -call s:h("goDeclaration", { "fg": s:purple }) - -" HTML -call s:h("htmlTitle", { "fg": s:white }) -call s:h("htmlArg", { "fg": s:dark_yellow }) -call s:h("htmlEndTag", { "fg": s:white }) -call s:h("htmlH1", { "fg": s:white }) -call s:h("htmlLink", { "fg": s:purple }) -call s:h("htmlSpecialChar", { "fg": s:dark_yellow }) -call s:h("htmlSpecialTagName", { "fg": s:red }) -call s:h("htmlTag", { "fg": s:white }) -call s:h("htmlTagName", { "fg": s:red }) - -" JavaScript -call s:h("javaScriptBraces", { "fg": s:white }) -call s:h("javaScriptFunction", { "fg": s:purple }) -call s:h("javaScriptIdentifier", { "fg": s:purple }) -call s:h("javaScriptNull", { "fg": s:dark_yellow }) -call s:h("javaScriptNumber", { "fg": s:dark_yellow }) -call s:h("javaScriptRequire", { "fg": s:cyan }) -call s:h("javaScriptReserved", { "fg": s:purple }) -" https://github.com/pangloss/vim-javascript -call s:h("jsArrowFunction", { "fg": s:purple }) -call s:h("jsClassKeyword", { "fg": s:purple }) -call s:h("jsClassMethodType", { "fg": s:purple }) -call s:h("jsDocParam", { "fg": s:blue }) -call s:h("jsDocTags", { "fg": s:purple }) -call s:h("jsExport", { "fg": s:purple }) -call s:h("jsExportDefault", { "fg": s:purple }) -call s:h("jsExtendsKeyword", { "fg": s:purple }) -call s:h("jsFrom", { "fg": s:purple }) -call s:h("jsFuncCall", { "fg": s:blue }) -call s:h("jsFunction", { "fg": s:purple }) -call s:h("jsGenerator", { "fg": s:yellow }) -call s:h("jsGlobalObjects", { "fg": s:yellow }) -call s:h("jsImport", { "fg": s:purple }) -call s:h("jsModuleAs", { "fg": s:purple }) -call s:h("jsModuleWords", { "fg": s:purple }) -call s:h("jsModules", { "fg": s:purple }) -call s:h("jsNull", { "fg": s:dark_yellow }) -call s:h("jsOperator", { "fg": s:purple }) -call s:h("jsStorageClass", { "fg": s:purple }) -call s:h("jsSuper", { "fg": s:red }) -call s:h("jsTemplateBraces", { "fg": s:dark_red }) -call s:h("jsTemplateVar", { "fg": s:green }) -call s:h("jsThis", { "fg": s:red }) -call s:h("jsUndefined", { "fg": s:dark_yellow }) -" https://github.com/othree/yajs.vim -call s:h("javascriptArrowFunc", { "fg": s:purple }) -call s:h("javascriptClassExtends", { "fg": s:purple }) -call s:h("javascriptClassKeyword", { "fg": s:purple }) -call s:h("javascriptDocNotation", { "fg": s:purple }) -call s:h("javascriptDocParamName", { "fg": s:blue }) -call s:h("javascriptDocTags", { "fg": s:purple }) -call s:h("javascriptEndColons", { "fg": s:white }) -call s:h("javascriptExport", { "fg": s:purple }) -call s:h("javascriptFuncArg", { "fg": s:white }) -call s:h("javascriptFuncKeyword", { "fg": s:purple }) -call s:h("javascriptIdentifier", { "fg": s:red }) -call s:h("javascriptImport", { "fg": s:purple }) -call s:h("javascriptMethodName", { "fg": s:white }) -call s:h("javascriptObjectLabel", { "fg": s:white }) -call s:h("javascriptOpSymbol", { "fg": s:cyan }) -call s:h("javascriptOpSymbols", { "fg": s:cyan }) -call s:h("javascriptPropertyName", { "fg": s:green }) -call s:h("javascriptTemplateSB", { "fg": s:dark_red }) -call s:h("javascriptVariable", { "fg": s:purple }) - -" JSON -call s:h("jsonCommentError", { "fg": s:white }) -call s:h("jsonKeyword", { "fg": s:red }) -call s:h("jsonBoolean", { "fg": s:dark_yellow }) -call s:h("jsonNumber", { "fg": s:dark_yellow }) -call s:h("jsonQuote", { "fg": s:white }) -call s:h("jsonMissingCommaError", { "fg": s:red, "gui": "reverse" }) -call s:h("jsonNoQuotesError", { "fg": s:red, "gui": "reverse" }) -call s:h("jsonNumError", { "fg": s:red, "gui": "reverse" }) -call s:h("jsonString", { "fg": s:green }) -call s:h("jsonStringSQError", { "fg": s:red, "gui": "reverse" }) -call s:h("jsonSemicolonError", { "fg": s:red, "gui": "reverse" }) - -" LESS -call s:h("lessVariable", { "fg": s:purple }) -call s:h("lessAmpersandChar", { "fg": s:white }) -call s:h("lessClass", { "fg": s:dark_yellow }) - -" Markdown -call s:h("markdownCode", { "fg": s:green }) -call s:h("markdownCodeBlock", { "fg": s:green }) -call s:h("markdownCodeDelimiter", { "fg": s:green }) -call s:h("markdownHeadingDelimiter", { "fg": s:red }) -call s:h("markdownRule", { "fg": s:comment_grey }) -call s:h("markdownHeadingRule", { "fg": s:comment_grey }) -call s:h("markdownH1", { "fg": s:red }) -call s:h("markdownH2", { "fg": s:red }) -call s:h("markdownH3", { "fg": s:red }) -call s:h("markdownH4", { "fg": s:red }) -call s:h("markdownH5", { "fg": s:red }) -call s:h("markdownH6", { "fg": s:red }) -call s:h("markdownIdDelimiter", { "fg": s:purple }) -call s:h("markdownId", { "fg": s:purple }) -call s:h("markdownBlockquote", { "fg": s:comment_grey }) -call s:h("markdownItalic", { "fg": s:purple, "gui": "italic", "cterm": "italic" }) -call s:h("markdownBold", { "fg": s:dark_yellow, "gui": "bold", "cterm": "bold" }) -call s:h("markdownListMarker", { "fg": s:red }) -call s:h("markdownOrderedListMarker", { "fg": s:red }) -call s:h("markdownIdDeclaration", { "fg": s:blue }) -call s:h("markdownLinkText", { "fg": s:blue }) -call s:h("markdownLinkDelimiter", { "fg": s:white }) -call s:h("markdownUrl", { "fg": s:purple }) - -" Perl -call s:h("perlFiledescRead", { "fg": s:green }) -call s:h("perlFunction", { "fg": s:purple }) -call s:h("perlMatchStartEnd",{ "fg": s:blue }) -call s:h("perlMethod", { "fg": s:purple }) -call s:h("perlPOD", { "fg": s:comment_grey }) -call s:h("perlSharpBang", { "fg": s:comment_grey }) -call s:h("perlSpecialString",{ "fg": s:cyan }) -call s:h("perlStatementFiledesc", { "fg": s:red }) -call s:h("perlStatementFlow",{ "fg": s:red }) -call s:h("perlStatementInclude", { "fg": s:purple }) -call s:h("perlStatementScalar",{ "fg": s:purple }) -call s:h("perlStatementStorage", { "fg": s:purple }) -call s:h("perlSubName",{ "fg": s:yellow }) -call s:h("perlVarPlain",{ "fg": s:blue }) - -" PHP -call s:h("phpVarSelector", { "fg": s:red }) -call s:h("phpOperator", { "fg": s:white }) -call s:h("phpParent", { "fg": s:white }) -call s:h("phpMemberSelector", { "fg": s:white }) -call s:h("phpType", { "fg": s:purple }) -call s:h("phpKeyword", { "fg": s:purple }) -call s:h("phpClass", { "fg": s:yellow }) -call s:h("phpUseClass", { "fg": s:white }) -call s:h("phpUseAlias", { "fg": s:white }) -call s:h("phpInclude", { "fg": s:purple }) -call s:h("phpClassExtends", { "fg": s:green }) -call s:h("phpDocTags", { "fg": s:white }) -call s:h("phpFunction", { "fg": s:blue }) -call s:h("phpFunctions", { "fg": s:cyan }) -call s:h("phpMethodsVar", { "fg": s:dark_yellow }) -call s:h("phpMagicConstants", { "fg": s:dark_yellow }) -call s:h("phpSuperglobals", { "fg": s:red }) -call s:h("phpConstants", { "fg": s:dark_yellow }) - -" Ruby -call s:h("rubyBlockParameter", { "fg": s:red}) -call s:h("rubyBlockParameterList", { "fg": s:red }) -call s:h("rubyClass", { "fg": s:purple}) -call s:h("rubyConstant", { "fg": s:yellow}) -call s:h("rubyControl", { "fg": s:purple }) -call s:h("rubyEscape", { "fg": s:red}) -call s:h("rubyFunction", { "fg": s:blue}) -call s:h("rubyGlobalVariable", { "fg": s:red}) -call s:h("rubyInclude", { "fg": s:blue}) -call s:h("rubyIncluderubyGlobalVariable", { "fg": s:red}) -call s:h("rubyInstanceVariable", { "fg": s:red}) -call s:h("rubyInterpolation", { "fg": s:cyan }) -call s:h("rubyInterpolationDelimiter", { "fg": s:red }) -call s:h("rubyInterpolationDelimiter", { "fg": s:red}) -call s:h("rubyRegexp", { "fg": s:cyan}) -call s:h("rubyRegexpDelimiter", { "fg": s:cyan}) -call s:h("rubyStringDelimiter", { "fg": s:green}) -call s:h("rubySymbol", { "fg": s:cyan}) - -" Sass -" https://github.com/tpope/vim-haml -call s:h("sassAmpersand", { "fg": s:red }) -call s:h("sassClass", { "fg": s:dark_yellow }) -call s:h("sassControl", { "fg": s:purple }) -call s:h("sassExtend", { "fg": s:purple }) -call s:h("sassFor", { "fg": s:white }) -call s:h("sassFunction", { "fg": s:cyan }) -call s:h("sassId", { "fg": s:blue }) -call s:h("sassInclude", { "fg": s:purple }) -call s:h("sassMedia", { "fg": s:purple }) -call s:h("sassMediaOperators", { "fg": s:white }) -call s:h("sassMixin", { "fg": s:purple }) -call s:h("sassMixinName", { "fg": s:blue }) -call s:h("sassMixing", { "fg": s:purple }) -call s:h("sassVariable", { "fg": s:purple }) -" https://github.com/cakebaker/scss-syntax.vim -call s:h("scssExtend", { "fg": s:purple }) -call s:h("scssImport", { "fg": s:purple }) -call s:h("scssInclude", { "fg": s:purple }) -call s:h("scssMixin", { "fg": s:purple }) -call s:h("scssSelectorName", { "fg": s:dark_yellow }) -call s:h("scssVariable", { "fg": s:purple }) - -" TypeScript -call s:h("typescriptReserved", { "fg": s:purple }) -call s:h("typescriptEndColons", { "fg": s:white }) -call s:h("typescriptBraces", { "fg": s:white }) - -" XML -call s:h("xmlAttrib", { "fg": s:dark_yellow }) -call s:h("xmlEndTag", { "fg": s:red }) -call s:h("xmlTag", { "fg": s:red }) -call s:h("xmlTagName", { "fg": s:red }) - -" }}} - -" Plugin Highlighting {{{ - -" airblade/vim-gitgutter -hi link GitGutterAdd SignifySignAdd -hi link GitGutterChange SignifySignChange -hi link GitGutterDelete SignifySignDelete - -" mhinz/vim-signify -call s:h("SignifySignAdd", { "fg": s:green }) -call s:h("SignifySignChange", { "fg": s:yellow }) -call s:h("SignifySignDelete", { "fg": s:red }) - -" neomake/neomake -call s:h("NeomakeWarningSign", { "fg": s:yellow }) -call s:h("NeomakeErrorSign", { "fg": s:red }) -call s:h("NeomakeInfoSign", { "fg": s:blue }) - -" tpope/vim-fugitive -call s:h("diffAdded", { "fg": s:green }) -call s:h("diffRemoved", { "fg": s:red }) - -" }}} - -" Git Highlighting {{{ - -call s:h("gitcommitComment", { "fg": s:comment_grey }) -call s:h("gitcommitUnmerged", { "fg": s:green }) -call s:h("gitcommitOnBranch", {}) -call s:h("gitcommitBranch", { "fg": s:purple }) -call s:h("gitcommitDiscardedType", { "fg": s:red }) -call s:h("gitcommitSelectedType", { "fg": s:green }) -call s:h("gitcommitHeader", {}) -call s:h("gitcommitUntrackedFile", { "fg": s:cyan }) -call s:h("gitcommitDiscardedFile", { "fg": s:red }) -call s:h("gitcommitSelectedFile", { "fg": s:green }) -call s:h("gitcommitUnmergedFile", { "fg": s:yellow }) -call s:h("gitcommitFile", {}) -call s:h("gitcommitSummary", { "fg": s:white }) -call s:h("gitcommitOverflow", { "fg": s:red }) -hi link gitcommitNoBranch gitcommitBranch -hi link gitcommitUntracked gitcommitComment -hi link gitcommitDiscarded gitcommitComment -hi link gitcommitSelected gitcommitComment -hi link gitcommitDiscardedArrow gitcommitDiscardedFile -hi link gitcommitSelectedArrow gitcommitSelectedFile -hi link gitcommitUnmergedArrow gitcommitUnmergedFile - -" }}} - -" Neovim terminal colors {{{ - -if has("nvim") - let g:terminal_color_0 = s:black.gui - let g:terminal_color_1 = s:red.gui - let g:terminal_color_2 = s:green.gui - let g:terminal_color_3 = s:yellow.gui - let g:terminal_color_4 = s:blue.gui - let g:terminal_color_5 = s:purple.gui - let g:terminal_color_6 = s:cyan.gui - let g:terminal_color_7 = s:white.gui - let g:terminal_color_8 = s:visual_grey.gui - let g:terminal_color_9 = s:dark_red.gui - let g:terminal_color_10 = s:green.gui " No dark version - let g:terminal_color_11 = s:dark_yellow.gui - let g:terminal_color_12 = s:blue.gui " No dark version - let g:terminal_color_13 = s:purple.gui " No dark version - let g:terminal_color_14 = s:cyan.gui " No dark version - let g:terminal_color_15 = s:comment_grey.gui - let g:terminal_color_background = g:terminal_color_0 - let g:terminal_color_foreground = g:terminal_color_7 -endif - -" }}} - -" Must appear at the end of the file to work around this oddity: -" https://groups.google.com/forum/#!msg/vim_dev/afPqwAFNdrU/nqh6tOM87QUJ -set background=dark diff --git a/colors/onedark.vim b/colors/onedark.vim index 089a8cc..ff7be79 100644 --- a/colors/onedark.vim +++ b/colors/onedark.vim @@ -107,32 +107,26 @@ endfunction " Color Variables {{{ -let s:red = { "gui": "#E06C75", "cterm": "204", "cterm16": "1" } -let s:dark_red = { "gui": "#BE5046", "cterm": "196", "cterm16": "9" } +let s:colors = onedark#GetColors() -let s:green = { "gui": "#98C379", "cterm": "114", "cterm16": "2" } - -let s:yellow = { "gui": "#E5C07B", "cterm": "180", "cterm16": "3" } -let s:dark_yellow = { "gui": "#D19A66", "cterm": "173", "cterm16": "11" } - -let s:blue = { "gui": "#61AFEF", "cterm": "39", "cterm16": "4" } - -let s:purple = { "gui": "#C678DD", "cterm": "170", "cterm16": "5" } - -let s:cyan = { "gui": "#56B6C2", "cterm": "38", "cterm16": "6" } - -let s:white = { "gui": "#ABB2BF", "cterm": "145", "cterm16": "7" } - -let s:black = { "gui": "#282C34", "cterm": "235", "cterm16": "0" } -let s:visual_black = { "gui": "NONE", "cterm": "NONE", "cterm16": s:black.cterm16 } " Black out selected text in 16-color visual mode - -let s:comment_grey = { "gui": "#5C6370", "cterm": "59", "cterm16": "15" } -let s:gutter_fg_grey = { "gui": "#4B5263", "cterm": "238", "cterm16": "15" } -let s:cursor_grey = { "gui": "#2C323C", "cterm": "236", "cterm16": "8" } -let s:visual_grey = { "gui": "#3E4452", "cterm": "237", "cterm16": "15" } -let s:menu_grey = { "gui": s:visual_grey.gui, "cterm": s:visual_grey.cterm, "cterm16": "8" } -let s:special_grey = { "gui": "#3B4048", "cterm": "238", "cterm16": "15" } -let s:vertsplit = { "gui": "#181A1F", "cterm": "59", "cterm16": "15" } +let s:red = s:colors.red +let s:dark_red = s:colors.dark_red +let s:green = s:colors.green +let s:yellow = s:colors.yellow +let s:dark_yellow = s:colors.dark_yellow +let s:blue = s:colors.blue +let s:purple = s:colors.purple +let s:cyan = s:colors.cyan +let s:white = s:colors.white +let s:black = s:colors.black +let s:visual_black = s:colors.visual_black " Black out selected text in 16-color visual mode +let s:comment_grey = s:colors.comment_grey +let s:gutter_fg_grey = s:colors.gutter_fg_grey +let s:cursor_grey = s:colors.cursor_grey +let s:visual_grey = s:colors.visual_grey +let s:menu_grey = s:colors.menu_grey +let s:special_grey = s:colors.special_grey +let s:vertsplit = s:colors.vertsplit " }}}