nvim/colors/paper-custom.erb

595 lines
24 KiB
Plaintext

<%
information = {
author: "Ray Elliott",
email: "vim@rayelliott.dev",
name: "paper-custom",
description: "",
background: "light",
webpage: "https://rayelliott.dev"
}
bg_cursorline = ["#eeeeee", 250, "white"]
bg_colorcolumn = ["#f7f2f2", 250, "white"]
bg_cursorcolumn = ["#eeeeee", 250, "white"]
bg = ["#ffffff", 234, "black"]
bg_cursorline_input = ["#dddddd", 17, "darkblue"]
fg_weak = ["#9d9d9d", 238, "gray"]
fg = ["#8c8c8c", 243, "gray"]
fg_strong = ["#777777", 232, "gray"]
# color_primary_weak = ["#76799d", 124, "red"]
# color_primary = ["#5d5f7b", 88, "darkred"]
# color_primary_strong = ["#444762", 52, "darkred"]
color_primary_weak = ["#e846ac", 164, "magenta"]
color_primary = ["#d70087", 164, "magenta"]
color_primary_strong = ["#ad006d", 164, "magenta"]
color_2_weak = ["#5e955e", 28, "darkgreen"]
color_2 = ["#008700", 22, "darkgreen"]
color_2_strong = ["#005a00", 22, "darkgreen"]
color_3_weak = ["#2d78b7", 20, "blue"]
color_3 = ["#005faf", 19, "blue"]
color_3_strong = ["#004f92", 17, "darkblue"]
color_4_weak = ["#78b7d5", 20, "blue"]
color_4 = ["#56acd7", 19, "blue"]
color_4_strong = ["#1596d7", 17, "darkblue"]
color_5_weak = ["#898fcb", 20, "blue"]
color_5 = ["#7e84c6", 19, "darkblue"]
color_5_strong = ["#5c6191", 17, "darkblue"]
fg_error = ["#d70000", 196, "red"]
fg_spellcap = ["#d75f00", 166, "yellow"]
fg_spellrare = ["#d7813e", 247, "darkyellow"]
fg_spelllocal = fg_spellrare
bg_whitespace_error = ["#efe6e6", 196, "red"]
fg_todo = ["#d70000", 196, "red"]
ui_bg = ["#efefef", 238, "gray"]
ui_fg_weak = ["#bbbbbb", 240, "gray"]
ui_fg = ["#929292", 243, "gray"]
ui_fg_strong = ["#555555", 255, "white"]
ui_search = ["#dce5ed", 17, "darkblue"]
ui_incsearch = ["#beced5", 17, "darkblue"]
ui_match_bg = ["#a3e0ff", 17, "darkblue"]
ui_visual_bg = ["#ced8e0", 17, "darkblue"]
ui_visualnos_bg = ["#e0d4ce", 52, "darkred"]
ui_fg_error = ["#d70000", 196, "red"]
ui_fg_warning = ["#d75f00", 166, "yellow"]
ui_fg_question = ["#56acd7", 247, "darkgray"]
# Step 3: highlights
highlights = [
[ "DiffAdd", ["#e0ece0", 22, "darkgreen"], "NONE", "NONE" ],
[ "DiffChange", ["#e0e0ec", 17, "darkblue"], "NONE", "NONE" ],
[ "DiffDelete", ["#ece0e0", 52, "darkred"], "NONE", "NONE" ],
[ "DiffText", ["#e0e0ec", 17, "darkblue"], ["#656a7c", 21, "white"], "NONE" ],
[ "GitGutterDelete", "NONE", ["#725454", 124, "red"], "bold"],
[ "GitGutterChange", "NONE", ["#596171", 19, "blue"], "bold"],
[ "GitGutterAdd", "NONE", ["#496349", 34, "green"], "bold"],
[ "GitGutterChangeDelete", "NONE", ["#5c4a5a", 126, "magenta"], "bold"],
[ "Normal", bg, fg, "NONE" ],
[ "Special", "NONE", color_primary_strong, "bold" ],
[ "NonText", "NONE", color_primary_strong, "NONE" ],
[ "Tag", color_primary_weak, "NONE", "NONE" ],
[ "Identifier", "NONE", color_primary, "bold" ],
[ "Function", "NONE", color_primary, "NONE" ],
[ "Type", "NONE", color_primary_weak, "bold" ],
[ "StorageClass", "NONE", color_primary_weak, "NONE" ],
[ "Structure", "StorageClass"],
[ "TypeDef", "StorageClass"],
[ "Constant", "NONE", fg_strong, "italic" ],
[ "String", "NONE", fg_strong, "italic" ],
[ "Character", "String" ],
[ "Number", "String" ],
[ "Boolean", "String" ],
[ "Float", "String" ],
[ "Folded", "NONE", fg_strong, "bold" ],
[ "Statement", "NONE", fg, "NONE" ],
[ "Conditional", "NONE", fg_strong, "NONE" ],
[ "Repeat", "NONE", fg_strong, "NONE" ],
[ "Label", "NONE", fg_strong, "bold" ],
[ "Operator", "NONE", fg_weak, "NONE" ],
[ "Keyword", "NONE", fg_strong, "NONE" ],
[ "Exception", "NONE", color_primary_weak, "bold" ],
[ "PreProc", "NONE", fg_weak, "bold" ],
[ "Include", "NONE", fg_weak, "NONE" ],
[ "Comment", "NONE", fg_weak, "bold,italic" ],
[ "SpecialComment", "NONE", fg_strong, "italic"],
[ "Todo", "NONE", fg_todo, "bold,italic" ],
[ "Ignore", "NONE", bg, "NONE" ],
[ "Conceal", "NONE", "NONE", "NONE" ],
[ "Error", "NONE", fg_error, "bold" ],
[ "Underlined", "NONE", "NONE", "underline" ],
[ "StatusLine", ui_bg, ui_fg_strong, "italic" ],
[ "StatusLineNC", ui_bg, ui_fg, "italic" ],
[ "TabLine", "StatusLineNc" ],
[ "TabLineSel", "StatusLine" ],
[ "TabLineNumSel", "StatusLine"],
# used in init.tabline.vim
[ "TabLineFill", ui_bg, ui_bg, "italic" ],
[ "TabLineItem", ui_bg, ui_fg, "italic" ],
[ "TabLineItemSel", ui_bg, ui_fg_strong, "italic" ],
[ "VertSplit", bg, ui_bg, "NONE" ],
[ "FoldColumn", bg, fg_weak, "NONE" ],
[ "ColorColumn", bg_colorcolumn, "NONE", "NONE" ],
[ "SignColumn", bg, ui_fg_strong, "NONE" ],
[ "CursorLine", bg_cursorline, "NONE", "NONE" ],
[ "Title", "NONE", fg_strong, "bold,italic" ],
[ "LineNr", bg, fg_weak, "NONE" ],
[ "CursorLineNr", bg, fg_weak, "bold" ],
[ "Pmenu", ui_bg, ui_fg, "NONE" ],
[ "PmenuSbar", ui_bg, ui_fg, "NONE" ],
[ "PmenuSel", ui_bg, ui_fg_strong, "bold" ],
[ "PmenuThumb", ui_bg, ui_fg, "NONE" ],
[ "SpecialKey", "NONE", color_primary_strong, "NONE" ],
[ "IncSearch", ui_incsearch, bg, "NONE" ],
[ "Search", ui_search, ui_fg_strong, "NONE" ],
[ "Visual", ui_visual_bg, "NONE", "NONE" ],
[ "VisualNOS", ui_visualnos_bg, "NONE", "NONE" ],
[ "Directory", "NONE", ui_fg_strong, "NONE" ],
[ "MatchParen", ui_match_bg, "NONE", "bold" ],
[ "SpellBad", "NONE", fg_error, "NONE", fg_error ],
[ "SpellCap", "NONE", fg_spellcap, "NONE", fg_spellcap ],
[ "SpellLocal", "NONE", fg_spelllocal, "NONE", fg_spellcap ],
[ "SpellRare", "NONE", fg_spellrare, "NONE", fg_spellcap ],
[ "WildMenu", ui_bg, ui_fg_strong, "bold" ],
[ "ErrorMsg", "NONE", ui_fg_error, "italic" ],
[ "ModeMsg", "NONE", ui_fg_strong, "italic" ],
[ "MoreMsg", "NONE", ui_fg_strong, "italic" ],
[ "Question", "NONE", ui_fg_question, "italic" ],
[ "WarningMsg", "NONE", ui_fg_warning, "italic" ],
[ "CursorColumn", bg_cursorcolumn, "NONE", "NONE" ],
[ "EndOfBuffer", bg, bg, "NONE" ],
[ "Noise", "NONE", ui_fg_weak, "NONE"],
[ "QuickScopePrimary", "IncSearch" ],
[ "QuickScopeSecondary", "Pmenu" ],
# css, scss
[ "cssIdentifier", "NONE", color_2, "bold" ],
[ "cssClass", "NONE", color_2_weak, "NONE" ],
[ "cssFunction", "Keyword" ],
[ "cssProp", "NONE", fg_weak, "NONE" ],
[ "scssVariable", "NONE", color_2_strong, "bold" ],
[ "cssAttr", "String"],
[ "cssIdentifierAttr", "Noise" ],
[ "cssClassAttr", "cssIdentifierAttr" ],
[ "cssAttrNoise", "Noise" ],
[ "atKeyword", "PreProc" ],
[ "cssIdentifier", "cssIdentifier" ],
[ "cssClassName", "cssClass" ],
[ "cssClassNameDot", "cssClass" ],
[ "cssTagName", "htmlTagName" ],
[ "cssPseudoClassId", "cssClassName" ],
[ "cssKeyFrameSelector", "Label" ],
[ "cssFunctionName", "cssFunction" ],
[ "cssBraces", "Noise" ],
[ "cssUnitDecorators", "NONE", fg_strong, "NONE" ],
[ "cssSelectorOp", "Conditional" ],
[ "scssSelector", "cssClass" ],
[ "scssSelectorName", "scssSelector" ],
[ "scssSelectorChar", "cssIdentifier" ],
[ "scssFunctionName", "cssFunctionName" ],
[ "scssMixin", "keyword" ],
[ "scssMixinName", "cssFunction" ],
[ "scssampersand", "scssSelectorName" ],
[ "scssSemicolon", "Noise" ],
[ "scssAtRoot", "atKeyword" ],
[ "vue_scss", "cssIdentifier" ],
#html
["htmlTagName", "NONE", color_3_weak, "NONE"],
["htmlSpecialTagName", "NONE", color_3, "bold"],
["htmlLink", "NONE", fg_strong, "italic,underline"],
[ "htmlNormal", "Normal" ],
[ "htmlTitle", "Title" ],
[ "htmlH1", "htmlTitle" ],
[ "htmlTag", "Noise" ],
[ "htmlEndTag", "htmlTag" ],
[ "htmlArg", "PreProc" ],
[ "htmlValue", "String" ],
[ "htmlSpecialChar", "Special" ],
[ "htmlPreStmt", "PreProc" ],
[ "htmlPreError", "Error" ],
[ "htmlPreProc", "PreProc" ],
[ "htmlPreAttr", "String" ],
[ "htmlPreProcAttrName", "PreProc" ],
[ "htmlPreProcAttrError", "Error" ],
[ "htmlSpecial", "Special" ],
[ "htmlSpecialChar", "Special" ],
[ "htmlString", "String" ],
[ "htmlStatement", "Statement" ],
[ "htmlComment", "Comment" ],
[ "htmlCommentPart", "Comment" ],
[ "htmlValue", "String" ],
[ "htmlCommentError", "htmlError" ],
[ "htmlTagError", "htmlError" ],
[ "htmlEvent", "javaScript" ],
[ "htmlError", "Error" ],
[ "javaScript", "Special" ],
[ "javaScriptExpression", "javaScript" ],
[ "htmlCssStyleComment", "Comment" ],
[ "htmlCssDefinition", "Special" ],
[ "htmlImgArg", "htmlArg" ],
[ "htmlSrcValue", "String" ],
[ "htmlSrcsetValue", "htmlSrcValue" ],
[ "htmlAltValue", "String" ],
[ "htmlDataArg", "htmlTagName" ],
[ "htmlDataValue", "Constant" ],
[ "htmlHrefArg", "htmlArg" ],
[ "htmlHrefValue", "htmlSrcValue" ],
# vue
[ "vueSpecial", "NONE", color_4_strong, "bold" ],
[ "vueTagSpecial", "NONE", color_4, "bold" ],
[ "vueTagComponentName", "NONE", color_4_weak, "NONE" ],
[ "vueDynamicComponent", "NONE", color_4_weak, "bold" ],
[ "vueSlotName", "Constant" ],
[ "vueComponentName", "vueTagComponentName" ],
[ "vueTransitionComponent", "vueDynamicComponent" ],
[ "vueTransitionName", "vueSlotName" ],
[ "vueTransitionMode", "String" ],
[ "vueDirective", "Identifier" ],
[ "vueEvent", "Function" ],
[ "vueConditional", "vueSpecial" ],
[ "vueFor", "vueConditional" ],
[ "vueRef", "vueSpecial" ],
[ "vueSlot", "Noise" ],
[ "vueDirectiveValue", "Type" ],
[ "vueEventValue", "vueDirectiveValue" ],
[ "vueConditionalValue", "vueDirectiveValue" ],
[ "vueForValue", "vueConditionalValue" ],
[ "vueRefValue", "Constant" ],
[ "vueSlotValue", "vueSlotName" ],
[ "vueObjectKey", "cssClass" ],
[ "vueObjectValue", "vueDirectiveValue" ],
[ "vueDirectiveClass", "Noise" ],
[ "vueMustache", "Type" ],
# javascript
[ "jsFunctionKey", "Function" ],
[ "jsFuncCall", "Function" ],
[ "jsFuncCall", "Identifier" ],
[ "jsOperator", "Operator" ],
[ "jsVariableDef", "Identifier" ],
[ "jsGlobalObjects", "Keyqord" ],
[ "jsGlobalNodeObjects", "jsGlobalObjects" ],
[ "jsExceptions", "Exception" ],
[ "jsBuiltins", "jsGlobalObjects" ],
[ "jsStorageClass", "Include" ],
[ "jsObjectKey", "Identifier" ],
[ "jsObjectProp", "Type" ],
[ "jsObjectValue", "StorageClass" ],
[ "jsModuleKeyword", "Type" ],
[ "jsOperatorKeyword", "Label" ],
[ "jsThis", "jsGlobalObjects" ],
[ "jsArrowFunction", "Function" ],
# python
[ "pythonBuiltin", "Type" ],
[ "pythonBuiltinObj", "Special" ],
[ "pythonDottedName", "Identifier" ],
[ "pythonBrackets", "Noise" ],
[ "pythonQuotes", "Noise" ],
[ "pythonDot", "Noise" ],
[ "pythonNoise", "Noise" ],
[ "pythonExtraOperator", "Operator" ],
[ "pythonDocString", "SpecialComment" ],
[ "pythonSelf", "NONE", fg_weak, "bold" ],
[ "JinjaVarBlock", "Noise" ],
[ "JinjaTagBlock", "JinjaVarBlock" ],
[ "jinjaSpecial", "NONE", color_5_strong, "bold"],
[ "jinjaRaw", "NONE", color_5_strong, "NONE"],
[ "jinjaStatement", "NONE", color_5, "NONE"],
[ "jinjaFilter", "NONE", color_5_weak, "NONE"],
[ "jinjaBlockName", "NONE", color_5_weak, "NONE"],
[ "jinjaVariable", "NONE", color_5, "NONE"],
[ "jinjaString", "String"],
[ "jinjaNumber", "Number"],
[ "jinjaOperator", "Noise"],
[ "jinjaComment", "Comment"],
# sql
[ "sqlOperator", "Operator" ],
# vim
[ "vimFoldMarker", "NONE", fg_weak, "NONE"],
[ "vimMap", "Noise" ],
[ "vimAbb", "vimMap" ],
[ "VimCommand", "Statement" ],
[ "VimOption", "String" ],
[ "vimFunction", "Function" ],
[ "vimFuncKey", "Special" ],
[ "vimHighlight", "Noise" ],
[ "vimAuGroupKey", "Noise" ],
[ "vimGroupName", "Special" ],
[ "vimAutoCmd", "Noise" ],
[ "vimSynMtchGrp", "Type" ],
[ "vimSynContains", "Type" ],
[ "vimSynRegOpt", "Type" ],
[ "vimHiTerm", "Include" ],
[ "vimHiAttrib", "Number" ],
[ "VimIsCommand", "Type" ],
[ "vimNotation", "StorageClass" ],
[ "vimMapLhs", "Special" ],
[ "vimMapRhs", "Label" ],
[ "vimNotFunc", "Conditional" ],
[ "vimSep", "Noise" ],
[ "vimParenSep", "vimSep" ],
[ "vimContinue", "vimSep" ],
[ "vimBracket", "vimSep" ],
[ "vimOperParen", "Normal" ],
[ "vimUserFunc", "Identifier" ],
[ "vimFoldMarker", "Noise" ],
# yaml
["yamlKeyValueDelimiter", "Noise" ],
["yamlFowIndicator", "Noise" ],
# config highlighting
[ "confComment", "Comment" ],
# markdown
["markdownDelimiter", "NONE", fg_weak, "bold"],
["markdownHeadingDelimiter", "markdownDelimiter"],
["markdownListMarker", "NONE", fg_strong, "bold"],
["markdownCodeDelimiter", "markdownDelimiter"],
["markdownCode", "Type"],
["markdownItalic", "NONE", fg, "italic"],
["markdownItalicDelimiter", "markdownDelimiter"],
["markdownBold", "NONE", fg, "bold"],
["markdownBoldDelimiter", "markdownDelimiter"],
["markdownIdDeclaration", "Conditional"],
["markdownId", "markdownIdDeclaration"],
["markdownLinkText", "NONE", fg_strong, "underline"],
# extra whitespace
[ "ExtraWhitespace", bg_whitespace_error ,"NONE", "NONE" ],
# php
[ "phpRegion", "Normal" ],
[ "phpComparison", "Operator" ],
[ "phpMethod", "Function" ],
[ "phpParent", "Normal" ],
[ "phpMemberSelector", "StorageClass" ],
[ "phpVarSelector", "StorageClass" ],
# quickfix
[ "QuickfixLine", "NONE", ui_fg_strong, "bold" ],
[ "qfLineNr", "NONE", ui_fg_weak, "italic"],
[ "qfFilename", "NONE", ui_fg, "bold" ],
[ "qfSeparator", "Ignore" ],
[ "qfError", "ErrorMsg" ],
# json
[ "jsonKeyword", "Identifier" ],
[ "jsonValue", "String" ],
[ "jsonQuote", "Noise" ],
# octobercms
[ "octobercmsSectionDelimiter", "Noise" ],
# plugins
[ "CocErrorSign", "ErrorMsg" ],
[ "CocWarningSign", "WarningMsg" ],
[ "CocInfoSign", "Question" ],
[ "CocHintSign", "Question" ],
[ "CocHighlightText", "IncSearch" ],
[ "CocUnderline", "NONE", fg_error, "NONE" ],
[ "LspErrorText", "ErrorMsg" ],
[ "LspWarningText", "WarningMsg" ],
[ "LspInformationText", "Question" ],
[ "LspHintText", "Question" ],
[ "ALEError", "CocUnderline" ],
[ "ALEErrorSign", "ErrorMsg" ],
[ "ALEErrorSign", "ErrorMsg" ],
[ "mkdCodeStart", "Comment" ],
[ "mkdListItem", "Conditional" ],
# netrw
[ "netrwTreeBar", "Noise" ],
[ "netrwClassify", "Noise" ],
[ "netrwExe", "Identifier" ],
[ "netrwDir", "String" ],
[ "netrwPlain", "Statement" ],
[ "netrwHelpCmd", "Type" ],
[ "netrwCmdNote", "function" ],
[ "netrwQuickHelp", "netrwCmdNote" ],
[ "netrwCmdSep", "Noise" ],
[ "netrwVersion", "StorageClass" ],
[ "netrwList", "String" ],
[ "netrwHidePat", "Identifier" ],
# i3config
[ "Variable", "Function" ],
# shell
[ "shDerefSimple", "StorageClass" ],
[ "shHereDoc01", "Special" ],
[ "shHereDoc02", "shHereDoc01" ],
[ "shHereDoc05", "shHereDoc01" ],
[ "shHereDoc", "Label" ],
#various
[ "RubyStringDelimiter", "Noise" ]
]
# Step 4: generation
#
# From a separate shell:
#
# $ erb -T - bar.erb > bar.vim
#
# From Vim:
#
# :!erb -T - % > %:r.vim
# These online resources can help you design your colorscheme:
#
# * http://upload.wikimedia.org/wikipedia/en/1/15/Xterm_256color_chart.svg
# the xterm palette
# * http://whatcolor.herokuapp.com/
# play with hexadecimal colors right in the address bar (currently down)
# * http://color.hailpixel.com/
# similar concept, fuzzier implementation
# * http://colourco.de/
# similar concept, fancier implementation
# * http://www.colr.org/
# extract a palette from an image
# * http://colores.manugarri.com/
# search for 'word', get images and color palettes
# * http://www.colourlovers.com/palettes
# user-created palettes
# * http://www.perbang.dk/color+scheme/
# a no-nonsense colorscheme generator
# * https://color.adobe.com/
# Adobe's fancy colorscheme generator
# * http://paletton.com/
# The classic 'Color Scheme Designer', rebranded
# * http://vrl.cs.brown.edu/color
# A very smart palette generator
# * https://cmcenroe.me/2018/04/03/colour-scheme.html
# "I Made My Own Colour Scheme and You Can Too!"
# A few general advices:
#
# * The Windows console is limited to the 16 so-called "ANSI" colors but it has
# a few of them interverted which makes numbers impractical. Use color names
# instead of numbers: :help cterm-colors
# * The Windows console (yeah…) doesn't do italics, underlines or bolded text;
# it is limited to normal and reverse. Keep that in mind if you want
# your colorscheme to be usable in as many environments as possible by as many
# people as possible.
# * All of the terminal emulators in use these days allow their users to
# change the 16 so-called "ANSI" colors. It is also possible on some platforms
# to change some or all of the 256 colors in the xterm palette. Don't take
# anything for granted.
# * When used against a light background, strong colors work better than muted
# ones. Light or dark doesn't really matters. Also, it is harder to discriminate
# between two similar colors on a light background.
# * Both strong and muted colors work well against a dark background. It is also
# easier to work with similar colors, but dark colors don't work at all.
# * Use as many text samples as possible. String-heavy languages may look completely
# different than keyword-heavy ones. This can have an impact on the usability
# of your colorscheme.
# * Most terminal emulators and terminal multiplexers currently in use on unix-like
# systems support 256 colors but they almost always default to a '$TERM' that tells
# Vim otherwise. Your users will need to make sure their terminal emulator/multiplexer
# is correctly set up if they want to enjoy the best possible experience.
# Many thanks to Barry Arthur (https://github.com/dahu) for the original idea.
# You don't need to edit anything beyond this line.
-%>
" <%= information[:name] %>.vim -- Vim color scheme.
" Author: <%= information[:author] %> (<%= information[:email] %>)
" Webpage: <%= information[:webpage] %>
" Description: <%= information[:description] %>
hi clear
if exists("syntax_on")
syntax reset
endif
let colors_name = "<%= information[:name] %>"
if ($TERM =~ '256' || &t_Co >= 256) || has("gui_running")
<% for highlight in highlights -%>
<% if highlight.length == 2 -%>
hi link <%= highlight[0] %> <%= highlight[1] %>
<% elsif highlight.length == 4 -%>
hi <%= highlight[0] %> ctermbg=<%= highlight[1].kind_of?(String) ? highlight[1] : highlight[1][1] %> ctermfg=<%= highlight[2].kind_of?(String) ? highlight[2] : highlight[2][1] %> cterm=<%= highlight[3] %> guibg=<%= highlight[1].kind_of?(String) ? highlight[1] : highlight[1][0] %> guifg=<%= highlight[2].kind_of?(String) ? highlight[2] : highlight[2][0] %> gui=<%= highlight[3] %>
<% if highlight[0] == "Normal" -%>
set background=<%= information[:background] %>
<% end -%>
<% else -%>
hi <%= highlight[0] %> ctermbg=<%= highlight[1].kind_of?(String) ? highlight[1] : highlight[1][1] %> ctermfg=<%= highlight[2].kind_of?(String) ? highlight[2] : highlight[2][1] %> cterm=<%= highlight[3] %> guibg=<%= highlight[1].kind_of?(String) ? highlight[1] : highlight[1][0] %> guifg=<%= highlight[2].kind_of?(String) ? highlight[2] : highlight[2][0] %> gui=<%= highlight[3] %> guisp=<%= highlight[4].kind_of?(String) ? highlight[4] : highlight[4][0] %>
<% end -%>
<% end -%>
elseif &t_Co == 8 || $TERM !~# '^linux' || &t_Co == 16
set t_Co=16
<% for highlight in highlights -%>
<% if highlight.length == 2 -%>
hi link <%= highlight[0] %> <%= highlight[1] %>
<% else -%>
hi <%= highlight[0] %> ctermbg=<%= highlight[1].kind_of?(String) ? highlight[1] : highlight[1][2] %> ctermfg=<%= highlight[2].kind_of?(String) ? highlight[2] : highlight[2][2] %> cterm=<%= highlight[3] %>
<% if highlight[0] == "Normal" -%>
set background=<%= information[:background] %>
<% end -%>
<% end -%>
<% end -%>
endif
augroup cursorlinebg
au!
au InsertEnter * hi CursorLine ctermbg=<%= bg_cursorline_input[1] %> ctermfg=NONE cterm=NONE guibg=<%= bg_cursorline_input[0] %> guifg=NONE
au InsertLeave * hi CursorLine ctermbg=<%= bg_cursorline[1] %> ctermfg=NONE cterm=NONE guibg=<%= bg_cursorline[0] %> guifg=NONE
augroup END