dotfiles/nvim/.config/nvim/colors/yolokai.vim

454 lines
19 KiB
VimL
Raw Normal View History

lua << EOF
--[[ Build using Highlite, a Neovim colorscheme template.
* Author: Iron-E (https://github.com/Iron-E)
* Repository: https://github.com/nvim-highlite
Rewrite of RNB, a Vim colorsheme template.
* Author: Romain Lafourcade (https://github.com/romainl)
* Canonical URL: https://github.com/romainl/vim-rnb
Yolokai colorscheme based on monokai/molokai with minor changes
* Background is completely black. No washed out greyish backgrounds
* Comment highlight is slightly different
* Slightly different colors for errors, floating windows, quickfix
line selection and such
* Author: Sanchayan Maity (https://gitlab.com/SanchayanMaity)
]]
vim.g.colors_name = 'yolokai'
local white = { '#E8E8E3', 252, 'white' }
local white2 = { '#d8d8d3', 250, 'white2' }
local black = { '#000000', 234, 'black' }
local lightblack = { '#2D2E27', 235, 'lightblack' }
local lightblack2 = { '#383a3e', 236, 'lightblack2' }
local lightblack3 = { '#3f4145', 237, 'lightblack3' }
local darkblack = { '#211F1C', 233, 'darkblack' }
local grey = { '#8F908A', 243, 'grey' }
local lightgrey = { '#575b61', 237, 'lightgrey' }
local darkgrey = { '#64645e', 239, 'darkgrey' }
local warmgrey = { '#A6A185', 59, 'warmgrey' }
local pink = { '#F92772', 197, 'pink' }
local green = { '#A6E22D', 148, 'green' }
local darkgreen = { '#50de60', 83, 'darkgreen' }
local aqua = { '#66d9ef', 81, 'aqua' }
local yellow = { '#E6DB74', 186, 'yellow' }
local orange = { '#FD9720', 208, 'orange' }
local purple = { '#ae81ff', 141, 'purple' }
local red = { '#e73c50', 196, 'red' }
local purered = { '#ff0000', 52, 'purered' }
local darkred = { '#5f0000', 52, 'darkred' }
--[[ DO NOT EDIT `BG`, `FG`, or `NONE`.
Feel free to uncomment `BG`. It is not used by default so it is commented out.
]]
local BG = 'bg'
local FG = 'fg'
local NONE = 'NONE'
--[[ These are the ones you should edit. ]]
-- This is the only highlight that must be defined separately.
local highlight_group_normal = {bg=black, fg=white, style=NONE}
-- This is where the rest of your highlights should go.
local highlight_groups = {
--[[ 4.1. Text Analysis ]]
Comment = {bg=NONE, fg=warmgrey, style='italic'},
EndOfBuffer = {link='NonText' },
NonText = {bg=NONE, fg=lightgrey, style=NONE },
Whitespace = {link='NonText' },
--[[ 4.1.1. Literals]]
Constant = {bg=NONE, fg=purple, style=NONE},
String = {bg=NONE, fg=yellow, style=NONE},
Character = {bg=NONE, fg=yellow, style=NONE},
Number = {bg=NONE, fg=purple, style=NONE},
Boolean = {bg=NONE, fg=purple, style=NONE},
Float = {link='Number' },
--[[ 4.1.2. Identifiers]]
Identifier = {bg=NONE, fg=green, style=NONE},
Function = {bg=NONE, fg=green, style=NONE},
--[[ 4.1.3. Syntax]]
Statement = {bg=NONE, fg=pink, style=NONE },
Conditional = {bg=NONE, fg=pink, style='italic'},
Repeat = {link='Keyword' },
Label = {bg=NONE, fg=pink, style='italic'},
Operator = {bg=NONE, fg=pink, style=NONE },
Keyword = {bg=NONE, fg=pink, style='bold' },
Exception = {bg=NONE, fg=red, style='bold' },
--[[ 4.1.4. Metatextual Information]]
PreProc = {bg=NONE, fg=green, style=NONE },
Include = {bg=NONE, fg=pink, style='nocombine'},
Define = {bg=NONE, fg=pink, style='nocombine'},
Macro = {link='Define' },
PreCondit = {bg=NONE, fg=green, style='nocombine'},
--[[ 4.1.5. Semantics]]
Type = {bg=NONE, fg=aqua, style=NONE },
StorageClass = {bg=NONE, fg=aqua, style='bold' },
Structure = {bg=NONE, fg=aqua, style='bold' },
Typedef = {bg=NONE, fg=aqua, style='italic'},
--[[ 4.1.6. Edge Cases]]
Special = {bg=NONE, fg=purple, style=NONE },
SpecialChar = {link='Character' },
SpecialKey = {link='Character' },
Tag = {link='Underlined' },
Delimiter = {bg=NONE, fg=pink, style=NONE },
-- SpecialComment affects Haskell Language Extension
SpecialComment = {bg=NONE, fg=orange, style={'bold', 'nocombine'}},
Debug = {link='WarningMsg' },
--[[ 4.1.7. Help Syntax]]
Underlined = {bg=NONE, fg=green, style='underline' },
Ignore = {bg=NONE, fg=gray, style=NONE },
Error = {bg=black, fg=red, style=NONE },
Todo = {bg=NONE, fg=orange, style={'bold', 'underline'}},
helpHyperTextJump = {link='Underlined' },
helpSpecial = {link='Function' },
Hint = {bg=lightblack3, fg=white, style='bold' },
Info = {bg=pink, fg=black, style='bold' },
Warning = {bg=orange, fg=black, style='bold' },
--[[ 4.2... Editor UI ]]
--[[ 4.2.1. Status Line]]
StatusLine = {bg=black, fg=warmgrey, style='inverse'},
StatusLineNC = {bg=black, fg=darkgrey, style='inverse'},
StatusLineTerm = {link='StatusLine' },
StatusLineTermNC = {link='StatusLineNC' },
--[[ 4.2.2. Separators]]
VertSplit = {bg=darkblack, fg=darkgrey, style=NONE },
TabLine = {bg=darkblack, fg=white, style=NONE },
TabLineFill = {bg=NONE, fg=FG, style=NONE },
TabLineSel = {bg=darkgrey, fg=FG, style='inverse'},
Title = {bg=NONE, fg=NONE, style='bold' },
--[[ 4.2.3. Conditional Line Highlighting]]
--Conceal={}
CursorLine = {bg=lightblack2, fg=NONE, style=NONE },
CursorLineNr = {bg=lightblack, fg=orange,style=NONE },
debugBreakpoint = {link='ErrorMsg' },
debugPC = {link='ColorColumn' },
LineNr = {bg=lightblack, fg=grey, style=NONE },
QuickFixLine = {bg=darkgrey, fg=NONE, style=NONE },
Visual = {bg=NONE, fg=NONE, style='inverse'},
VisualNOS = {bg=darkgrey, fg=NONE, style=NONE },
--[[ 4.2.4. Popup Menu]]
Pmenu = {bg=black, fg=aqua, style=NONE },
PmenuSbar = {bg=black, fg=NONE, style=NONE },
PmenuSel = {bg=warmgrey, fg=white, style='bold' },
PmenuThumb = {bg=grey, fg=lightblack, style=NONE },
WildMenu = {bg=NONE, fg=NONE, style=NONE },
--[[ 4.2.5. Folds]]
FoldColumn = {bg=darkblack, fg=NONE, style='bold' },
Folded = {bg=darkblack, fg=warmgrey, style='italic'},
--[[ 4.2.6. Diffs]]
DiffAdd = {bg=NONE, fg=darkgreen, style='inverse'},
DiffChange = {bg=NONE, fg=yellow, style='inverse'},
DiffDelete = {bg=NONE, fg=red, style='inverse'},
DiffText = {bg=NONE, fg=NONE, style='inverse'},
--[[ 4.2.7. Searching]]
IncSearch = {bg=NONE, fg=NONE, style='inverse' },
Search = {bg=yellow,fg=black, style={'underline', color=white}},
MatchParen = {bg=NONE, fg=purple, style={'bold', 'underline' }},
--[[ 4.2.8. Spelling]]
SpellBad = {bg=NONE, fg=NONE, style={'undercurl', color=red }},
SpellCap = {bg=NONE, fg=NONE, style={'undercurl', color=purple}},
SpellLocal = {bg=NONE, fg=NONE, style={'undercurl', color=pink }},
SpellRare = {bg=NONE, fg=NONE, style={'undercurl', color=aqua }},
--[[ 4.2.9. Conditional Column Highlighting]]
ColorColumn = {bg=lightblack, fg=NONE, style=NONE },
SignColumn = {bg=lightblack, fg=NONE, style=NONE },
--[[ 4.2.10. Messages]]
ErrorMsg = {bg=black, fg=red, style=NONE },
HintMsg = {bg=black, fg=purple, style='bold' },
InfoMsg = {bg=black, fg=pink, style='bold' },
ModeMsg = {bg=black, fg=yellow, style=NONE },
WarningMsg = {bg=black, fg=red, style='bold' },
Question = {bg=black, fg=yellow, style='underline'},
--[[ 4.2.11. LSP ]]
LspDiagnosticsError = {link='Error' },
LspDiagnosticsErrorFloating = {link='ErrorMsg'},
LspDiagnosticsErrorSign = {link='ErrorMsg' },
LspDiagnosticsWarning = {link='Warning' },
LspDiagnosticsWarningFloating = {link='WarningMsg'},
LspDiagnosticsWarningSign = {link='WarningMsg' },
LspDiagnosticsHint = {link='Hint' },
LspDiagnosticsHintFloating = {link='HintMsg'},
LspDiagnosticsHintSign = {link='HintMsg' },
LspDiagnosticsInformation = {link='Info' },
LspDiagnosticsInformationFloating = {link='InfoMsg'},
LspDiagnosticsInformationSign = {link='InfoMsg' },
--[[ 4.2.12. Cursor ]]
Cursor = {bg=white, fg=black, style='inverse'},
CursorIM = {link='Cursor' },
CursorColumn = {bg=lightblack2,fg=NONE, style=NONE },
--[[ 4.2.13. Misc ]]
Directory = {bg=NONE, fg=aqua, style='bold'},
Terminal = {link='Normal' },
NormalFloat = {bg=black, fg=white, style=NONE },
--[[ 4.3. Programming Languages
Everything in this section is OPTIONAL. Feel free to remove everything
here if you don't want to define it, or add more if there's something
missing.
]]
--[[ 4.3.1. C ]]
cConstant = {link='Constant'},
cCustomClass = {link='Type' },
--[[ 4.3.2. C++ ]]
cppSTLexception = {link='Exception'},
cppSTLnamespace = {link='String' },
--[[ 4.3.3 C# ]]
csLogicSymbols = {link='Operator'},
--[[ 4.3.4. CSS ]]
cssProp = {link='Keyword'},
cssTagName = {link='Type' },
--[[ 4.3.5. Dart ]]
dartLibrary = {link='Statement'},
--[[ 4.3.6. dot ]]
dotKeyChar = {link='Character'},
dotType = {link='Type' },
--[[ 4.3.7. Go ]]
goBlock = {link='Delimiter' },
goBoolean = {link='Boolean' },
goBuiltins = {link='Operator' },
goField = {link='Identifier' },
goFloat = {link='Float' },
goFormatSpecifier = {link='Character' },
goFunction = {link='Function' },
goFunctionCall = {link='goFunction' },
goFunctionReturn = {bg=NONE, fg=NONE, style=NONE},
goMethodCall = {link='goFunctionCall' },
goParamType = {link='goReceiverType' },
goPointerOperator = {link='SpecialChar' },
goPredefinedIdentifiers = {link='Constant' },
goReceiver = {link='goBlock' },
goReceiverType = {link='goTypeName' },
goSimpleParams = {link='goBlock' },
goType = {link='Type' },
goTypeConstructor = {link='goFunction' },
goTypeName = {link='Type' },
goVarAssign = {link='Identifier' },
goVarDefs = {link='goVarAssign' },
--[[ 4.3.8. HTML ]]
htmlBold = {bg=NONE, fg=NONE, style='bold' },
htmlItalic = {bg=NONE, fg=NONE, style='italic'},
htmlSpecialTagName = {link='Tag' },
--[[ 4.3.9. Java ]]
javaClassDecl = {link='Structure'},
--[[ 4.3.10. JavaScript ]]
jsFuncBlock = {link='Function' },
jsObjectKey = {link='Type' },
jsReturn = {link='Keyword' },
jsVariableDef = {link='Identifier'},
--[[ 4.3.11. JSON ]]
jsonStringSQError = {link='Exception'},
--[[ 4.3.12. Make ]]
makeCommands = {link='Statment'},
makeSpecTarget = {link='Type' },
--[[ 4.3.13. Markdown ]]
markdownH1 = {bg=NONE, fg=green_dark, style='bold' },
markdownH2 = {bg=NONE, fg=red_light, style='bold' },
markdownH3 = {bg=NONE, fg=green, style='bold' },
markdownH4 = {bg=NONE, fg=purple, style='bold' },
markdownH5 = {bg=NONE, fg=orange, style='bold' },
markdownH6 = {bg=NONE, fg=yellow, style='bold' },
mkdBold = {bg=NONE, fg='green', style='bold' },
mkdCode = {link='Comment' },
mkdCodeDelimiter = {link='Delimiter' },
mkdItalic = {bg=NONE, fg=green, style='italic'},
mkdListItem = {link='Special' },
mkdNonListItemBlock = {link='Normal' },
texMathZoneY = {link='String' },
--[[ 4.3.20. Python ]]
pythonBrackets = {link='Delimiter' },
pythonBuiltinFunc = {link='Operator' },
pythonBuiltinObj = {link='Type' },
pythonBuiltinType = {link='Type' },
pythonClass = {link='Structure' },
pythonClassParameters = {link='pythonParameters'},
pythonDecorator = {link='PreProc' },
pythonDottedName = {link='Identifier' },
pythonError = {link='Error' },
pythonException = {link='Exception' },
pythonInclude = {link='Include' },
pythonIndentError = {link='pythonError' },
pythonLambdaExpr = {link='pythonOperator' },
pythonOperator = {link='Operator' },
pythonParam = {link='Identifier' },
pythonParameters = {link='Delimiter' },
pythonSelf = {link='Statement' },
pythonSpaceError = {link='pythonError' },
pythonStatement = {link='Statement' },
--[[ 4.3.21. Ruby ]]
rubyClass = {link='Structure'},
rubyDefine = {link='Define' },
rubyInterpolationDelimiter = {link='Delimiter'},
--[[ 4.3.22. Rust ]]
rustKeyword = {link='Keyword' },
rustModPath = {link='Include' },
rustScopeDecl = {link='Delimiter' },
rustTrait = {link='StorageClass'},
--[[ 4.3.23. Scala ]]
scalaKeyword = {link='Keyword' },
scalaNameDefinition = {link='Identifier'},
--[[ 4.3.24. shell ]]
shFunctionKey = {link='Function' },
shLoop = {link='Repeat' },
shSet = {link='Statement'},
shTestOpr = {link='Debug' },
--[[ 4.3.25. Solidity ]]
solBuiltinType = {link='Type' },
solContract = {link='Typedef' },
solContractName = {link='Function'},
--[[ 4.3.26. TOML ]]
tomlComment = {link='Comment' },
tomlKey = {link='Label' },
tomlTable = {link='StorageClass'},
--[[ 4.3.27. VimScript ]]
vimCommand = {link = 'Keyword' },
vimFuncKey = {link = 'Function' },
vimGroup = {link = 'Type' },
vimHiGroup = {link = 'Typedef' },
vimIsCommand = {link = 'vimCommand'},
vimLet = {link = 'Operator' },
vimMap = {link = 'vimCommand'},
--[[ 4.3.28. XML ]]
xmlAttrib = {link='Label' },
xmlEndTag = {link='Exception'},
xmlEqual = {link='Operator' },
xmlTag = {link='Delimiter'},
xmlTagName = {link='Define' },
--[[ 4.3.29 Haskell ]]
haskellType = {link='Type' },
haskellIdentifier = {link='Identifier' },
haskellOperators = {link='Operator' },
haskellWhere = {link='Keyword' },
haskellDelimiter = {link='Delimiter' },
haskellImportKeywords = {link='Include' },
haskellStatement = {link='Statement' },
--[[ 4.4. Plugins
Everything in this section is OPTIONAL. Feel free to remove everything
here if you don't want to define it, or add more if there's something
missing.
]]
--[[ 4.4.1. ALE ]]
ALEErrorSign = {link='ErrorMsg' },
ALEWarningSign = {link='WarningMsg'},
--[[ 4.4.2. coc.nvim ]]
CocErrorHighlight = {bg=NONE, fg=NONE, style={'undercurl', color='red' }},
CocErrorSign = {link='ALEErrorSign' },
CocHintHighlight = {bg=NONE, fg=NONE, style={'undercurl', color='purple' }},
CocHintSign = {link='HintMsg' },
CocInfoHighlight = {bg=NONE, fg=NONE, style={'undercurl', color='pink' }},
CocInfoSign = {link='InfoMsg' },
CocWarningHighlight = {bg=NONE, fg=NONE, style={'undercurl', color='orange' }},
CocWarningSign = {link='ALEWarningSign' },
--[[ 4.4.2. vim-jumpmotion / vim-easymotion ]]
EasyMotion = {link = 'IncSearch' },
JumpMotion = {link = 'EasyMotion'},
--[[ 4.4.3. vim-markdown ]]
htmlH1 = {link='markdownH1'},
htmlH2 = {link='markdownH2'},
htmlH3 = {link='markdownH3'},
htmlH4 = {link='markdownH4'},
htmlH5 = {link='markdownH5'},
htmlH6 = {link='markdownH6'},
--[[ 4.4.4. vim-gitgutter / vim-signify ]]
GitGutterAdd = {bg=NONE, fg=green, style=NONE},
GitGutterChange = {bg=NONE, fg=yellow, style=NONE},
GitGutterDelete = {bg=NONE, fg=red, style=NONE},
GitGutterChangeDelete = {bg=NONE, fg=orange, style=NONE},
SignifySignAdd = {link='GitGutterAdd' },
SignifySignChange = {link='GitGutterChange' },
SignifySignDelete = {link='GitGutterDelete' },
SignifySignChangeDelete = {link='GitGutterChangeDelete'},
--[[ 4.4.5. vim-indent-guides ]]
IndentGuidesOdd = {bg=darkgrey, fg=NONE, style=NONE},
IndentGuidesEven = {bg=grey, fg=NONE, style=NONE},
--[[ 4.4.7. NERDTree ]]
NERDTreeCWD = {link='Label' },
NERDTreeUp = {link='Operator' },
NERDTreeDir = {link='Directory' },
NERDTreeDirSlash = {link='Delimiter' },
NERDTreeOpenable = {link='NERDTreeDir' },
NERDTreeClosable = {link='NERDTreeOpenable'},
NERDTreeExecFile = {link='Function' },
NERDTreeLinkTarget = {link='Tag' },
--[[ 4.4.8 SearchLight ]]
SearchLight = {bg=black, fg=orange, style={'bold', 'italic', 'underline'}},
--[[ 4.4.9 Sneak ]]
Sneak = {bg=red, fg=black, style='bold' },
SneakScope = {bg=black, fg=orange, style={'bold', 'underline'}},
--[[ 4.4.10 Which key ]]
WhichKey = {link='Function' },
WhichKeySeperator = {link='DiffAdded' },
WhichKeyGroup = {link='Keyword' },
WhichKeyDesc = {bg=black, fg=orange, style=NONE },
WhichKeyFloating = {link='Pmenu' },
}
-- We do not care about terminals which do not support 256 colors
local terminal_ansi_colors = { }
require('yolokai')(
highlight_group_normal,
highlight_groups,
terminal_ansi_colors
)
EOF