al-skel/base/.vim/colors/jinx.vim
2019-08-22 17:07:06 -07:00

455 lines
19 KiB
VimL

" ------------------- jinx ---------------------- "
" written by Nathaniel Maia, 2017 - 2019 "
" ----------------------------------------------- "
" ---------- Setup and Checks ----------- " {{{1
if exists('syntax_on') " {{{2
highlight clear
syntax reset
endif
" color definitions {{{2
" start with an 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, 16color]
"
" let s:jinx.black = ['#000000', 0, 0]
let g:terminal_ansi_colors = [
\ '#4D545E', '#D9534F', '#80B080', '#FFEB56', '#6699CC', '#CC99CC', '#5DD5FF', '#E1E1E1',
\ '#4D545E', '#D9534F', '#80B080', '#FFEB56', '#6699CC', '#CC99CC', '#5DD5FF', '#E1E1E1'
\ ]
let s:i = 0
for s:color in g:terminal_ansi_colors
let g:terminal_color_{s:i} = s:color
let s:i += 1
endfor
let s:jinx.red = ['#EE5555', 210, 1]
let s:jinx.green = ['#88BB88', 108, 2]
let s:jinx.yellow = ['#FFCC66', 220, 3]
let s:jinx.blue = ['#4488CC', 32, 4]
let s:jinx.purple = ['#AA88CC', 140, 5]
let s:jinx.cyan = ['#44CCEE', 81, 6]
let s:jinx.orange = ['#FF8844', 172, 9]
if exists('g:jinx_theme') && g:jinx_theme =~? 'day'
set background=light
let s:jinx.fgr = ['#494949', 238, 0]
let s:jinx.bgr = ['#E1E1E1', 254, 7]
let s:jinx.line = ['#D0D0D0', 252, 15]
let s:jinx.select = ['#D0D0D0', 252, 1]
let s:jinx.folded = ['#B2B2B2', 249, 15]
let s:jinx.commnt = ['#808080', 244, 15]
let s:jinx.yellow = ['#EE9911', 178, 3]
let s:jinx.cyan = ['#3388AA', 37, 6]
elseif exists('g:jinx_theme') && g:jinx_theme =~? 'midnight'
set background=dark
let s:jinx.fgr = ['#CCCCCC', 251, 15]
let s:jinx.bgr = ['#111111', 234, 0]
let s:jinx.line = ['#2A2A2F', 237, 8]
let s:jinx.select = ['#2A2A2F', 237, 1]
let s:jinx.folded = ['#2A2A2F', 237, 8]
let s:jinx.commnt = ['#777777', 243, 7]
else " night
set background=dark
let s:jinx.fgr = ['#E1E1E1', 254, 15]
let s:jinx.bgr = ['#4D545E', 237, 0]
let s:jinx.line = ['#5F6772', 243, 8]
let s:jinx.select = ['#5F6772', 243, 8]
let s:jinx.folded = ['#5F6772', 243, 8]
let s:jinx.commnt = ['#B9B9B9', 250, 7]
endif
function! <SID>hlg(GRP, FG, BG, ATT) abort " {{{2
if a:FG !=# ''
let l:fg_col = get(s:jinx, a:FG)
let l:fg_true = l:fg_col[0]
if $TERM =~? 'linux' || &t_Co < 256
let l:fg_term = l:fg_col[2]
else
let l:fg_term = l:fg_col[1]
endif
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]
if $TERM =~? 'linux' || &t_Co < 256
let l:bg_term = l:bg_col[2]
else
let l:bg_term = l:bg_col[1]
endif
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 <SID>hlg('Title', 'commnt', 'bgr', 'bold')
call <SID>hlg('Visual', '', 'select', '')
call <SID>hlg('SignColumn', '', 'line', '')
call <SID>hlg('CursorLine', '', 'line', '')
call <SID>hlg('CursorColumn', '', 'line', '')
call <SID>hlg('CursorLineNr', 'cyan', 'line', '')
call <SID>hlg('LineNr', 'commnt', 'line', '')
call <SID>hlg('ColorColumn', 'fgr', 'red', '')
call <SID>hlg('Error', 'red', 'bgr', '')
call <SID>hlg('ErrorMsg', 'red', 'bgr', '')
call <SID>hlg('WarningMsg', 'red', 'bgr', '')
call <SID>hlg('MatchParen', 'yellow', 'bgr', '')
call <SID>hlg('ModeMsg', 'cyan', 'bgr', '')
call <SID>hlg('MoreMsg', 'cyan', 'bgr', '')
call <SID>hlg('Directory', 'blue', 'bgr', '')
call <SID>hlg('Question', 'green', 'bgr', '')
call <SID>hlg('NonText', 'commnt', 'bgr', '')
call <SID>hlg('SpecialKey', 'commnt', 'bgr', '')
call <SID>hlg('Folded', 'commnt', 'folded', '')
call <SID>hlg('Search', 'bgr', 'blue', '')
call <SID>hlg('HLNext', 'bgr', 'red', '')
call <SID>hlg('Normal', 'fgr', 'bgr', '')
call <SID>hlg('VertSplit', 'line', 'commnt', '')
" Tabline {{{2
call <SID>hlg('TabLine', 'fgr', 'line', '')
call <SID>hlg('TabLineFill', 'line', 'line', '')
call <SID>hlg('TabLineSel', 'line', 'green', '')
call <SID>hlg('WildMenu', 'bgr', 'fgr', '')
call <SID>hlg('Pmenu', 'bgr', 'commnt', '')
call <SID>hlg('PmenuSel', 'fgr', 'bgr', '')
call <SID>hlg('PmenuSbar', 'commnt', 'line', '')
call <SID>hlg('PmenuThumb', 'commnt', 'line', '')
call <SID>hlg('StatusLine', 'line', 'fgr', '')
call <SID>hlg('StatusLineNC', 'fgr', 'line', '')
" Spelling {{{2
call <SID>hlg('SpellBad', '', '', 'underline')
call <SID>hlg('SpellLocal', '', '', 'underline')
call <SID>hlg('SpellRare', '', '', 'underline')
" ALE linter {{{2
call <SID>hlg('ALEErrorSign', 'red', 'line', '')
call <SID>hlg('ALEWarningSign', 'orange', 'line', '')
call <SID>hlg('ALEError', 'red', '', 'underline')
call <SID>hlg('ALEWarning', 'red', '', 'underline')
call <SID>hlg('ALEStyleError', 'orange', '', 'underline')
call <SID>hlg('ALEStyleWarning', 'orange', '', 'underline')
" Generic {{{2
call <SID>hlg('Comment', 'commnt', '', '')
call <SID>hlg('Todo', 'red', '', '')
call <SID>hlg('Exception', 'red', '', '')
call <SID>hlg('Float', 'cyan', '', '')
call <SID>hlg('Number', 'cyan', '', '')
call <SID>hlg('Include', 'cyan', '', '')
call <SID>hlg('Character', 'blue', '', '')
call <SID>hlg('Operator', 'blue', '', '')
call <SID>hlg('String', 'blue', '', '')
call <SID>hlg('Label', 'green', '', '')
call <SID>hlg('Repeat', 'purple', '', '')
call <SID>hlg('Statement', 'green', '', '')
call <SID>hlg('Conditional', 'green', '', '')
call <SID>hlg('Boolean', 'green', '', '')
call <SID>hlg('Keyword', 'green', '', '')
call <SID>hlg('Macro', 'purple', '', '')
call <SID>hlg('Define', 'purple', '', '')
call <SID>hlg('Special', 'purple', '', '')
call <SID>hlg('Tag', 'purple', '', '')
call <SID>hlg('Type', 'purple', '', '')
call <SID>hlg('TypeDef', 'purple', '', '')
call <SID>hlg('Structure', 'purple', '', '')
call <SID>hlg('StorageClass', 'purple', '', '')
call <SID>hlg('PreProc', 'yellow', '', '')
call <SID>hlg('Constant', 'yellow', '', '')
call <SID>hlg('Identifier', 'yellow', '', '')
call <SID>hlg('PreCondit', 'yellow', '', '')
call <SID>hlg('Conceal', 'orange', '', '')
call <SID>hlg('Function', 'orange', '', '')
" Vim {{{2
call <SID>hlg('vimCommand', 'green', '', '')
call <SID>hlg('vimVar', 'yellow', '', '')
call <SID>hlg('vimGroup', 'yellow', '', '')
call <SID>hlg('vimGroupName', 'yellow', '', '')
call <SID>hlg('VimFunction', 'orange', '', '')
call <SID>hlg('VimFunctionKey', 'orange', '', '')
call <SID>hlg('vimMapModKey', 'purple', '', '')
call <SID>hlg('vimBracket', 'purple', '', '')
call <SID>hlg('vimOption', 'purple', '', '')
call <SID>hlg('vimMapMod', 'purple', '', '')
call <SID>hlg('vimNotation', 'purple', '', '')
" Shell {{{2
call <SID>hlg('shSet', 'green', '', '')
call <SID>hlg('shLoop', 'green', '', '')
call <SID>hlg('shFor', 'yellow', '', '')
call <SID>hlg('shTestOpr', 'blue', '', '')
call <SID>hlg('shConstant', 'yellow', '', '')
call <SID>hlg('shFunctionKey', 'orange', '', '')
call <SID>hlg('shStatement', 'green', '', '')
call <SID>hlg('shKeyword', 'purple', '', '')
call <SID>hlg('zshStatement', 'green', '', '')
call <SID>hlg('zshOption', 'purple', '', '')
call <SID>hlg('zshParentheses', 'purple', '', '')
call <SID>hlg('zshBrackets', 'purple', '', '')
call <SID>hlg('zshRepeat', 'green', '', '')
call <SID>hlg('zshRedir', 'fgr', '', '')
call <SID>hlg('zshFunction', 'orange', '', '')
call <SID>hlg('zshVariableDef', 'yellow', '', '')
call <SID>hlg('zshVariable', 'yellow', '', '')
call <SID>hlg('zshOperator', 'blue', '', '')
call <SID>hlg('zshPreProc', 'commnt', '', '')
" C {{{2
call <SID>hlg('cConditional', 'green', '', '')
call <SID>hlg('cRepeat', 'purple', '', '')
call <SID>hlg('cStorageClass', 'purple', '', '')
call <SID>hlg('cType', 'yellow', '', '')
" PHP {{{2
call <SID>hlg('phpMemberSelector', 'blue', '', '')
call <SID>hlg('phpVarSelector', 'red', '', '')
call <SID>hlg('phpConditional', 'green', '', '')
call <SID>hlg('phpStatement', 'green', '', '')
call <SID>hlg('phpKeyword', 'purple', '', '')
call <SID>hlg('phpRepeat', 'purple', '', '')
" Ruby {{{2
call <SID>hlg('rubyInclude', 'blue', '', '')
call <SID>hlg('rubyAttribute', 'blue', '', '')
call <SID>hlg('rubySymbol', 'green', '', '')
call <SID>hlg('rubyStringDelimiter', 'green', '', '')
call <SID>hlg('rubyRepeat', 'purple', '', '')
call <SID>hlg('rubyControl', 'purple', '', '')
call <SID>hlg('rubyConditional', 'purple', '', '')
call <SID>hlg('rubyException', 'purple', '', '')
call <SID>hlg('rubyCurlyBlock', 'orange', '', '')
call <SID>hlg('rubyLocalVariableOrMethod', 'orange', '', '')
call <SID>hlg('rubyInterpolationDelimiter', 'orange', '', '')
call <SID>hlg('rubyAccess', 'yellow', '', '')
call <SID>hlg('rubyConstant', 'yellow', '', '')
" Python {{{2
call <SID>hlg('pythonRun', 'red', '', '')
call <SID>hlg('pythonOperator', 'blue', '', '')
call <SID>hlg('pythonClass', 'blue', '', '')
call <SID>hlg('pythonClassParameters', 'purple', '', '')
call <SID>hlg('pythonParam', 'purple', '', '')
call <SID>hlg('pythonDecorator', 'blue', '', '')
call <SID>hlg('pythonExClass', 'blue', '', '')
call <SID>hlg('pythonException', 'blue', '', '')
call <SID>hlg('pythonExceptions', 'blue', '', '')
call <SID>hlg('pythonBrackets', 'blue', '', '')
call <SID>hlg('pythonEscape', 'blue', '', '')
call <SID>hlg('pythonImport', 'green', '', '')
call <SID>hlg('pythonRepeat', 'green', '', '')
call <SID>hlg('pythonCoding', 'green', '', '')
call <SID>hlg('pythonInclude', 'green', '', '')
call <SID>hlg('pythonPreCondit', 'green', '', '')
call <SID>hlg('pythonStatement', 'green', '', '')
call <SID>hlg('pythonConditional', 'green', '', '')
call <SID>hlg('pythonDef', 'yellow', '', '')
call <SID>hlg('pythonSelf', 'blue', '', '')
call <SID>hlg('pythonBuiltinType', 'purple', '', '')
call <SID>hlg('pythonBuiltin', 'purple', '', '')
call <SID>hlg('pythonBuiltinObj', 'purple', '', '')
call <SID>hlg('pythonBuiltinFunc', 'orange', '', '')
call <SID>hlg('pythonDot', 'orange', '', '')
call <SID>hlg('pythonLambda', 'orange', '', '')
call <SID>hlg('pythonLambdaExpr', 'orange', '', '')
call <SID>hlg('pythonFunction', 'orange', '', '')
call <SID>hlg('pythonDottedName', 'orange', '', '')
call <SID>hlg('pythonBuiltinObjs', 'orange', '', '')
" LaTeX {{{2
call <SID>hlg('texZone', 'red', '', 'none')
call <SID>hlg('texStatement', 'blue', '', 'none')
call <SID>hlg('texRefLabel', 'blue', '', 'none')
call <SID>hlg('texRefZone', 'green', '', 'none')
call <SID>hlg('texMath', 'orange', '', 'none')
call <SID>hlg('texMathZoneX', 'orange', '', 'none')
call <SID>hlg('texMathZoneA', 'orange', '', 'none')
call <SID>hlg('texMathZoneB', 'orange', '', 'none')
call <SID>hlg('texMathZoneC', 'orange', '', 'none')
call <SID>hlg('texMathZoneD', 'orange', '', 'none')
call <SID>hlg('texMathZoneE', 'orange', '', 'none')
call <SID>hlg('texMathMatcher', 'orange', '', 'none')
call <SID>hlg('texDelimiter', 'purple', '', 'none')
call <SID>hlg('texComment', 'commnt', '', 'none')
" JavaScript {{{2
call <SID>hlg('javaScriptNumber', 'cyan', '', '')
call <SID>hlg('javascriptNull', 'red', '', '')
call <SID>hlg('javascriptStatement', 'green', '', '')
call <SID>hlg('javaScriptConditional', 'green', '', '')
call <SID>hlg('javaScriptRepeat', 'purple', '', '')
call <SID>hlg('javaScriptBraces', 'purple', '', '')
call <SID>hlg('javascriptGlobal', 'yellow', '', '')
call <SID>hlg('javaScriptFunction', 'orange', '', '')
call <SID>hlg('javaScriptMember', 'orange', '', '')
" HTML {{{2
call <SID>hlg('htmlTag', 'red', '', '')
call <SID>hlg('htmlTagName', 'red', '', '')
call <SID>hlg('htmlLink', 'blue', '', '')
call <SID>hlg('htmlArg', 'green', '', '')
call <SID>hlg('htmlScriptTag', 'purple', '', '')
call <SID>hlg('htmlTitle', 'blue', '', '')
call <SID>hlg('htmlH1', 'blue', '', '')
call <SID>hlg('htmlH2', 'cyan', '', '')
call <SID>hlg('htmlH3', 'cyan', '', '')
call <SID>hlg('htmlH4', 'green', '', '')
call <SID>hlg('htmlH5', 'green', '', '')
" YAML {{{2
call <SID>hlg('yamlKey', 'red', '', '')
call <SID>hlg('yamlAnchor', 'red', '', '')
call <SID>hlg('yamlAlias', 'blue', '', '')
call <SID>hlg('yamlDocumentHeader', 'green', '', '')
" Markdown {{{2
call <SID>hlg('markdownHeadingRule', 'red', '', '')
call <SID>hlg('markdownHeadingDelimiter', 'red', '', '')
call <SID>hlg('markdownListMarker', 'blue', '', '')
call <SID>hlg('markdownOrderedListMarker', 'blue', '', '')
call <SID>hlg('markdownCode', 'purple', '', '')
call <SID>hlg('markdownCodeBlock', 'purple', '', '')
call <SID>hlg('markdownCodeDelimiter', 'purple', '', '')
call <SID>hlg('markdownH1', 'blue', '', '')
call <SID>hlg('markdownH2', 'blue', '', '')
call <SID>hlg('markdownH3', 'cyan', '', '')
call <SID>hlg('markdownH4', 'cyan', '', '')
call <SID>hlg('markdownH5', 'green', '', '')
" ShowMarks {{{2
call <SID>hlg('ShowMarksHLm', 'cyan', '', '')
call <SID>hlg('ShowMarksHLl', 'orange', '', '')
call <SID>hlg('ShowMarksHLo', 'purple', '', '')
call <SID>hlg('ShowMarksHLu', 'yellow', '', '')
" Lua {{{2
call <SID>hlg('luaRepeat', 'purple', '', '')
call <SID>hlg('luaStatement', 'purple', '', '')
call <SID>hlg('luaCond', 'green', '', '')
call <SID>hlg('luaCondEnd', 'green', '', '')
call <SID>hlg('luaCondStart', 'green', '', '')
call <SID>hlg('luaCondElseif', 'green', '', '')
" Go {{{2
call <SID>hlg('goDeclType', 'blue', '', '')
call <SID>hlg('goLabel', 'purple', '', '')
call <SID>hlg('goRepeat', 'purple', '', '')
call <SID>hlg('goBuiltins', 'purple', '', '')
call <SID>hlg('goStatement', 'purple', '', '')
call <SID>hlg('goDirective', 'purple', '', '')
call <SID>hlg('goDeclaration', 'purple', '', '')
call <SID>hlg('goConditional', 'purple', '', '')
call <SID>hlg('goTodo', 'yellow', '', '')
call <SID>hlg('goConstants', 'orange', '', '')
" Clojure {{{2
call <SID>hlg('clojureException', 'red', '', '')
call <SID>hlg('clojureParen', 'cyan', '', '')
call <SID>hlg('clojureCond', 'blue', '', '')
call <SID>hlg('clojureFunc', 'blue', '', '')
call <SID>hlg('clojureMeta', 'blue', '', '')
call <SID>hlg('clojureMacro', 'blue', '', '')
call <SID>hlg('clojureDeref', 'blue', '', '')
call <SID>hlg('clojureQuote', 'blue', '', '')
call <SID>hlg('clojureRepeat', 'blue', '', '')
call <SID>hlg('clojureRepeat', 'blue', '', '')
call <SID>hlg('clojureUnquote', 'blue', '', '')
call <SID>hlg('clojureAnonArg', 'blue', '', '')
call <SID>hlg('clojureDispatch', 'blue', '', '')
call <SID>hlg('clojureString', 'green', '', '')
call <SID>hlg('clojureRegexp', 'green', '', '')
call <SID>hlg('clojureKeyword', 'green', '', '')
call <SID>hlg('clojureDefine', 'purple', '', '')
call <SID>hlg('clojureSpecial', 'purple', '', '')
call <SID>hlg('clojureVariable', 'yellow', '', '')
call <SID>hlg('clojureBoolean', 'orange', '', '')
call <SID>hlg('clojureNumber', 'orange', '', '')
call <SID>hlg('clojureConstant', 'orange', '', '')
call <SID>hlg('clojureCharacter', 'orange', '', '')
" Scala {{{2
call <SID>hlg('scalaPackage', 'red', '', '')
call <SID>hlg('scalaVar', 'cyan', '', '')
call <SID>hlg('scalaDefName', 'blue', '', '')
call <SID>hlg('scalaBackTick', 'blue', '', '')
call <SID>hlg('scalaMethodCall', 'blue', '', '')
call <SID>hlg('scalaXml', 'green', '', '')
call <SID>hlg('scalaString', 'green', '', '')
call <SID>hlg('scalaBackTick', 'green', '', '')
call <SID>hlg('scalaEmptyString', 'green', '', '')
call <SID>hlg('scalaStringEscape', 'green', '', '')
call <SID>hlg('scalaMultiLineString', 'green', '', '')
call <SID>hlg('scalaTypeSpecializer', 'yellow', '', '')
call <SID>hlg('scalaDefSpecializer', 'yellow', '', '')
call <SID>hlg('scalaType', 'yellow', '', '')
call <SID>hlg('scalaCaseType', 'yellow', '', '')
call <SID>hlg('scalaAnnotation', 'orange', '', '')
call <SID>hlg('scalaSymbol', 'orange', '', '')
call <SID>hlg('scalaUnicode', 'orange', '', '')
call <SID>hlg('scalaBoolean', 'orange', '', '')
call <SID>hlg('scalaNumber', 'orange', '', '')
call <SID>hlg('scalaChar', 'orange', '', '')
call <SID>hlg('scalaImport', 'purple', '', '')
call <SID>hlg('scalaDef', 'purple', '', '')
call <SID>hlg('scalaVal', 'purple', '', '')
call <SID>hlg('scalaClass', 'purple', '', '')
call <SID>hlg('scalaTrait', 'purple', '', '')
call <SID>hlg('scalaObject', 'purple', '', '')
call <SID>hlg('scalaKeywordModifier', 'purple', '', '')
call <SID>hlg('scalaDocComment', 'commnt', '', '')
call <SID>hlg('scalaComment', 'commnt', '', '')
call <SID>hlg('scalaDocTags', 'commnt', '', '')
call <SID>hlg('scalaLineComment', 'commnt', '', '')
" Diff {{{2
call <SID>hlg('DiffDelete', 'red', '', '')
call <SID>hlg('DiffChange', 'blue', '', '')
call <SID>hlg('DiffAdd', 'green', '', '')
call <SID>hlg('DiffText', 'line', 'blue', '')
" Cleanup {{{2
" Remove the highlight function as it's no longer needed.
" Will cause problems reloading the theme if not deleted.
delfunction <SID>hlg
let g:colors_name = 'jinx'
" vim:fdm=marker