" " " ███████╗██████╗ █████╗ ██████╗███████╗ ██████╗ █████╗ ███╗ ███╗██████╗ " ██╔════╝██╔══██╗██╔══██╗██╔════╝██╔════╝██╔════╝██╔══██╗████╗ ████║██╔══██╗ " ███████╗██████╔╝███████║██║ █████╗ ██║ ███████║██╔████╔██║██████╔╝ " ╚════██║██╔═══╝ ██╔══██║██║ ██╔══╝ ██║ ██╔══██║██║╚██╔╝██║██╔═══╝ " ███████║██║ ██║ ██║╚██████╗███████╗╚██████╗██║ ██║██║ ╚═╝ ██║██║ " ╚══════╝╚═╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝ ╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ " " Vim colors for the final frontier " " by Jared Gorski " https://github.com/jaredgorski/spacecamp scriptencoding utf-8 set background=dark hi clear if exists("syntax_on") syntax reset endif let g:colors_name="spacecamp" " ========================== " Highlighting Function " ========================== " >> (inspired by https://github.com/tomasiser/vim-code-dark and https://github.com/chriskempson/base16-vim) fun! hi(group, fg, bg, attr) if !empty(a:fg) exec "hi " . a:group . " guifg=" . a:fg.gui . " ctermfg=" . a:fg.cterm256 endif if !empty(a:bg) exec "hi " . a:group . " guibg=" . a:bg.gui . " ctermbg=" . a:bg.cterm256 endif if a:attr != "" exec "hi " . a:group . " gui=" . a:attr . " cterm=" . a:attr endif endfun " ========================== " Color Variables " ========================== let s:spaceBlack = {'gui': '#121212', 'cterm256': '233'} let s:spaceBlack2 = {'gui': '#262626', 'cterm256': '235'} let s:spaceGray1 = {'gui': '#3E3D32', 'cterm256': '237'} let s:spaceGray2 = {'gui': '#49483E', 'cterm256': '239'} let s:spaceGray3 = {'gui': '#6B6B6B', 'cterm256': '242'} let s:spaceGray4 = {'gui': '#B0B0B0', 'cterm256': '249'} let s:spaceSteel = {'gui': '#DEDEDE', 'cterm256': '253'} let s:spaceWhite = {'gui': '#F8F8F8', 'cterm256': '231'} let s:spaceViolet = {'gui': '#CF73E6', 'cterm256': '170'} let s:spaceBlue = {'gui': '#91AADF', 'cterm256': '110'} let s:spaceBlue2 = {'gui': '#B7CBF4', 'cterm256': '111'} let s:spaceGreen = {'gui': '#57BA37', 'cterm256': '71'} let s:spaceGoo = {'gui': '#D8FA3B', 'cterm256': '191'} let s:spaceGold = {'gui': '#F0D50C', 'cterm256': '220'} let s:spaceOrange = {'gui': '#F66100', 'cterm256': '202'} let s:spaceRed = {'gui': '#821A1A', 'cterm256': '1'} let s:spaceRed2 = {'gui': '#FF0000', 'cterm256': '196'} let s:none = {'gui': 'NONE', 'cterm256': 'NONE'} " ========================== " Definitions " ========================== " hi(GROUP, FOREGROUND, BACKGROUND, ATTRIBUTE) " Editor call hi('ColorColumn', s:none, s:spaceGray1, 'none') call hi('Cursor', s:spaceBlack, s:spaceSteel, 'none') call hi('CursorColumn', s:none, s:spaceGray1, 'none') call hi('CursorLine', s:none, s:spaceGray1, 'none') call hi('CursorLineNr', s:spaceSteel, s:spaceGray1, 'none') call hi('Directory', s:spaceBlue, s:spaceBlack, 'none') call hi('Folded', s:spaceGray3, s:none, 'none') call hi('IncSearch', s:spaceBlack, s:spaceBlue2, 'none') call hi('LineNr', s:spaceGray3, s:spaceBlack2, 'none') call hi('MatchParen', s:spaceBlack, s:spaceGold, 'none') call hi('Normal', s:spaceWhite, s:spaceBlack, 'none') call hi('Pmenu', s:none, s:none, 'none') call hi('PmenuSel', s:none, s:spaceGray2, 'none') call hi('Search', s:spaceBlack, s:spaceBlue, 'none') call hi('StatusLine', s:spaceBlack, s:spaceSteel, 'none') call hi('StatusLineNC', s:spaceGray3, s:spaceBlack2, 'none') call hi('VertSplit', s:spaceGray3, s:spaceGray3, 'none') call hi('Visual', s:none, s:spaceGray2, 'none') " General call hi('Boolean', s:spaceGoo, s:none, 'none') call hi('Character', s:spaceGoo, s:none, 'none') call hi('Comment', s:spaceGray3, s:none, 'none') call hi('Conditional', s:spaceViolet, s:none, 'none') call hi('Constant', s:spaceOrange, s:none, 'none') call hi('Define', s:spaceViolet, s:none, 'none') call hi('DiffAdd', s:spaceBlack, s:spaceGreen, 'none') call hi('DiffChange', s:spaceBlack, s:spaceGold, 'none') call hi('DiffDelete', s:spaceWhite, s:spaceRed, 'none') call hi('DiffText', s:spaceGray1, s:spaceBlue, 'none') call hi('ErrorMsg', s:spaceWhite, s:spaceRed, 'none') call hi('Float', s:spaceGoo, s:none, 'none') call hi('Function', s:spaceBlue, s:none, 'none') call hi('Identifier', s:spaceGold, s:none, 'none') call hi('Keyword', s:spaceGold, s:none, 'none') call hi('Label', s:spaceGreen, s:none, 'none') call hi('NonText', s:spaceGray1, s:spaceBlack, 'none') call hi('Number', s:spaceGoo, s:none, 'none') call hi('Operator', s:spaceViolet, s:none, 'none') call hi('PreProc', s:spaceViolet, s:none, 'none') call hi('Special', s:spaceWhite, s:none, 'none') call hi('SpecialKey', s:spaceGray1, s:spaceBlack, 'none') call hi('SpellBad', s:none, s:none, 'undercurl') call hi('SpellCap', s:none, s:none, 'undercurl') call hi('SpellLocal', s:none, s:none, 'undercurl') call hi('Statement', s:spaceViolet, s:none, 'none') call hi('StorageClass', s:spaceGold, s:none, 'none') call hi('String', s:spaceGreen, s:none, 'none') call hi('Tag', s:spaceGold, s:none, 'none') call hi('Title', s:none, s:none, 'bold') call hi('Todo', s:spaceGray3, s:none, 'inverse,bold') call hi('Type', s:none, s:none, 'none') call hi('Underlined', s:none, s:none, 'underline') call hi('WarningMsg', s:spaceWhite, s:spaceRed, 'none') " Diff Mode if &diff call hi('DiffAdd', s:spaceBlack, s:spaceGreen, 'none') call hi('DiffChange', s:spaceBlack, s:spaceGold, 'none') call hi('DiffDelete', s:spaceRed2, s:spaceRed, 'none') call hi('DiffText', s:spaceGray1, s:spaceBlue, 'none') else call hi('DiffAdd', s:spaceGreen, s:none, 'none') call hi('DiffChange', s:spaceGold, s:none, 'none') call hi('DiffDelete', s:spaceRed2, s:none, 'none') call hi('DiffText', s:spaceSteel, s:spaceBlue, 'none') endif " CSS call hi('cssAttr', s:spaceViolet, s:none, 'none') call hi('cssAttrRegion', s:spaceViolet, s:none, 'none') call hi('cssBraces', s:spaceWhite, s:none, 'none') call hi('cssBrowserPrefix', s:spaceSteel, s:none, 'none') call hi('cssClassName', s:spaceBlue2, s:none, 'none') call hi('cssClassNameDot', s:spaceSteel, s:none, 'none') call hi('cssClassSelectorDot', s:spaceSteel, s:none, 'none') call hi('cssColor', s:spaceSteel, s:none, 'none') call hi('cssCommonAttr', s:spaceViolet, s:none, 'none') call hi('cssCustomProperty', s:spaceGray4, s:none, 'none') call hi('cssDefinition', s:spaceGray4, s:none, 'none') call hi('cssFunction', s:spaceSteel, s:none, 'none') call hi('cssFunctionName', s:spaceBlue, s:none, 'none') call hi('cssIdentifier', s:spaceBlue2, s:none, 'none') call hi('cssImportant', s:spaceOrange, s:none, 'none') call hi('cssInclude', s:spaceSteel, s:none, 'none') call hi('cssMedia', s:spaceGoo, s:none, 'none') call hi('cssMediaBlock', s:spaceGoo, s:none, 'none') call hi('cssProp', s:spaceGray4, s:none, 'none') call hi('cssGeneratedContentProp', s:spaceGray4, s:none, 'none') call hi('cssTextProp', s:spaceGray4, s:none, 'none') call hi('cssAnimationProp', s:spaceGray4, s:none, 'none') call hi('cssUIProp', s:spaceGray4, s:none, 'none') call hi('cssTransformProp', s:spaceGray4, s:none, 'none') call hi('cssTransitionProp', s:spaceGray4, s:none, 'none') call hi('cssPrintProp', s:spaceGray4, s:none, 'none') call hi('cssPositioningProp', s:spaceGray4, s:none, 'none') call hi('cssBoxProp', s:spaceGray4, s:none, 'none') call hi('cssFontDescriptorProp', s:spaceGray4, s:none, 'none') call hi('cssFlexibleBoxProp', s:spaceGray4, s:none, 'none') call hi('cssBorderOutlineProp', s:spaceGray4, s:none, 'none') call hi('cssBackgroundProp', s:spaceGray4, s:none, 'none') call hi('cssMarginProp', s:spaceGray4, s:none, 'none') call hi('cssListProp', s:spaceGray4, s:none, 'none') call hi('cssTableProp', s:spaceGray4, s:none, 'none') call hi('cssFontProp', s:spaceGray4, s:none, 'none') call hi('cssPaddingProp', s:spaceGray4, s:none, 'none') call hi('cssDimensionProp', s:spaceGray4, s:none, 'none') call hi('cssRenderProp', s:spaceGray4, s:none, 'none') call hi('cssColorProp', s:spaceGray4, s:none, 'none') call hi('cssGeneratedContentProp', s:spaceGray4, s:none, 'none') call hi('cssPropDefinition', s:spaceGray4, s:none, 'none') call hi('cssPseudoClass', s:spaceGold, s:none, 'none') call hi('cssPseudoClassId', s:spaceGold, s:none, 'none') call hi('cssPseudoClassLang', s:spaceGold, s:none, 'none') call hi('cssSelectorOperator', s:spaceSteel, s:none, 'none') call hi('cssTagName', s:spaceBlue2, s:none, 'none') call hi('cssURL', s:spaceGold, s:none, 'none') call hi('cssUnitDecorators', s:spaceViolet, s:none, 'none') call hi('cssUnits', s:spaceViolet, s:none, 'none') call hi('cssValueLength', s:spaceBlue, s:none, 'none') call hi('cssValueNumber', s:spaceBlue, s:none, 'none') call hi('cssValueKeyword', s:spaceGreen, s:none, 'none') call hi('cssVendor', s:spaceSteel, s:none, 'none') " HTML call hi('htmlArg', s:spaceViolet, s:none, 'none') call hi('htmlEndTag', s:spaceSteel, s:none, 'none') call hi('htmlSpecialChar', s:spaceGoo, s:none, 'none') call hi('htmlSpecialTagName', s:spaceBlue2, s:none, 'none') call hi('htmlTag', s:spaceSteel, s:none, 'none') call hi('htmlTagName', s:spaceBlue2, s:none, 'none') " JavaScript call hi('javaScript', s:spaceWhite, s:none, 'none') call hi('javaScriptFunction', s:spaceGold, s:none, 'none') call hi('javaScriptIdentifier', s:spaceBlue, s:none, 'none') call hi('javaScriptMember', s:spaceSteel, s:none, 'none') call hi('javaScriptNull', s:spaceGoo, s:none, 'none') call hi('javaScriptNumber', s:spaceGoo, s:none, 'none') call hi('javaScriptNumber', s:spaceGoo, s:none, 'none') call hi('javaScriptParens', s:spaceWhite, s:none, 'none') call hi('javaScriptSpecial', s:spaceGoo, s:none, 'none') call hi('javaScriptStringS', s:spaceGreen, s:none, 'none') call hi('javascriptArrayMethod', s:spaceSteel, s:none, 'none') call hi('javascriptArrayStaticMethod', s:spaceSteel, s:none, 'none') call hi('javascriptArrowFunc', s:spaceGold, s:none, 'none') call hi('javascriptAsyncFuncKeyword', s:spaceGold, s:none, 'none') call hi('javascriptAwaitFuncKeyword', s:spaceGold, s:none, 'none') call hi('javascriptBraces', s:spaceWhite, s:none, 'none') call hi('javascriptBrackets', s:spaceWhite, s:none, 'none') call hi('javascriptCacheMethod', s:spaceSteel, s:none, 'none') call hi('javascriptClassExtends', s:spaceSteel, s:none, 'none') call hi('javascriptClassKeyword', s:spaceGold, s:none, 'none') call hi('javascriptClassName', s:spaceBlue, s:none, 'none') call hi('javascriptClassSuperName', s:spaceBlue, s:none, 'none') call hi('javascriptDOMElemAttrs', s:spaceSteel, s:none, 'none') call hi('javascriptDOMEventMethod', s:spaceSteel, s:none, 'none') call hi('javascriptDOMNodeMethod', s:spaceSteel, s:none, 'none') call hi('javascriptDOMStorageMethod', s:spaceSteel, s:none, 'none') call hi('javascriptDateMethod', s:spaceSteel, s:none, 'none') call hi('javascriptDefault', s:spaceGold, s:none, 'none') call hi('javascriptDocNamedParamType', s:spaceGray4, s:none, 'none') call hi('javascriptDocNotation', s:spaceGray4, s:none, 'none') call hi('javascriptDocParamName', s:spaceGray4, s:none, 'none') call hi('javascriptDocParamType', s:spaceGray4, s:none, 'none') call hi('javascriptDocTags', s:spaceGray4, s:none, 'none') call hi('javascriptEndColons', s:spaceWhite, s:none, 'none') call hi('javascriptExport', s:spaceViolet, s:none, 'none') call hi('javascriptHeadersMethod', s:spaceSteel, s:none, 'none') call hi('javascriptIdentifierName', s:spaceBlue, s:none, 'none') call hi('javascriptImport', s:spaceViolet, s:none, 'none') call hi('javascriptLabel', s:spaceSteel, s:none, 'none') call hi('javascriptLogicSymbols', s:spaceViolet, s:none, 'none') call hi('javascriptMathStaticMethod', s:spaceSteel, s:none, 'none') call hi('javascriptObjectLabel', s:spaceSteel, s:none, 'none') call hi('javascriptOperator', s:spaceViolet, s:none, 'none') call hi('javascriptPropertyName', s:spaceSteel, s:none, 'none') call hi('javascriptStringMethod', s:spaceSteel, s:none, 'none') call hi('javascriptVariable', s:spaceWhite, s:none, 'none') call hi('javascriptYield', s:spaceGold, s:none, 'none') call hi('jsArrowFunction', s:spaceGold, s:none, 'none') call hi('jsClassDefinition', s:spaceBlue, s:none, 'none') call hi('jsClassKeyword', s:spaceGold, s:none, 'none') call hi('jsDecorator', s:spaceGoo, s:none, 'none') call hi('jsDestructuringBlock', s:spaceSteel, s:none, 'none') call hi('jsExportDefault', s:spaceGold, s:none, 'none') call hi('jsExtendsKeyword', s:spaceSteel, s:none, 'none') call hi('jsFuncArgs', s:spaceSteel, s:none, 'none') call hi('jsFuncCall', s:spaceBlue, s:none, 'none') call hi('jsFunction', s:spaceGold, s:none, 'none') call hi('jsGlobalObjects', s:spaceOrange, s:none, 'none') call hi('jsModuleKeyword', s:spaceSteel, s:none, 'none') call hi('jsNull', s:spaceGoo, s:none, 'none') call hi('jsObjectBraces', s:spaceWhite, s:none, 'none') call hi('jsObjectKey', s:spaceSteel, s:none, 'none') call hi('jsObjectStringKey', s:spaceGreen, s:none, 'none') call hi('jsRegexpString', s:spaceGoo, s:none, 'none') call hi('jsReturn', s:spaceViolet, s:none, 'none') call hi('jsSpecial', s:spaceGoo, s:none, 'none') call hi('jsSuper', s:spaceOrange, s:none, 'none') call hi('jsTemplateBraces', s:spaceSteel, s:none, 'none') call hi('jsTemplateString', s:spaceGreen, s:none, 'none') call hi('jsThis', s:spaceBlue, s:none, 'none') call hi('jsVariableDef', s:spaceWhite, s:none, 'none') " JSX call hi('jsxAttrib', s:spaceViolet, s:none, 'none') call hi('jsxAttributeBraces', s:spaceWhite, s:none, 'none') call hi('jsxCloseString', s:spaceBlue2, s:none, 'none') call hi('jsxCloseTag', s:spaceSteel, s:none, 'none') call hi('jsxString', s:spaceGreen, s:none, 'none') call hi('jsxTag', s:spaceSteel, s:none, 'none') call hi('jsxTagName', s:spaceBlue2, s:none, 'none') " Ruby call hi('rubyBlockParameter', s:spaceBlue, s:none, 'none') call hi('rubyClass', s:spaceViolet, s:none, 'none') call hi('rubyClassVariable', s:spaceWhite, s:none, 'none') call hi('rubyConstant', s:spaceOrange, s:none, 'none') call hi('rubyControl', s:spaceViolet, s:none, 'none') call hi('rubyEscape', s:spaceGoo, s:none, 'none') call hi('rubyException', s:spaceViolet, s:none, 'none') call hi('rubyFunction', s:spaceBlue, s:none, 'none') call hi('rubyGlobalVariable', s:spaceWhite, s:none, 'none') call hi('rubyInclude', s:spaceViolet, s:none, 'none') call hi('rubyInstanceVariable', s:spaceWhite, s:none, 'none') call hi('rubyInterpolationDelimiter', s:none, s:none, 'none') call hi('rubyOperator', s:spaceViolet, s:none, 'none') call hi('rubyPseudoVariable', s:spaceWhite, s:none, 'none') call hi('rubyRegexp', s:spaceGreen, s:none, 'none') call hi('rubyRegexpDelimiter', s:spaceGreen, s:none, 'none') call hi('rubyStringDelimiter', s:spaceGreen, s:none, 'none') call hi('rubySymbol', s:spaceGoo, s:none, 'none') " Ruby (Embedded) call hi('erubyComment', s:spaceGray3, s:none, 'none') call hi('erubyDelimiter', s:none, s:none, 'none') call hi('erubyRailsMethod', s:spaceOrange, s:none, 'none') " Ruby on Rails call hi('rubyRailsARAssociationMethod', s:spaceOrange, s:none, 'none') call hi('rubyRailsARMethod', s:spaceOrange, s:none, 'none') call hi('rubyRailsMethod', s:spaceOrange, s:none, 'none') call hi('rubyRailsRenderMethod', s:spaceOrange, s:none, 'none') call hi('rubyRailsUserClass', s:spaceOrange, s:none, 'none') " XML call hi('xmlAttrib', s:spaceViolet, s:none, 'none') call hi('xmlEndTag', s:spaceSteel, s:none, 'none') call hi('xmlTag', s:spaceSteel, s:none, 'none') call hi('xmlTagName', s:spaceBlue2, s:none, 'none') " YAML call hi('yamlAlias', s:spaceWhite, s:none, 'none') call hi('yamlAnchor', s:spaceWhite, s:none, 'none') call hi('yamlDocumentHeader', s:spaceGreen, s:none, 'none') call hi('yamlKey', s:spaceGold, s:none, 'none')