dotfiles/.vim/colors/challenger_deep.vim
2021-11-13 19:24:20 +01:00

339 lines
15 KiB
VimL
Executable File

" Vim Color File
" Name: challenger_deep.vim
" Version: 2.0
" Maintainer: github.com/MaxSt
" License: The MIT License (MIT)
" Based On: pencil by github.com/reedes and github.com/mattly
hi clear
if exists('syntax on')
syntax reset
endif
let g:colors_name='challenger_deep'
set background=dark
if ! exists("g:challenger_deep_termcolors")
let g:challenger_deep_termcolors = 256
endif
" not all terminals support italics properly. If yours does, opt-in.
if ! exists("g:challenger_deep_terminal_italics")
let g:challenger_deep_terminal_italics = 0
endif
" Colors
let s:black = { "gui": "#212121", "cterm": "0", "cterm16" : "8" }
let s:medium_gray = { "gui": "#767676", "cterm": "243", "cterm16" : "243" }
let s:white = { "gui": "#F3F3F3", "cterm": "15", "cterm16" : "15" }
let s:actual_white = { "gui": "#FFFFFF", "cterm": "231", "cterm16" : "231" }
let s:light_black = { "gui": "#424242", "cterm": "8", "cterm16" : "0" }
let s:lighter_black = { "gui": "#545454", "cterm": "240", "cterm16" : "240" }
" lighter shadows and darker grays
let s:subtle_black = { "gui": "#303030", "cterm": "236", "cterm16" : "236" }
let s:light_gray = { "gui": "#B2B2B2", "cterm": "249", "cterm16" : "249" }
let s:lighter_gray = { "gui": "#C6C6C6", "cterm": "251", "cterm16" : "251" }
" flat colors:
let s:asphalt = { "gui": "#1e1c31", "cterm": "233", "cterm16": "NONE"}
let s:asphalt_subtle= { "gui": "#100E23", "cterm": "232", "cterm16": "0"}
let s:dark_asphalt = { "gui": "#565575", "cterm": "236", "cterm16": "8"}
let s:red = { "gui": "#ff8080", "cterm": "204", "cterm16": "1"}
let s:dark_red = { "gui": "#ff5458", "cterm": "203", "cterm16": "9"}
let s:green = { "gui": "#95ffa4", "cterm": "120", "cterm16": "2"}
let s:dark_green = { "gui": "#62d196", "cterm": "119", "cterm16": "10"}
let s:yellow = { "gui": "#ffe9aa", "cterm": "228", "cterm16": "3"}
let s:dark_yellow = { "gui": "#ffb378", "cterm": "215", "cterm16": "11"}
let s:blue = { "gui": "#91ddff", "cterm": "159", "cterm16": "4"}
let s:dark_blue = { "gui": "#65b2ff", "cterm": "75", "cterm16": "12"}
let s:purple = { "gui": "#c991e1", "cterm": "141", "cterm16": "5"}
let s:dark_purple = { "gui": "#906cff", "cterm": "135", "cterm16": "13"}
let s:cyan = { "gui": "#aaffe4", "cterm": "122", "cterm16": "6"}
let s:dark_cyan = { "gui": "#63f2f1", "cterm": "121", "cterm16": "14"}
let s:clouds = { "gui": "#cbe3e7", "cterm": "253", "cterm16": "7"}
let s:dark_clouds = { "gui": "#a6b3cc", "cterm": "252", "cterm16": "15"}
let s:bg = s:asphalt
let s:bg_subtle = s:asphalt_subtle
let s:bg_dark = s:dark_asphalt
let s:norm = s:clouds
let s:norm_subtle = s:dark_clouds
let s:visual = s:bg_dark
let s:head_a = s:dark_blue
let s:head_b = s:blue
let s:head_c = s:dark_cyan
" shamelessly stolen from hemisu: https://github.com/noahfrederick/vim-hemisu/
function! s:h(group, style)
" Not all terminals support italics properly. If yours does, opt-in.
if g:challenger_deep_terminal_italics == 0 && has_key(a:style, "cterm") && a:style["cterm"] == "italic"
unlet a:style.cterm
endif
if g:challenger_deep_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")
end
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
" common groups ================================================================
" (see `:h w18`)
call s:h("Normal", {"bg": s:bg, "fg": s:norm})
call s:h("Cursor", {"bg": s:blue, "fg": s:bg_dark})
call s:h("Comment", {"fg": s:medium_gray, "gui": "italic", "cterm": "italic"})
call s:h("Constant", {"fg": s:yellow})
hi! link String Constant
hi! link Character Constant
call s:h("Number", {"fg": s:dark_yellow})
hi! link Boolean Constant
hi! link Float Constant
call s:h("Identifier", {"fg": s:purple})
hi! link Function Identifier
call s:h("Label", {"fg": s:dark_blue})
hi! link Conditonal Statement
hi! link Exception Statement
call s:h("Operator", {"fg": s:dark_cyan})
hi! link Repeat Operator
call s:h("PreProc", {"fg": s:green})
hi! link Include PreProc
hi! link Define PreProc
hi! link Macro PreProc
hi! link PreCondit PreProc
call s:h("Keyword", {"fg": s:red})
hi! link Statement Keyword
call s:h("Type", {"fg": s:blue})
hi! link StorageClass Type
hi! link Structure Type
hi! link Typedef Type
call s:h("Special", {"fg": s:cyan})
hi! link SpecialChar Special
hi! link Tag Special
hi! link Delimiter Special
hi! link SpecialComment Special
hi! link Debug Special
call s:h("Underlined", {"fg": s:norm , "gui": "underline", "cterm": "underline"})
call s:h("Ignore", {"fg": s:bg })
call s:h("Error", {"fg": s:dark_red, "bg": s:bg_subtle , "gui": "bold" , "cterm": "bold" })
call s:h("Todo", {"fg": s:dark_yellow, "bg": s:bg_subtle, "gui": "bold" , "cterm": "bold" })
" ui chrome ====================================================================
" ordered according to `:help hitest.vim`
call s:h("SpecialKey", {"fg": s:blue})
call s:h("Boolean", {"fg": s:dark_yellow})
call s:h("Number", {"fg": s:dark_yellow})
call s:h("Float", {"fg": s:dark_yellow})
call s:h("NonText", {"fg": s:bg_dark})
call s:h("Directory", {"fg": s:purple})
call s:h("ErrorMsg", {"fg": s:dark_red})
call s:h("IncSearch", {"bg": s:red, "fg": s:clouds})
call s:h("Search", {"bg": s:bg_dark})
call s:h("MoreMsg", {"fg": s:medium_gray, "gui": "bold", "cterm": "bold"})
hi! link ModeMsg MoreMsg
call s:h("LineNr", {"fg": s:dark_asphalt, "bg": s:bg_subtle})
call s:h("CursorLineNr", {"bg": s:bg_subtle, "fg": s:blue, "gui": "bold"})
call s:h("Question", {"fg": s:red})
call s:h("StatusLine", {"bg": s:bg_dark})
call s:h("Conceal", {"fg": s:norm})
call s:h("StatusLineNC", {"bg": s:bg_dark, "fg": s:medium_gray})
call s:h("VertSplit", {"fg": s:bg_subtle})
call s:h("Title", {"fg": s:dark_blue})
call s:h("Visual", {"bg": s:visual})
call s:h("WarningMsg", {"fg": s:yellow})
call s:h("WildMenu", {"fg": s:bg_subtle, "bg": s:cyan})
call s:h("Folded", {"bg": s:purple, "fg": s:bg_subtle})
call s:h("FoldColumn", {"fg": s:yellow})
call s:h("DiffAdd", {"fg": s:green})
call s:h("DiffDelete", {"fg": s:red})
call s:h("DiffChange", {"fg": s:dark_yellow})
call s:h("DiffText", {"fg": s:dark_blue})
call s:h("SignColumn", {"fg": s:green})
if has("gui_running")
call s:h("SpellBad", {"gui": "underline", "sp": s:dark_red})
call s:h("SpellCap", {"gui": "underline", "sp": s:green})
call s:h("SpellRare", {"gui": "underline", "sp": s:red})
call s:h("SpellLocal", {"gui": "underline", "sp": s:dark_green})
else
call s:h("SpellBad", {"cterm": "underline", "fg": s:dark_red})
call s:h("SpellCap", {"cterm": "underline", "fg": s:green})
call s:h("SpellRare", {"cterm": "underline", "fg": s:red})
call s:h("SpellLocal", {"cterm": "underline", "fg": s:dark_green})
endif
call s:h("Pmenu", {"fg": s:norm, "bg": s:bg_subtle})
call s:h("PmenuSel", {"fg": s:norm, "bg": s:bg_dark})
call s:h("PmenuSbar", {"fg": s:norm, "bg": s:bg_dark})
call s:h("PmenuThumb", {"fg": s:norm, "bg": s:bg_dark})
call s:h("TabLine", {"fg": s:norm, "bg": s:bg_dark})
call s:h("TabLineSel", {"fg": s:norm, "bg": s:bg_subtle, "gui": "bold", "cterm": "bold"})
call s:h("TabLineFill", {"fg": s:norm, "bg": s:bg_dark})
call s:h("CursorColumn", {"bg": s:bg_subtle})
call s:h("CursorLine", {"bg": s:bg_subtle})
call s:h("ColorColumn", {"bg": s:bg_subtle})
" remainder of syntax highlighting
call s:h("MatchParen", {"bg": s:bg_subtle, "fg": s:purple, "gui": "bold", "cterm": "bold"})
call s:h("qfLineNr", {"fg": s:medium_gray})
" hi helpHyperTextJump guifg=#5FAFD7 ctermfg=74
" HTML syntax
hi! link htmlTag Special
hi! link htmlEndTag htmlTag
hi! link htmlTagName KeyWord
" html5 tags show up as htmlTagN
hi! link htmlTagN Keyword
" HTML content
call s:h("htmlH1", {"fg": s:head_a, "gui": "bold,italic", "cterm": "bold" })
call s:h("htmlH2", {"fg": s:head_a, "gui": "bold" , "cterm": "bold" })
call s:h("htmlH3", {"fg": s:head_b, "gui": "italic" , "cterm": "italic" })
call s:h("htmlH4", {"fg": s:head_b, "gui": "italic" , "cterm": "italic" })
call s:h("htmlH5", {"fg": s:head_c })
call s:h("htmlH6", {"fg": s:head_c })
call s:h("htmlLink", {"fg": s:blue , "gui": "underline" , "cterm": "underline"})
call s:h("htmlItalic", { "gui": "italic" , "cterm": "italic" })
call s:h("htmlBold", { "gui": "bold" , "cterm": "bold" })
call s:h("htmlBoldItalic",{ "gui": "bold,italic", "cterm": "bold" })
" hi htmlString guifg=#87875f guibg=NONE gui=NONE ctermfg=101 ctermbg=NONE cterm=NONE
" tpope/vim-markdown
call s:h("markdownBlockquote", {"fg": s:norm})
call s:h("markdownBold", {"fg": s:norm , "gui": "bold" , "cterm": "bold" })
call s:h("markdownBoldItalic", {"fg": s:norm , "gui": "bold,italic", "cterm": "bold" })
call s:h("markdownEscape", {"fg": s:norm})
call s:h("markdownH1", {"fg": s:head_a, "gui": "bold,italic", "cterm": "bold" })
call s:h("markdownH2", {"fg": s:head_a, "gui": "bold" , "cterm": "bold" })
call s:h("markdownH3", {"fg": s:head_a, "gui": "italic" , "cterm": "italic"})
call s:h("markdownH4", {"fg": s:head_a, "gui": "italic" , "cterm": "italic"})
call s:h("mckarkdownH5", {"fg": s:head_a})
call s:h("markdownH6", {"fg": s:head_a})
call s:h("markdownHeadingDelimiter", {"fg": s:norm})
call s:h("markdownHeadingRule", {"fg": s:norm})
call s:h("markdownId", {"fg": s:medium_gray})
call s:h("markdownIdDeclaration", {"fg": s:norm_subtle})
call s:h("markdownItalic", {"fg": s:norm , "gui": "italic" , "cterm": "italic"})
call s:h("markdownLinkDelimiter", {"fg": s:medium_gray})
call s:h("markdownLinkText", {"fg": s:norm})
call s:h("markdownLinkTextDelimiter", {"fg": s:medium_gray})
call s:h("markdownListMarker", {"fg": s:norm})
call s:h("markdownOrderedListMarker", {"fg": s:norm})
call s:h("markdownRule", {"fg": s:norm})
call s:h("markdownUrl", {"fg": s:medium_gray, "gui": "underline", "cterm": "underline"})
call s:h("markdownUrlDelimiter", {"fg": s:medium_gray})
call s:h("markdownUrlTitle", {"fg": s:norm})
call s:h("markdownUrlTitleDelimiter", {"fg": s:medium_gray})
call s:h("markdownCode", {"fg": s:norm})
call s:h("markdownCodeDelimiter", {"fg": s:norm})
" plasticboy/vim-markdown
call s:h("mkdBlockQuote", {"fg": s:norm})
call s:h("mkdDelimiter", {"fg": s:medium_gray})
call s:h("mkdID", {"fg": s:medium_gray})
call s:h("mkdLineContinue", {"fg": s:norm})
call s:h("mkdLink", {"fg": s:norm})
call s:h("mkdLinkDef", {"fg": s:medium_gray})
call s:h("mkdListItem", {"fg": s:norm})
call s:h("mkdNonListItemBlock", {"fg": s:norm}) " bug in syntax?
call s:h("mkdRule", {"fg": s:norm})
call s:h("mkdUrl", {"fg": s:medium_gray, "gui": "underline", "cterm": "underline"})
call s:h("mkdCode", {"fg": s:norm})
call s:h("mkdIndentCode", {"fg": s:norm})
" gabrielelana/vim-markdown
call s:h("markdownBlockquoteDelimiter", {"fg": s:norm})
call s:h("markdownInlineDelimiter", {"fg": s:norm})
call s:h("markdownItemDelimiter", {"fg": s:norm})
call s:h("markdownLinkReference", {"fg": s:medium_gray})
call s:h("markdownLinkText", {"fg": s:norm})
call s:h("markdownLinkTextContainer", {"fg": s:medium_gray})
call s:h("markdownLinkUrl", {"fg": s:medium_gray, "gui": "underline", "cterm": "underline"})
call s:h("markdownLinkUrlContainer", {"fg": s:medium_gray})
call s:h("markdownFencedCodeBlock", {"fg": s:norm})
call s:h("markdownInlineCode", {"fg": s:norm})
" mattly/vim-markdown-enhancements
call s:h("mmdFootnoteDelimiter", {"fg": s:medium_gray})
call s:h("mmdFootnoteMarker", {"fg": s:norm})
call s:h("mmdTableAlign", {"fg": s:norm})
call s:h("mmdTableDelimiter", {"fg": s:norm})
call s:h("mmdTableHeadDelimiter", {"fg": s:norm})
call s:h("mmdTableHeader", {"fg": s:norm})
call s:h("mmdTableCaptionDelimiter", {"fg": s:norm})
call s:h("mmdTableCaption", {"fg": s:norm})
" Textile content
" https://github.com/timcharper/textile.vim/blob/master/syntax/textile.vim
"call s:h("txtBold", {"fg": s:norm , "gui": "bold" , "cterm": "bold" })
"call s:h("txtEmphasis", {"fg": s:norm , "gui": "italic" , "cterm": "italic"})
" XML content
hi! link xmlTag htmlTag
hi! link xmlEndTag xmlTag
hi! link xmlTagName htmlTagName
" Signify
call s:h("SignifySignAdd",{"fg": s:green, "bg": s:bg_subtle})
call s:h("SignifySignDelete",{"fg": s:red, "bg": s:bg_subtle})
call s:h("SignifySignChange",{"fg": s:yellow, "bg": s:bg_subtle})
call s:h("SignifySignDeleteFirstLine",{"fg": s:red, "bg": s:bg_subtle})
" GitGutter
call s:h("GitGutterAdd",{"fg": s:green, "bg": s:bg_subtle})
call s:h("GitGutterDelete",{"fg": s:red, "bg": s:bg_subtle})
call s:h("GitGutterChange",{"fg": s:yellow, "bg": s:bg_subtle})
call s:h("GitGutterChangeDelete",{"fg": s:red, "bg": s:bg_subtle})
"nvim terminal colors
let g:terminal_color_0 = s:bg_dark.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:clouds.gui
let g:terminal_color_8 = s:bg_subtle.gui
let g:terminal_color_9 = s:dark_red.gui
let g:terminal_color_10 = s:dark_green.gui
let g:terminal_color_11 = s:dark_yellow.gui
let g:terminal_color_12 = s:dark_blue.gui
let g:terminal_color_13 = s:dark_purple.gui
let g:terminal_color_14 = s:dark_cyan.gui
let g:terminal_color_15 = s:dark_clouds.gui