" Base16 Donokai (https://github.com/chriskempson/base16) " Scheme: Daniel Flanagan(https://lytedev.io) " GUI color definitions let s:gui00 = "111111" let s:gui01 = "383830" let s:gui02 = "49483e" let s:gui03 = "75715e" let s:gui04 = "a59f85" let s:gui05 = "f8f8f2" let s:gui06 = "f5f4f1" let s:gui07 = "f9f8f5" let s:gui08 = "f92672" let s:gui09 = "fd971f" let s:gui0A = "f4bf75" let s:gui0B = "a6e22e" let s:gui0C = "a1efe4" let s:gui0D = "66d9ef" let s:gui0E = "ae81ff" let s:gui0F = "cc6633" " Terminal color definitions let s:cterm00 = "00" let s:cterm03 = "08" let s:cterm05 = "07" let s:cterm07 = "15" let s:cterm08 = "01" let s:cterm0A = "03" let s:cterm0B = "02" let s:cterm0C = "06" let s:cterm0D = "04" let s:cterm0E = "05" if exists('base16colorspace') && base16colorspace == "256" let s:cterm01 = "18" let s:cterm02 = "19" let s:cterm04 = "20" let s:cterm06 = "21" let s:cterm09 = "16" let s:cterm0F = "17" else let s:cterm01 = "10" let s:cterm02 = "11" let s:cterm04 = "12" let s:cterm06 = "13" let s:cterm09 = "09" let s:cterm0F = "14" endif " Theme setup hi clear syntax reset let g:colors_name = "base16-donokai" " Highlighting function fun hi(group, guifg, guibg, ctermfg, ctermbg, attr, guisp) if a:guifg != "" exec "hi " . a:group . " guifg=#" . s:gui(a:guifg) endif if a:guibg != "" exec "hi " . a:group . " guibg=#" . s:gui(a:guibg) endif if a:ctermfg != "" exec "hi " . a:group . " ctermfg=" . s:cterm(a:ctermfg) endif if a:ctermbg != "" exec "hi " . a:group . " ctermbg=" . s:cterm(a:ctermbg) endif if a:attr != "" exec "hi " . a:group . " gui=" . a:attr . " cterm=" . a:attr endif if a:guisp != "" exec "hi " . a:group . " guisp=#" . a:guisp endif endfun " Return GUI color for light/dark variants fun s:gui(color) if &background == "dark" return a:color endif if a:color == s:gui00 return s:gui07 elseif a:color == s:gui01 return s:gui06 elseif a:color == s:gui02 return s:gui05 elseif a:color == s:gui03 return s:gui04 elseif a:color == s:gui04 return s:gui03 elseif a:color == s:gui05 return s:gui02 elseif a:color == s:gui06 return s:gui01 elseif a:color == s:gui07 return s:gui00 endif return a:color endfun " Return terminal color for light/dark variants fun s:cterm(color) if &background == "dark" return a:color endif if a:color == s:cterm00 return s:cterm07 elseif a:color == s:cterm01 return s:cterm06 elseif a:color == s:cterm02 return s:cterm05 elseif a:color == s:cterm03 return s:cterm04 elseif a:color == s:cterm04 return s:cterm03 elseif a:color == s:cterm05 return s:cterm02 elseif a:color == s:cterm06 return s:cterm01 elseif a:color == s:cterm07 return s:cterm00 endif return a:color endfun " Vim editor colors call hi("Bold", "", "", "", "", "bold", "") call hi("Debug", s:gui08, "", s:cterm08, "", "", "") call hi("Directory", s:gui0D, "", s:cterm0D, "", "", "") call hi("Error", s:gui00, s:gui08, s:cterm00, s:cterm08, "", "") call hi("ErrorMsg", s:gui08, s:gui00, s:cterm08, s:cterm00, "", "") call hi("Exception", s:gui08, "", s:cterm08, "", "", "") call hi("FoldColumn", s:gui0C, s:gui01, s:cterm0C, s:cterm01, "", "") call hi("Folded", s:gui03, s:gui01, s:cterm03, s:cterm01, "", "") call hi("IncSearch", s:gui01, s:gui09, s:cterm01, s:cterm09, "none", "") call hi("Italic", "", "", "", "", "none", "") call hi("Macro", s:gui08, "", s:cterm08, "", "", "") call hi("MatchParen", s:gui00, s:gui03, s:cterm00, s:cterm03, "", "") call hi("ModeMsg", s:gui0B, "", s:cterm0B, "", "", "") call hi("MoreMsg", s:gui0B, "", s:cterm0B, "", "", "") call hi("Question", s:gui0D, "", s:cterm0D, "", "", "") call hi("Search", s:gui03, s:gui0A, s:cterm03, s:cterm0A, "", "") call hi("SpecialKey", s:gui03, "", s:cterm03, "", "", "") call hi("TooLong", s:gui08, "", s:cterm08, "", "", "") call hi("Underlined", s:gui08, "", s:cterm08, "", "", "") call hi("Visual", "", s:gui02, "", s:cterm02, "", "") call hi("VisualNOS", s:gui08, "", s:cterm08, "", "", "") call hi("WarningMsg", s:gui08, "", s:cterm08, "", "", "") call hi("WildMenu", s:gui08, s:gui0A, s:cterm08, "", "", "") call hi("Title", s:gui0D, "", s:cterm0D, "", "none", "") call hi("Conceal", s:gui0D, s:gui00, s:cterm0D, s:cterm00, "", "") call hi("Cursor", s:gui00, s:gui05, s:cterm00, s:cterm05, "", "") call hi("NonText", s:gui03, "", s:cterm03, "", "", "") call hi("Normal", s:gui05, s:gui00, s:cterm05, s:cterm00, "", "") call hi("LineNr", s:gui03, s:gui01, s:cterm03, s:cterm01, "", "") call hi("SignColumn", s:gui03, s:gui01, s:cterm03, s:cterm01, "", "") call hi("StatusLine", s:gui04, s:gui02, s:cterm04, s:cterm02, "none", "") call hi("StatusLineNC", s:gui03, s:gui01, s:cterm03, s:cterm01, "none", "") call hi("VertSplit", s:gui02, s:gui02, s:cterm02, s:cterm02, "none", "") call hi("ColorColumn", "", s:gui01, "", s:cterm01, "none", "") call hi("CursorColumn", "", s:gui01, "", s:cterm01, "none", "") call hi("CursorLine", "", s:gui01, "", s:cterm01, "none", "") call hi("CursorLineNr", s:gui03, s:gui01, s:cterm03, s:cterm01, "", "") call hi("PMenu", s:gui04, s:gui01, s:cterm04, s:cterm01, "none", "") call hi("PMenuSel", s:gui01, s:gui04, s:cterm01, s:cterm04, "", "") call hi("TabLine", s:gui03, s:gui01, s:cterm03, s:cterm01, "none", "") call hi("TabLineFill", s:gui03, s:gui01, s:cterm03, s:cterm01, "none", "") call hi("TabLineSel", s:gui0B, s:gui01, s:cterm0B, s:cterm01, "none", "") " Standard syntax highlighting call hi("Boolean", s:gui09, "", s:cterm09, "", "", "") call hi("Character", s:gui08, "", s:cterm08, "", "", "") call hi("Comment", s:gui03, "", s:cterm03, "", "", "") call hi("Conditional", s:gui0E, "", s:cterm0E, "", "", "") call hi("Constant", s:gui09, "", s:cterm09, "", "", "") call hi("Define", s:gui0E, "", s:cterm0E, "", "none", "") call hi("Delimiter", s:gui0F, "", s:cterm0F, "", "", "") call hi("Float", s:gui09, "", s:cterm09, "", "", "") call hi("Function", s:gui0D, "", s:cterm0D, "", "", "") call hi("Identifier", s:gui08, "", s:cterm08, "", "none", "") call hi("Include", s:gui0D, "", s:cterm0D, "", "", "") call hi("Keyword", s:gui0E, "", s:cterm0E, "", "", "") call hi("Label", s:gui0A, "", s:cterm0A, "", "", "") call hi("Number", s:gui09, "", s:cterm09, "", "", "") call hi("Operator", s:gui05, "", s:cterm05, "", "none", "") call hi("PreProc", s:gui0A, "", s:cterm0A, "", "", "") call hi("Repeat", s:gui0A, "", s:cterm0A, "", "", "") call hi("Special", s:gui0C, "", s:cterm0C, "", "", "") call hi("SpecialChar", s:gui0F, "", s:cterm0F, "", "", "") call hi("Statement", s:gui08, "", s:cterm08, "", "", "") call hi("StorageClass", s:gui0A, "", s:cterm0A, "", "", "") call hi("String", s:gui0B, "", s:cterm0B, "", "", "") call hi("Structure", s:gui0E, "", s:cterm0E, "", "", "") call hi("Tag", s:gui0A, "", s:cterm0A, "", "", "") call hi("Todo", s:gui0A, s:gui01, s:cterm0A, s:cterm01, "", "") call hi("Type", s:gui0A, "", s:cterm0A, "", "none", "") call hi("Typedef", s:gui0A, "", s:cterm0A, "", "", "") " C highlighting call hi("cOperator", s:gui0C, "", s:cterm0C, "", "", "") call hi("cPreCondit", s:gui0E, "", s:cterm0E, "", "", "") " C# highlighting call hi("csClass", s:gui0A, "", s:cterm0A, "", "", "") call hi("csAttribute", s:gui0A, "", s:cterm0A, "", "", "") call hi("csModifier", s:gui0E, "", s:cterm0E, "", "", "") call hi("csType", s:gui08, "", s:cterm08, "", "", "") call hi("csUnspecifiedStatement", s:gui0D, "", s:cterm0D, "", "", "") call hi("csContextualStatement", s:gui0E, "", s:cterm0E, "", "", "") call hi("csNewDecleration", s:gui08, "", s:cterm08, "", "", "") " CSS highlighting call hi("cssBraces", s:gui05, "", s:cterm05, "", "", "") call hi("cssClassName", s:gui0E, "", s:cterm0E, "", "", "") call hi("cssColor", s:gui0C, "", s:cterm0C, "", "", "") " Diff highlighting call hi("DiffAdd", s:gui0B, s:gui01, s:cterm0B, s:cterm01, "", "") call hi("DiffChange", s:gui03, s:gui01, s:cterm03, s:cterm01, "", "") call hi("DiffDelete", s:gui08, s:gui01, s:cterm08, s:cterm01, "", "") call hi("DiffText", s:gui0D, s:gui01, s:cterm0D, s:cterm01, "", "") call hi("DiffAdded", s:gui0B, s:gui00, s:cterm0B, s:cterm00, "", "") call hi("DiffFile", s:gui08, s:gui00, s:cterm08, s:cterm00, "", "") call hi("DiffNewFile", s:gui0B, s:gui00, s:cterm0B, s:cterm00, "", "") call hi("DiffLine", s:gui0D, s:gui00, s:cterm0D, s:cterm00, "", "") call hi("DiffRemoved", s:gui08, s:gui00, s:cterm08, s:cterm00, "", "") " Git highlighting call hi("gitCommitOverflow", s:gui08, "", s:cterm08, "", "", "") call hi("gitCommitSummary", s:gui0B, "", s:cterm0B, "", "", "") " GitGutter highlighting call hi("GitGutterAdd", s:gui0B, s:gui01, s:cterm0B, s:cterm01, "", "") call hi("GitGutterChange", s:gui0D, s:gui01, s:cterm0D, s:cterm01, "", "") call hi("GitGutterDelete", s:gui08, s:gui01, s:cterm08, s:cterm01, "", "") call hi("GitGutterChangeDelete", s:gui0E, s:gui01, s:cterm0E, s:cterm01, "", "") " HTML highlighting call hi("htmlBold", s:gui0A, "", s:cterm0A, "", "", "") call hi("htmlItalic", s:gui0E, "", s:cterm0E, "", "", "") call hi("htmlEndTag", s:gui05, "", s:cterm05, "", "", "") call hi("htmlTag", s:gui05, "", s:cterm05, "", "", "") " JavaScript highlighting call hi("javaScript", s:gui05, "", s:cterm05, "", "", "") call hi("javaScriptBraces", s:gui05, "", s:cterm05, "", "", "") call hi("javaScriptNumber", s:gui09, "", s:cterm09, "", "", "") " Markdown highlighting call hi("markdownCode", s:gui0B, "", s:cterm0B, "", "", "") call hi("markdownError", s:gui05, s:gui00, s:cterm05, s:cterm00, "", "") call hi("markdownCodeBlock", s:gui0B, "", s:cterm0B, "", "", "") call hi("markdownHeadingDelimiter", s:gui0D, "", s:cterm0D, "", "", "") " NERDTree highlighting call hi("NERDTreeDirSlash", s:gui0D, "", s:cterm0D, "", "", "") call hi("NERDTreeExecFile", s:gui05, "", s:cterm05, "", "", "") " PHP highlighting call hi("phpMemberSelector", s:gui05, "", s:cterm05, "", "", "") call hi("phpComparison", s:gui05, "", s:cterm05, "", "", "") call hi("phpParent", s:gui05, "", s:cterm05, "", "", "") " Python highlighting call hi("pythonOperator", s:gui0E, "", s:cterm0E, "", "", "") call hi("pythonRepeat", s:gui0E, "", s:cterm0E, "", "", "") " Ruby highlighting call hi("rubyAttribute", s:gui0D, "", s:cterm0D, "", "", "") call hi("rubyConstant", s:gui0A, "", s:cterm0A, "", "", "") call hi("rubyInterpolation", s:gui0B, "", s:cterm0B, "", "", "") call hi("rubyInterpolationDelimiter", s:gui0F, "", s:cterm0F, "", "", "") call hi("rubyRegexp", s:gui0C, "", s:cterm0C, "", "", "") call hi("rubySymbol", s:gui0B, "", s:cterm0B, "", "", "") call hi("rubyStringDelimiter", s:gui0B, "", s:cterm0B, "", "", "") " SASS highlighting call hi("sassidChar", s:gui08, "", s:cterm08, "", "", "") call hi("sassClassChar", s:gui09, "", s:cterm09, "", "", "") call hi("sassInclude", s:gui0E, "", s:cterm0E, "", "", "") call hi("sassMixing", s:gui0E, "", s:cterm0E, "", "", "") call hi("sassMixinName", s:gui0D, "", s:cterm0D, "", "", "") " Signify highlighting call hi("SignifySignAdd", s:gui0B, s:gui01, s:cterm0B, s:cterm01, "", "") call hi("SignifySignChange", s:gui0D, s:gui01, s:cterm0D, s:cterm01, "", "") call hi("SignifySignDelete", s:gui08, s:gui01, s:cterm08, s:cterm01, "", "") " Spelling highlighting call hi("SpellBad", "", s:gui00, "", s:cterm00, "undercurl", s:gui08) call hi("SpellLocal", "", s:gui00, "", s:cterm00, "undercurl", s:gui0C) call hi("SpellCap", "", s:gui00, "", s:cterm00, "undercurl", s:gui0D) call hi("SpellRare", "", s:gui00, "", s:cterm00, "undercurl", s:gui0E) " Remove functions delf hi delf gui delf cterm " Remove color variables unlet s:gui00 s:gui01 s:gui02 s:gui03 s:gui04 s:gui05 s:gui06 s:gui07 s:gui08 s:gui09 s:gui0A s:gui0B s:gui0C s:gui0D s:gui0E s:gui0F unlet s:cterm00 s:cterm01 s:cterm02 s:cterm03 s:cterm04 s:cterm05 s:cterm06 s:cterm07 s:cterm08 s:cterm09 s:cterm0A s:cterm0B s:cterm0C s:cterm0D s:cterm0E s:cterm0F