" ------------------- jinx ---------------------- " " Written by Nathaniel Maia, December 2017 " " ----------------------------------------------- " " ---------- Setup and Checks ----------- " {{{1 " Pre {{{2 if !has('gui_running') && &t_Co != 256 finish endif if exists('syntax_on') highlight clear syntax reset endif let g:colors_name = 'jinx' " Colors {{{1 " empty color dictionary let s:jinx = {} " NOTE: For those looking to edit the theme " " Color definition is done for both true color " and 256 color. The format is in ['HEX', 256color] " " eg. let s:jinx.black = ['#000000', 0] " completion menu, wildmenu, and status/tab lines let s:jinx.menu_bgr = ['#2c3135', 238] let s:jinx.menu_fgr = ['#808080', 102] let s:jinx.menusel_bgr = ['#1F2326', 235] let s:jinx.menusel_fgr = ['#E1E1E1', 251] let s:jinx.menualt_fgr = ['#E1E1E1', 251] let s:jinx.menualt_bgr = ['#37383D', 237] let s:jinx.tabsel_bgr = ['#8DBC8D', 108] " background, foreground, line, visual selection, folds, and comments " as well as standard 1-7 colors: " red, green, yellow, blue, purple, cyan, and orange (instead of white) if exists('g:jinx_colors') && g:jinx_colors =~? 'day' set background=light let s:jinx.fgr = ['#494949', 238] let s:jinx.bgr = ['#E1E1E1', 255] let s:jinx.line = ['#D0D0D0', 252] let s:jinx.select = ['#D0D0D0', 252] let s:jinx.folded = ['#B2B2B2', 249] let s:jinx.commnt = ['#808080', 244] let s:jinx.red = ['#EF7878', 210] let s:jinx.green = ['#78A078', 108] let s:jinx.yellow = ['#CE9D00', 178] let s:jinx.blue = ['#4E88CF', 32] let s:jinx.purple = ['#AF86C8', 140] let s:jinx.cyan = ['#00AFAF', 37] let s:jinx.orange = ['#E0914C', 172] else set background=dark let s:jinx.fgr = ['#E1E1E1', 255] let s:jinx.bgr = ['#1c2023', 234] let s:jinx.line = ['#2c3135', 67] let s:jinx.select = ['#2c3135', 67] let s:jinx.folded = ['#414449', 239] let s:jinx.commnt = ['#B9B9B9', 102] let s:jinx.red = ['#FF777A', 210] let s:jinx.green = ['#8DBC8D', 108] let s:jinx.yellow = ['#FFEB56', 220] let s:jinx.blue = ['#6699CC', 32] let s:jinx.purple = ['#CC99CC', 140] let s:jinx.cyan = ['#5DD5FF', 81] let s:jinx.orange = ['#FF9157', 208] endif function! HighLight(GRP, FG, BG, ATT) abort " {{{1 if a:FG !=# '' let l:fg_col = get(s:jinx, a:FG) let l:fg_true = l:fg_col[0] let l:fg_term = l:fg_col[1] exec 'highlight! '.a:GRP.' guifg='.l:fg_true.' ctermfg='.l:fg_term endif if a:BG !=# '' let l:bg_col = get(s:jinx, a:BG) let l:bg_true = l:bg_col[0] let l:bg_term = l:bg_col[1] exec 'highlight! '.a:GRP.' guibg='.l:bg_true.' ctermbg='.l:bg_term endif if a:ATT !=# '' exec 'highlight! '.a:GRP.' gui='.a:ATT.' cterm='.a:ATT endif endfunction " ---------- Highlight Groups ------------ " {{{1 " Editor {{{2 call HighLight('Title', 'commnt', 'bgr', 'bold') call HighLight('Visual', '', 'select', '') call HighLight('SignColumn', '', 'line', '') call HighLight('CursorLine', '', 'line', 'none') call HighLight('CursorColumn', '', 'line', '') call HighLight('CursorLineNr', 'cyan', 'line', '') call HighLight('LineNr', 'commnt', 'line', '') call HighLight('ColorColumn', 'fgr', 'red', '') call HighLight('Error', 'red', 'bgr', '') call HighLight('ErrorMsg', 'red', 'bgr', '') call HighLight('WarningMsg', 'red', 'bgr', '') call HighLight('MatchParen', 'blue', 'bgr', 'bold') call HighLight('ModeMsg', 'cyan', 'bgr', '') call HighLight('MoreMsg', 'cyan', 'bgr', '') call HighLight('Directory', 'blue', 'bgr', '') call HighLight('Question', 'green', 'bgr', '') call HighLight('NonText', 'commnt', 'bgr', '') call HighLight('SpecialKey', 'commnt', 'bgr', '') call HighLight('Folded', 'commnt', 'folded', '') call HighLight('Search', 'bgr', 'blue', '') call HighLight('Normal', 'fgr', 'bgr', '') call HighLight('VertSplit', 'menu_bgr', 'menu_fgr', '') " Tabline {{{2 call HighLight('TabLine', 'menu_fgr', 'menu_bgr', 'none') call HighLight('TabLineFill', 'menu_bgr', 'menu_bgr', '') call HighLight('TabLineSel', 'tabsel_bgr', 'menu_bgr', 'bold') call HighLight('WildMenu', 'menusel_fgr', 'menu_bgr', 'bold') call HighLight('Pmenu', 'menusel_fgr', 'menu_bgr', 'bold') call HighLight('PmenuSel', 'menusel_bgr', 'menusel_fgr', 'bold') call HighLight('PmenuSbar', 'menu_fgr', 'menu_bgr', '') call HighLight('PmenuThumb', 'menu_fgr', 'menu_bgr', '') call HighLight('StatusLine', 'menu_bgr', 'menu_fgr', '') call HighLight('StatusLineNC', 'menu_fgr', 'menu_bgr', '') if has('spell') " {{{2 call HighLight('SpellBad', '', '', 'undercurl') call HighLight('SpellLocal', '', '', 'undercurl') call HighLight('SpellRare', '', '', 'undercurl') endif if exists('g:loaded_ctrlp') " {{{2 call HighLight('CtrlPNoEntries', 'red', '', 'bold') call HighLight('CtrlPMatch', 'blue', '', 'bold') call HighLight('CtrlPLinePre', 'blue', 'menu_bgr', 'none') call HighLight('CtrlPPrtBase', 'blue', '', 'none') call HighLight('CtrlPPrtCursor', 'menu_fgr', 'menu_bgr', 'bold') call HighLight('CtrlPMode1', 'menu_fgr', 'menu_bgr', 'bold') call HighLight('CtrlPMode2', 'menu_fgr', 'menu_bgr', 'bold') call HighLight('CtrlPStats', 'menu_fgr', 'menu_bgr', 'bold') endif if exists('g:loaded_ale') " {{{2 call HighLight('ALEErrorSign', 'red', 'line', 'bold') call HighLight('ALEWarningSign', 'orange', 'line', 'bold') endif " Generic {{{2 call HighLight('Comment', 'commnt', '', '') call HighLight('Todo', 'red', 'bgr', 'bold') call HighLight('Float', 'cyan', '', '') call HighLight('Character', 'cyan', '', '') call HighLight('String', 'cyan', '', '') call HighLight('Number', 'cyan', '', 'bold') call HighLight('Boolean', 'cyan', '', 'bold') call HighLight('Exception', 'blue', '', 'bold') call HighLight('Include', 'blue', '', '') call HighLight('Operator', 'blue', '', 'bold') call HighLight('Label', 'green', '', '') call HighLight('Repeat', 'green', '', '') call HighLight('Statement', 'green', '', '') call HighLight('Conditional', 'green', '', '') call HighLight('Keyword', 'green', '', 'bold') call HighLight('Structure', 'purple', '', 'bold') call HighLight('StorageClass', 'purple', '', 'bold') call HighLight('Type', 'purple', '', 'bold') call HighLight('Tag', 'purple', '', 'bold') call HighLight('Macro', 'purple', '', 'bold') call HighLight('Special', 'purple', '', 'bold') call HighLight('TypeDef', 'purple', '', 'bold') call HighLight('Define', 'yellow', '', 'bold') call HighLight('Constant', 'yellow', '', 'bold') call HighLight('PreProc', 'yellow', '', '') call HighLight('Identifier', 'yellow', '', 'bold') call HighLight('PreCondit', 'yellow', '', '') call HighLight('Function', 'orange', '', 'bold') call HighLight('Conceal', 'orange', '', '') " Vim {{{2 call HighLight('vimCommand', 'green', '', 'bold') call HighLight('vimGroup', 'yellow', '', 'bold') call HighLight('vimGroupName', 'yellow', '', 'bold') call HighLight('VimFunction', 'orange', '', 'bold') call HighLight('vimMapModKey', 'purple', '', 'bold') call HighLight('vimBracket', 'purple', '', 'bold') call HighLight('vimOption', 'purple', '', 'bold') call HighLight('vimMapMod', 'purple', '', '') call HighLight('vimNotation', 'purple', '', '') " Shell {{{2 call HighLight('shStatement', 'green', '', 'bold') call HighLight('shKeyword', 'purple', '', 'bold') call HighLight('zshStatement', 'purple', '', 'bold') call HighLight('zshOption', 'purple', '', 'bold') call HighLight('zshFunction', 'orange', '', 'bold') call HighLight('zshVariableDef', 'yellow', '', '') call HighLight('zshOperator', 'blue', '', 'bold') " C {{{2 call HighLight('cConditional', 'green', '', '') call HighLight('cRepeat', 'purple', '', '') call HighLight('cStorageClass', 'purple', '', '') call HighLight('cType', 'yellow', '', '') " PHP {{{2 call HighLight('phpMemberSelector', 'blue', '', '') call HighLight('phpVarSelector', 'red', '', '') call HighLight('phpConditional', 'green', '', '') call HighLight('phpStatement', 'green', '', 'bold') call HighLight('phpKeyword', 'purple', '', 'bold') call HighLight('phpRepeat', 'purple', '', '') " Ruby {{{2 call HighLight('rubyInclude', 'blue', '', '') call HighLight('rubyAttribute', 'blue', '', '') call HighLight('rubySymbol', 'green', '', '') call HighLight('rubyStringDelimiter', 'green', '', '') call HighLight('rubyRepeat', 'purple', '', '') call HighLight('rubyControl', 'purple', '', '') call HighLight('rubyConditional', 'purple', '', '') call HighLight('rubyException', 'purple', '', '') call HighLight('rubyCurlyBlock', 'orange', '', '') call HighLight('rubyLocalVariableOrMethod', 'orange', '', '') call HighLight('rubyInterpolationDelimiter', 'orange', '', '') call HighLight('rubyAccess', 'yellow', '', '') call HighLight('rubyConstant', 'yellow', '', '') " Python {{{2 call HighLight('pythonRun', 'red', '', '') call HighLight('pythonDecorator', 'red', '', 'bold') call HighLight('pythonExClass', 'blue', '', '') call HighLight('pythonException', 'blue', '', 'bold') call HighLight('pythonExceptions', 'blue', '', 'bold') call HighLight('pythonEscape', 'blue', '', '') call HighLight('pythonImport', 'green', '', 'bold') call HighLight('pythonRepeat', 'green', '', '') call HighLight('pythonCoding', 'green', '', '') call HighLight('pythonInclude', 'green', '', 'bold') call HighLight('pythonPreCondit', 'green', '', '') call HighLight('pythonStatement', 'green', '', 'bold') call HighLight('pythonConditional', 'green', '', '') call HighLight('pythonDef', 'yellow', '', 'bold') call HighLight('pythonBuiltin', 'purple', '', 'bold') call HighLight('pythonBuiltinObj', 'purple', '', 'bold') call HighLight('pythonBuiltinFunc', 'orange', '', 'bold') call HighLight('pythonDot', 'orange', '', 'bold') call HighLight('pythonLambda', 'orange', '', '') call HighLight('pythonFunction', 'orange', '', 'bold') call HighLight('pythonDottedName', 'orange', '', '') call HighLight('pythonBuiltinObjs', 'orange', '', '') " LaTeX {{{2 call HighLight('texZone', 'red', '', 'none') call HighLight('texStatement', 'blue', '', 'none') call HighLight('texRefLabel', 'blue', '', 'none') call HighLight('texRefZone', 'green', '', 'none') call HighLight('texMath', 'orange', '', 'none') call HighLight('texMathZoneX', 'orange', '', 'none') call HighLight('texMathZoneA', 'orange', '', 'none') call HighLight('texMathZoneB', 'orange', '', 'none') call HighLight('texMathZoneC', 'orange', '', 'none') call HighLight('texMathZoneD', 'orange', '', 'none') call HighLight('texMathZoneE', 'orange', '', 'none') call HighLight('texMathMatcher', 'orange', '', 'none') call HighLight('texDelimiter', 'purple', '', 'none') call HighLight('texComment', 'commnt', '', 'none') " JavaScript {{{2 call HighLight('javaScriptNumber', 'cyan', '', 'bold') call HighLight('javascriptNull', 'red', '', 'bold') call HighLight('javascriptStatement', 'green', '', '') call HighLight('javaScriptConditional', 'green', '', '') call HighLight('javaScriptRepeat', 'purple', '', '') call HighLight('javaScriptBraces', 'purple', '', 'bold') call HighLight('javascriptGlobal', 'yellow', '', 'bold') call HighLight('javaScriptFunction', 'orange', '', 'bold') call HighLight('javaScriptMember', 'orange', '', 'bold') " HTML {{{2 call HighLight('htmlTag', 'red', '', '') call HighLight('htmlTagName', 'red', '', 'bold') call HighLight('htmlLink', 'blue', '', 'bold') call HighLight('htmlArg', 'green', '', 'bold') call HighLight('htmlScriptTag', 'purple', '', 'bold') call HighLight('htmlTitle', 'blue', '', 'bold') call HighLight('htmlH1', 'blue', '', 'bold') call HighLight('htmlH2', 'cyan', '', '') call HighLight('htmlH3', 'cyan', '', '') call HighLight('htmlH4', 'green', '', '') call HighLight('htmlH5', 'green', '', '') " YAML {{{2 call HighLight('yamlKey', 'red', '', '') call HighLight('yamlAnchor', 'red', '', '') call HighLight('yamlAlias', 'blue', '', '') call HighLight('yamlDocumentHeader', 'green', '', '') " Markdown {{{2 call HighLight('markdownHeadingRule', 'red', '', '') call HighLight('markdownHeadingDelimiter', 'red', '', '') call HighLight('markdownListMarker', 'blue', '', '') call HighLight('markdownOrderedListMarker', 'blue', '', '') call HighLight('markdownCode', 'purple', '', '') call HighLight('markdownCodeBlock', 'purple', '', 'bold') call HighLight('markdownCodeDelimiter', 'orange', '', 'bold') call HighLight('markdownH1', 'blue', '', 'bold') call HighLight('markdownH2', 'blue', '', 'bold') call HighLight('markdownH3', 'cyan', '', '') call HighLight('markdownH4', 'cyan', '', '') call HighLight('markdownH5', 'green', '', '') " ShowMarks {{{2 call HighLight('ShowMarksHLm', 'cyan', '', '') call HighLight('ShowMarksHLl', 'orange', '', '') call HighLight('ShowMarksHLo', 'purple', '', '') call HighLight('ShowMarksHLu', 'yellow', '', '') " Lua {{{2 call HighLight('luaRepeat', 'purple', '', '') call HighLight('luaStatement', 'purple', '', '') call HighLight('luaCond', 'green', '', '') call HighLight('luaCondEnd', 'green', '', '') call HighLight('luaCondStart', 'green', '', '') call HighLight('luaCondElseif', 'green', '', '') " Go {{{2 call HighLight('goDeclType', 'blue', '', '') call HighLight('goLabel', 'purple', '', '') call HighLight('goRepeat', 'purple', '', '') call HighLight('goBuiltins', 'purple', '', '') call HighLight('goStatement', 'purple', '', '') call HighLight('goDirective', 'purple', '', '') call HighLight('goDeclaration', 'purple', '', '') call HighLight('goConditional', 'purple', '', '') call HighLight('goTodo', 'yellow', '', '') call HighLight('goConstants', 'orange', '', '') " Clojure {{{2 call HighLight('clojureException', 'red', '', '') call HighLight('clojureParen', 'cyan', '', '') call HighLight('clojureCond', 'blue', '', '') call HighLight('clojureFunc', 'blue', '', '') call HighLight('clojureMeta', 'blue', '', '') call HighLight('clojureMacro', 'blue', '', '') call HighLight('clojureDeref', 'blue', '', '') call HighLight('clojureQuote', 'blue', '', '') call HighLight('clojureRepeat', 'blue', '', '') call HighLight('clojureRepeat', 'blue', '', '') call HighLight('clojureUnquote', 'blue', '', '') call HighLight('clojureAnonArg', 'blue', '', '') call HighLight('clojureDispatch', 'blue', '', '') call HighLight('clojureString', 'green', '', '') call HighLight('clojureRegexp', 'green', '', '') call HighLight('clojureKeyword', 'green', '', '') call HighLight('clojureDefine', 'purple', '', '') call HighLight('clojureSpecial', 'purple', '', '') call HighLight('clojureVariable', 'yellow', '', '') call HighLight('clojureBoolean', 'orange', '', '') call HighLight('clojureNumber', 'orange', '', '') call HighLight('clojureConstant', 'orange', '', '') call HighLight('clojureCharacter', 'orange', '', '') " Scala {{{2 call HighLight('scalaPackage', 'red', '', '') call HighLight('scalaVar', 'cyan', '', '') call HighLight('scalaDefName', 'blue', '', '') call HighLight('scalaBackTick', 'blue', '', '') call HighLight('scalaMethodCall', 'blue', '', '') call HighLight('scalaXml', 'green', '', '') call HighLight('scalaString', 'green', '', '') call HighLight('scalaBackTick', 'green', '', '') call HighLight('scalaEmptyString', 'green', '', '') call HighLight('scalaStringEscape', 'green', '', '') call HighLight('scalaMultiLineString', 'green', '', '') call HighLight('scalaTypeSpecializer', 'yellow', '', '') call HighLight('scalaDefSpecializer', 'yellow', '', '') call HighLight('scalaType', 'yellow', '', '') call HighLight('scalaCaseType', 'yellow', '', '') call HighLight('scalaAnnotation', 'orange', '', '') call HighLight('scalaSymbol', 'orange', '', '') call HighLight('scalaUnicode', 'orange', '', '') call HighLight('scalaBoolean', 'orange', '', '') call HighLight('scalaNumber', 'orange', '', '') call HighLight('scalaChar', 'orange', '', '') call HighLight('scalaImport', 'purple', '', '') call HighLight('scalaDef', 'purple', '', '') call HighLight('scalaVal', 'purple', '', '') call HighLight('scalaClass', 'purple', '', '') call HighLight('scalaTrait', 'purple', '', '') call HighLight('scalaObject', 'purple', '', '') call HighLight('scalaKeywordModifier', 'purple', '', '') call HighLight('scalaDocComment', 'commnt', '', '') call HighLight('scalaComment', 'commnt', '', '') call HighLight('scalaDocTags', 'commnt', '', '') call HighLight('scalaLineComment', 'commnt', '', '') " Diff {{{2 call HighLight('DiffDelete', 'red', '', '') call HighLight('DiffChange', 'blue', '', '') call HighLight('DiffAdd', 'green', '', '') call HighLight('DiffText', 'line', 'blue', 'bold') " Cleanup {{{2 " Remove the highlight function as it's no longer needed. " Will cause problems reloading the theme if not deleted. delfunction HighLight " vim:fdm=marker:et:sts=4:sw=4