mirror of
https://github.com/joshdick/onedark.vim.git
synced 2025-11-13 05:23:48 -05:00
Allow users to override color definitions. Closes #101.
Thanks @FredDeschenes!
This commit is contained in:
@@ -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]
|
||||
\ ]
|
||||
|
||||
@@ -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 ] ]
|
||||
|
||||
28
autoload/onedark.vim
Normal file
28
autoload/onedark.vim
Normal file
@@ -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
|
||||
Reference in New Issue
Block a user