" Vim Code Dark (color scheme) " https://github.com/tomasiser/vim-code-dark scriptencoding utf-8 set background=dark hi clear if exists("syntax_on") syntax reset endif let g:colors_name="codedark" " Highlighting function (inspiration from https://github.com/chriskempson/base16-vim) if &t_Co >= 256 let g:codedark_term256=1 elseif !exists("g:codedark_term256") let g:codedark_term256=0 endif fun! hi(group, fg, bg, attr, sp) if !empty(a:fg) exec "hi " . a:group . " guifg=" . a:fg.gui . " ctermfg=" . (g:codedark_term256 ? a:fg.cterm256 : a:fg.cterm) endif if !empty(a:bg) exec "hi " . a:group . " guibg=" . a:bg.gui . " ctermbg=" . (g:codedark_term256 ? a:bg.cterm256 : a:bg.cterm) endif if a:attr != "" exec "hi " . a:group . " gui=" . a:attr . " cterm=" . a:attr endif if !empty(a:sp) exec "hi " . a:group . " guisp=" . a:sp.gui endif endfun " ------------------ " Color definitions: " ------------------ " Terminal colors (base16): 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 = "00" let s:cterm02 = "08" let s:cterm04 = "07" let s:cterm06 = "07" let s:cterm09 = "06" let s:cterm0F = "03" endif " General appearance colors: " (some of them may be unused) let s:cdNone = {'gui': 'NONE', 'cterm': 'NONE', 'cterm256': 'NONE'} let s:cdFront = {'gui': '#D4D4D4', 'cterm': s:cterm05, 'cterm256': '188'} let s:cdBack = {'gui': '#1E1E1E', 'cterm': s:cterm00, 'cterm256': '234'} let s:cdTabCurrent = {'gui': '#1E1E1E', 'cterm': s:cterm00, 'cterm256': '234'} let s:cdTabOther = {'gui': '#2D2D2D', 'cterm': s:cterm01, 'cterm256': '236'} let s:cdTabOutside = {'gui': '#252526', 'cterm': s:cterm01, 'cterm256': '235'} let s:cdLeftDark = {'gui': '#252526', 'cterm': s:cterm01, 'cterm256': '235'} let s:cdLeftMid = {'gui': '#373737', 'cterm': s:cterm03, 'cterm256': '237'} let s:cdLeftLight = {'gui': '#3F3F46', 'cterm': s:cterm03, 'cterm256': '238'} let s:cdPopupFront = {'gui': '#BBBBBB', 'cterm': s:cterm06, 'cterm256': '250'} let s:cdPopupBack = {'gui': '#2D2D30', 'cterm': s:cterm01, 'cterm256': '236'} let s:cdPopupHighlightBlue = {'gui': '#073655', 'cterm': s:cterm0D, 'cterm256': '24'} let s:cdPopupHighlightGray = {'gui': '#3D3D40', 'cterm': s:cterm03, 'cterm256': '237'} let s:cdSplitLight = {'gui': '#898989', 'cterm': s:cterm04, 'cterm256': '245'} let s:cdSplitDark = {'gui': '#444444', 'cterm': s:cterm03, 'cterm256': '238'} let s:cdSplitThumb = {'gui': '#424242', 'cterm': s:cterm04, 'cterm256': '238'} let s:cdCursorDarkDark = {'gui': '#222222', 'cterm': s:cterm01, 'cterm256': '235'} let s:cdCursorDark = {'gui': '#51504F', 'cterm': s:cterm03, 'cterm256': '239'} let s:cdCursorLight = {'gui': '#AEAFAD', 'cterm': s:cterm04, 'cterm256': '145'} let s:cdSelection = {'gui': '#264F78', 'cterm': s:cterm03, 'cterm256': '24'} let s:cdLineNumber = {'gui': '#5A5A5A', 'cterm': s:cterm04, 'cterm256': '240'} let s:cdDiffRedDark = {'gui': '#4B1818', 'cterm': s:cterm08, 'cterm256': '52'} let s:cdDiffRedLight = {'gui': '#6F1313', 'cterm': s:cterm08, 'cterm256': '52'} let s:cdDiffRedLightLight = {'gui': '#FB0101', 'cterm': s:cterm08, 'cterm256': '09'} let s:cdDiffGreenDark = {'gui': '#373D29', 'cterm': s:cterm0B, 'cterm256': '237'} let s:cdDiffGreenLight = {'gui': '#4B5632', 'cterm': s:cterm09, 'cterm256': '58'} let s:cdSearchCurrent = {'gui': '#49545F', 'cterm': s:cterm09, 'cterm256': '236'} let s:cdSearch = {'gui': '#4C4E50', 'cterm': s:cterm0A, 'cterm256': '236'} " Syntax colors: if !exists("g:codedark_conservative") let g:codedark_conservative=0 endif let s:cdGray = {'gui': '#808080', 'cterm': s:cterm04, 'cterm256': '08'} let s:cdViolet = {'gui': '#646695', 'cterm': s:cterm04, 'cterm256': '60'} let s:cdBlue = {'gui': '#569CD6', 'cterm': s:cterm0D, 'cterm256': '75'} let s:cdDarkBlue = {'gui': '#223E55', 'cterm': s:cterm0D, 'cterm256': '73'} let s:cdLightBlue = {'gui': '#9CDCFE', 'cterm': s:cterm0C, 'cterm256': '117'} if g:codedark_conservative | let s:cdLightBlue = s:cdFront | endif let s:cdGreen = {'gui': '#608B4E', 'cterm': s:cterm0B, 'cterm256': '65'} let s:cdBlueGreen = {'gui': '#4EC9B0', 'cterm': s:cterm0F, 'cterm256': '43'} let s:cdLightGreen = {'gui': '#B5CEA8', 'cterm': s:cterm09, 'cterm256': '151'} let s:cdRed = {'gui': '#F44747', 'cterm': s:cterm08, 'cterm256': '203'} let s:cdOrange = {'gui': '#CE9178', 'cterm': s:cterm0F, 'cterm256': '173'} let s:cdLightRed = {'gui': '#D16969', 'cterm': s:cterm08, 'cterm256': '167'} if g:codedark_conservative | let s:cdLightRed = s:cdOrange | endif let s:cdYellowOrange = {'gui': '#D7BA7D', 'cterm': s:cterm0A, 'cterm256': '179'} let s:cdYellow = {'gui': '#DCDCAA', 'cterm': s:cterm0A, 'cterm256': '187'} if g:codedark_conservative | let s:cdYellow = s:cdFront | endif let s:cdPink = {'gui': '#C586C0', 'cterm': s:cterm0E, 'cterm256': '176'} if g:codedark_conservative | let s:cdPink = s:cdBlue | endif " Vim editor colors " hi(GROUP, FOREGROUND, BACKGROUND, ATTRIBUTE, SPECIAL) call hi('Normal', s:cdFront, s:cdBack, 'none', {}) call hi('ColorColumn', {}, s:cdCursorDarkDark, 'none', {}) call hi('Cursor', s:cdCursorDark, s:cdCursorLight, 'none', {}) call hi('CursorLine', {}, s:cdCursorDarkDark, 'none', {}) call hi('CursorColumn', {}, s:cdCursorDarkDark, 'none', {}) call hi('Directory', s:cdBlue, s:cdBack, 'none', {}) call hi('DiffAdd', {}, s:cdDiffGreenDark, 'none', {}) call hi('DiffChange', {}, s:cdDiffRedDark, 'none', {}) call hi('DiffDelete', {}, s:cdDiffRedLight, 'none', {}) call hi('DiffText', {}, s:cdDiffRedLight, 'none', {}) call hi('EndOfBuffer', s:cdLineNumber, s:cdBack, 'none', {}) call hi('ErrorMsg', s:cdRed, s:cdBack, 'none', {}) call hi('VertSplit', s:cdSplitDark, s:cdBack, 'none', {}) call hi('Folded', s:cdLeftLight, s:cdLeftDark, 'underline', {}) call hi('FoldColumn', s:cdLineNumber, s:cdBack, 'none', {}) call hi('SignColumn', {}, s:cdBack, 'none', {}) call hi('IncSearch', s:cdNone, s:cdSearchCurrent, 'none', {}) call hi('LineNr', s:cdLineNumber, s:cdBack, 'none', {}) call hi('CursorLineNr', s:cdPopupFront, s:cdBack, 'none', {}) call hi('MatchParen', s:cdNone, s:cdCursorDark, 'none', {}) call hi('ModeMsg', s:cdFront, s:cdLeftDark, 'none', {}) call hi('MoreMsg', s:cdFront, s:cdLeftDark, 'none', {}) call hi('NonText', s:cdLineNumber, s:cdBack, 'none', {}) call hi('Pmenu', s:cdPopupFront, s:cdPopupBack, 'none', {}) call hi('PmenuSel', s:cdPopupFront, s:cdPopupHighlightBlue, 'none', {}) call hi('PmenuSbar', {}, s:cdPopupHighlightGray, 'none', {}) call hi('PmenuThumb', {}, s:cdPopupFront, 'none', {}) call hi('Question', s:cdBlue, s:cdBack, 'none', {}) call hi('Search', s:cdNone, s:cdSearch, 'none', {}) call hi('SpecialKey', s:cdBlue, s:cdNone, 'none', {}) call hi('SpellBad', s:cdNone, s:cdNone, 'undercurl', {}) call hi('SpellCap', s:cdNone, s:cdNone, 'undercurl', {}) call hi('SpellLocal', s:cdNone, s:cdNone, 'undercurl', {}) call hi('StatusLine', s:cdFront, s:cdLeftMid, 'none', {}) call hi('StatusLineNC', s:cdFront, s:cdLeftDark, 'none', {}) call hi('TabLine', s:cdFront, s:cdTabOther, 'none', {}) call hi('TabLineFill', s:cdFront, s:cdTabOutside, 'none', {}) call hi('TabLineSel', s:cdFront, s:cdTabCurrent, 'none', {}) call hi('Title', s:cdNone, s:cdNone, 'bold', {}) call hi('Visual', s:cdNone, s:cdSelection, 'none', {}) call hi('VisualNOS', s:cdNone, s:cdSelection, 'none', {}) call hi('WarningMsg', s:cdOrange, s:cdBack, 'none', {}) call hi('WildMenu', s:cdNone, s:cdSelection, 'none', {}) call hi('Comment', s:cdGreen, {}, 'none', {}) call hi('Constant', s:cdBlue, {}, 'none', {}) call hi('String', s:cdOrange, {}, 'none', {}) call hi('Character', s:cdOrange, {}, 'none', {}) call hi('Number', s:cdLightGreen, {}, 'none', {}) call hi('Boolean', s:cdBlue, {}, 'none', {}) call hi('Float', s:cdLightGreen, {}, 'none', {}) call hi('Identifier', s:cdLightBlue, {}, 'none', {}) call hi('Function', s:cdYellow, {}, 'none', {}) call hi('Statement', s:cdPink, {}, 'none', {}) call hi('Conditional', s:cdPink, {}, 'none', {}) call hi('Repeat', s:cdPink, {}, 'none', {}) call hi('Label', s:cdPink, {}, 'none', {}) call hi('Operator', s:cdFront, {}, 'none', {}) call hi('Keyword', s:cdPink, {}, 'none', {}) call hi('Exception', s:cdPink, {}, 'none', {}) call hi('PreProc', s:cdPink, {}, 'none', {}) call hi('Include', s:cdPink, {}, 'none', {}) call hi('Define', s:cdPink, {}, 'none', {}) call hi('Macro', s:cdPink, {}, 'none', {}) call hi('PreCondit', s:cdPink, {}, 'none', {}) call hi('Type', s:cdBlue, {}, 'none', {}) call hi('StorageClass', s:cdBlue, {}, 'none', {}) call hi('Structure', s:cdBlue, {}, 'none', {}) call hi('Typedef', s:cdBlue, {}, 'none', {}) call hi('Special', s:cdFront, {}, 'none', {}) call hi('SpecialChar', s:cdFront, {}, 'none', {}) call hi('Tag', s:cdFront, {}, 'none', {}) call hi('Delimiter', s:cdFront, {}, 'none', {}) call hi('SpecialComment', s:cdGreen, {}, 'none', {}) call hi('Debug', s:cdFront, {}, 'none', {}) call hi('Underlined', s:cdNone, {}, 'underline', {}) call hi("Conceal", s:cdFront, s:cdBack, 'none', {}) call hi('Ignore', s:cdFront, {}, 'none', {}) call hi('Error', s:cdRed, s:cdBack, 'undercurl', s:cdRed) call hi('Todo', s:cdNone, s:cdLeftMid, 'none', {}) " Markdown: call hi('markdownBold', s:cdBlue, {}, 'bold', {}) call hi('markdownCode', s:cdOrange, {}, 'none', {}) call hi('markdownRule', s:cdBlue, {}, 'bold', {}) call hi('markdownCodeDelimiter', s:cdOrange, {}, 'none', {}) call hi('markdownHeadingDelimiter', s:cdBlue, {}, 'none', {}) call hi('markdownFootnote', s:cdOrange, {}, 'none', {}) call hi('markdownFootnoteDefinition', s:cdOrange, {}, 'none', {}) call hi('markdownUrl', s:cdLightBlue, {}, 'underline', {}) call hi('markdownLinkText', s:cdOrange, {}, 'none', {}) call hi('markdownEscape', s:cdYellowOrange, {}, 'none', {}) " JSON: call hi('jsonKeyword', s:cdLightBlue, {}, 'none', {}) call hi('jsonEscape', s:cdYellowOrange, {}, 'none', {}) call hi('jsonNull', s:cdBlue, {}, 'none', {}) call hi('jsonBoolean', s:cdBlue, {}, 'none', {}) " HTML: call hi('htmlTag', s:cdGray, {}, 'none', {}) call hi('htmlEndTag', s:cdGray, {}, 'none', {}) call hi('htmlTagName', s:cdBlue, {}, 'none', {}) call hi('htmlSpecialTagName', s:cdBlue, {}, 'none', {}) call hi('htmlArg', s:cdLightBlue, {}, 'none', {}) " CSS: call hi('cssBraces', s:cdFront, {}, 'none', {}) call hi('cssInclude', s:cdPink, {}, 'none', {}) call hi('cssTagName', s:cdYellowOrange, {}, 'none', {}) call hi('cssClassName', s:cdYellowOrange, {}, 'none', {}) call hi('cssPseudoClass', s:cdYellowOrange, {}, 'none', {}) call hi('cssPseudoClassId', s:cdYellowOrange, {}, 'none', {}) call hi('cssPseudoClassLang', s:cdYellowOrange, {}, 'none', {}) call hi('cssIdentifier', s:cdYellowOrange, {}, 'none', {}) call hi('cssProp', s:cdLightBlue, {}, 'none', {}) call hi('cssDefinition', s:cdLightBlue, {}, 'none', {}) call hi('cssAttr', s:cdOrange, {}, 'none', {}) call hi('cssAttrRegion', s:cdOrange, {}, 'none', {}) call hi('cssColor', s:cdOrange, {}, 'none', {}) call hi('cssFunction', s:cdOrange, {}, 'none', {}) call hi('cssFunctionName', s:cdOrange, {}, 'none', {}) call hi('cssVendor', s:cdOrange, {}, 'none', {}) call hi('cssValueNumber', s:cdOrange, {}, 'none', {}) call hi('cssValueLength', s:cdOrange, {}, 'none', {}) call hi('cssUnitDecorators', s:cdOrange, {}, 'none', {}) " JavaScript: call hi('jsVariableDef', s:cdLightBlue, {}, 'none', {}) call hi('jsFuncArgs', s:cdLightBlue, {}, 'none', {}) call hi('jsRegexpString', s:cdLightRed, {}, 'none', {}) call hi('jsThis', s:cdBlue, {}, 'none', {}) call hi('jsDestructuringBlock', s:cdLightBlue, {}, 'none', {}) call hi('jsObjectKey', s:cdLightBlue, {}, 'none', {}) call hi('jsGlobalObjects', s:cdBlueGreen, {}, 'none', {}) call hi('jsModuleKeyword', s:cdLightBlue, {}, 'none', {}) call hi('jsClassDefinition', s:cdBlueGreen, {}, 'none', {}) call hi('jsClassKeyword', s:cdBlue, {}, 'none', {}) call hi('jsExtendsKeyword', s:cdBlue, {}, 'none', {}) call hi('jsExportDefault', s:cdPink, {}, 'none', {}) call hi('jsFuncCall', s:cdYellow, {}, 'none', {}) call hi('jsObjectKey', s:cdYellow, {}, 'none', {}) call hi('jsObjectValue', s:cdLightBlue, {}, 'none', {}) call hi('jsParen', s:cdLightBlue, {}, 'none', {}) " XML: call hi('xmlTag', s:cdBlueGreen, {}, 'none', {}) call hi('xmlTagName', s:cdBlueGreen, {}, 'none', {}) call hi('xmlEndTag', s:cdBlueGreen, {}, 'none', {}) " Ruby: call hi('rubyClassNameTag', s:cdBlueGreen, {}, 'none', {}) call hi('rubyClassName', s:cdBlueGreen, {}, 'none', {}) call hi('rubyModuleName', s:cdBlueGreen, {}, 'none', {}) call hi('rubyConstant', s:cdBlueGreen, {}, 'none', {}) " Golang: call hi('goPackage', s:cdBlue, {}, 'none', {}) call hi('goImport', s:cdBlue, {}, 'none', {}) call hi('goVar', s:cdBlue, {}, 'none', {}) call hi('goConst', s:cdBlue, {}, 'none', {}) call hi('goStatement', s:cdPink, {}, 'none', {}) call hi('goType', s:cdBlue, {}, 'none', {}) call hi('goSignedInts', s:cdBlue, {}, 'none', {}) call hi('goUnsignedInts', s:cdBlue, {}, 'none', {}) call hi('goFloats', s:cdBlue, {}, 'none', {}) call hi('goComplexes', s:cdBlue, {}, 'none', {}) call hi('goBuiltins', s:cdYellow, {}, 'none', {}) call hi('goBoolean', s:cdBlue, {}, 'none', {}) call hi('goPredefinedIdentifiers', s:cdBlue, {}, 'none', {}) call hi('goTodo', s:cdGreen, {}, 'none', {}) call hi('goDeclaration', s:cdBlue, {}, 'none', {}) call hi('goDeclType', s:cdBlue, {}, 'none', {}) call hi('goTypeDecl', s:cdBlue, {}, 'none', {}) call hi('goTypeName', s:cdBlueGreen, {}, 'none', {}) call hi('goVarAssign', s:cdLightBlue, {}, 'none', {}) call hi('goVarDefs', s:cdLightBlue, {}, 'none', {}) call hi('goReceiver', s:cdFront, {}, 'none', {}) call hi('goReceiverType', s:cdDarkBlue, {}, 'none', {}) call hi('goFunctionCall', s:cdYellow, {}, 'none', {}) call hi('goMethodCall', s:cdYellow, {}, 'none', {}) call hi('goSingleDecl', s:cdLightBlue, {}, 'none', {}) " Python: call hi('pythonStatement', s:cdBlue, {}, 'none', {}) call hi('pythonOperator', s:cdBlue, {}, 'none', {}) call hi('pythonException', s:cdPink, {}, 'none', {}) call hi('pythonExClass', s:cdBlueGreen, {}, 'none', {}) call hi('pythonBuiltinObj', s:cdLightBlue, {}, 'none', {}) call hi('pythonBuiltinType', s:cdBlueGreen, {}, 'none', {}) call hi('pythonBoolean', s:cdBlue, {}, 'none', {}) call hi('pythonNone', s:cdBlue, {}, 'none', {}) call hi('pythonTodo', s:cdBlue, {}, 'none', {}) call hi('pythonClassVar', s:cdBlue, {}, 'none', {}) call hi('pythonClassDef', s:cdBlueGreen, {}, 'none', {}) " TeX: call hi('texStatement', s:cdBlue, {}, 'none', {}) call hi('texBeginEnd', s:cdYellow, {}, 'none', {}) call hi('texBeginEndName', s:cdLightBlue, {}, 'none', {}) call hi('texOption', s:cdLightBlue, {}, 'none', {}) call hi('texBeginEndModifier', s:cdLightBlue, {}, 'none', {}) call hi('texDocType', s:cdPink, {}, 'none', {}) call hi('texDocTypeArgs', s:cdLightBlue, {}, 'none', {}) " Git: call hi('gitcommitHeader', s:cdGray, {}, 'none', {}) call hi('gitcommitOnBranch', s:cdGray, {}, 'none', {}) call hi('gitcommitBranch', s:cdPink, {}, 'none', {}) call hi('gitcommitComment', s:cdGray, {}, 'none', {}) call hi('gitcommitSelectedType', s:cdGreen, {}, 'none', {}) call hi('gitcommitSelectedFile', s:cdGreen, {}, 'none', {}) call hi('gitcommitDiscardedType', s:cdRed, {}, 'none', {}) call hi('gitcommitDiscardedFile', s:cdRed, {}, 'none', {}) call hi('gitcommitOverflow', s:cdRed, {}, 'none', {}) call hi('gitcommitSummary', s:cdPink, {}, 'none', {}) call hi('gitcommitBlank', s:cdPink, {}, 'none', {})