From f28065c8c24fb5d15eddd71d13f8cf0d878a964f Mon Sep 17 00:00:00 2001 From: 0scar Date: Wed, 8 Dec 2021 08:28:47 +0100 Subject: Add moonfly colorscheme --- .config/vim/colors/moonfly.vim | 963 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 963 insertions(+) create mode 100644 .config/vim/colors/moonfly.vim (limited to '.config') diff --git a/.config/vim/colors/moonfly.vim b/.config/vim/colors/moonfly.vim new file mode 100644 index 0000000..3f974cb --- /dev/null +++ b/.config/vim/colors/moonfly.vim @@ -0,0 +1,963 @@ +" Dark Vim/Neovim color scheme. +" +" URL: github.com/bluz71/vim-moonfly-colors +" License: MIT (https://opensource.org/licenses/MIT) + +" Clear highlights and reset syntax only when changing colorschemes. +if exists('g:colors_name') + highlight clear + if exists('syntax_on') + syntax reset + endif +endif +let g:colors_name='moonfly' + +" By default do not color the cursor. +let g:moonflyCursorColor = get(g:, 'moonflyCursorColor', 0) + +" By default do use italics in GUI versions of Vim. +let g:moonflyItalics = get(g:, 'moonflyItalics', 1) + +" By default do not use a customized 'NormalFloat' highlight group (for Neovim +" floating windows). +let g:moonflyNormalFloat = get(g:, 'moonflyNormalFloat', 0) + +" By default use the moonfly color palette in the `:terminal` +let g:moonflyTerminalColors = get(g:, 'moonflyTerminalColors', 1) + +" By default do not use a transparent background in GUI versions of Vim. +let g:moonflyTransparent = get(g:, 'moonflyTransparent', 0) + +" By default do use undercurls in GUI versions of Vim, including terminal Vim +" with termguicolors set. +let g:moonflyUndercurls = get(g:, 'moonflyUndercurls', 1) + +" By default do not underline matching parentheses. +let g:moonflyUnderlineMatchParen = get(g:, 'moonflyUnderlineMatchParen', 0) + +" By default do display vertical split columns. +let g:moonflyVertSplits = get(g:, 'moonflyVertSplits', 1) + +" Background and foreground +let s:black = {"hex": '#080808', "term": 232} +let s:white = {"hex": '#c6c6c6', "term": 251} +" Variations of charcoal-grey +let s:grey0 = {"hex": '#323437', "term": 0 } +let s:grey254 = {"hex": '#e4e4e4', "term": 254} +let s:grey249 = {"hex": '#b2b2b2', "term": 249} +let s:grey247 = {"hex": '#9e9e9e', "term": 247} +let s:grey246 = {"hex": '#949494', "term": 246} +let s:grey244 = {"hex": '#808080', "term": 244} +let s:grey241 = {"hex": '#626262', "term": 241} +let s:grey237 = {"hex": '#3a3a3a', "term": 237} +let s:grey236 = {"hex": '#303030', "term": 236} +let s:grey235 = {"hex": '#262626', "term": 235} +let s:grey234 = {"hex": '#1c1c1c', "term": 234} +let s:grey233 = {"hex": '#121212', "term": 233} +" Core theme colors +let s:wheat = {"hex": '#bfbf97', "term": 11} +let s:yellow = {"hex": '#e3c78a', "term": 3 } +let s:orange = {"hex": '#de935f', "term": 7 } +let s:coral = {"hex": '#f09479', "term": 8 } +let s:lime = {"hex": '#85dc85', "term": 14} +let s:green = {"hex": '#8cc85f', "term": 2 } +let s:emerald = {"hex": '#36c692', "term": 10} +let s:blue = {"hex": '#80a0ff', "term": 4 } +let s:sky = {"hex": '#74b2ff', "term": 12} +let s:turquoise = {"hex": '#79dac8', "term": 6 } +let s:purple = {"hex": '#ae81ff', "term": 13} +let s:cranberry = {"hex": '#e2637f', "term": 15} +let s:violet = {"hex": '#d183e8', "term": 5 } +let s:crimson = {"hex": '#ff5189', "term": 9 } +let s:red = {"hex": '#ff5454', "term": 1 } +" Extra colors +let s:spring = {"hex": '#00875f', "term": 29} + +" Specify the colors used by the inbuilt terminal of Neovim and Vim +if g:moonflyTerminalColors + if has('nvim') + let g:terminal_color_0 = s:grey0.hex + let g:terminal_color_1 = s:red.hex + let g:terminal_color_2 = s:green.hex + let g:terminal_color_3 = s:yellow.hex + let g:terminal_color_4 = s:blue.hex + let g:terminal_color_5 = s:violet.hex + let g:terminal_color_6 = s:turquoise.hex + let g:terminal_color_7 = s:white.hex + let g:terminal_color_8 = s:grey246.hex + let g:terminal_color_9 = s:crimson.hex + let g:terminal_color_10 = s:emerald.hex + let g:terminal_color_11 = s:wheat.hex + let g:terminal_color_12 = s:sky.hex + let g:terminal_color_13 = s:purple.hex + let g:terminal_color_14 = s:lime.hex + let g:terminal_color_15 = s:grey254.hex + else + let g:terminal_ansi_colors = [ + \ s:grey0.hex, s:red.hex, s:green.hex, s:yellow.hex, + \ s:blue.hex, s:violet.hex, s:turquoise.hex, s:white.hex, + \ s:grey246.hex, s:crimson.hex, s:emerald.hex, s:wheat.hex, + \ s:sky.hex, s:purple.hex, s:lime.hex, s:grey254.hex + \] + endif +endif + +" Background and text +if g:moonflyTransparent + exec 'highlight Normal ctermbg=' . s:black.term . ' ctermfg=' . s:white.term . ' guibg=NONE guifg=' . s:white.hex +else + exec 'highlight Normal ctermbg=' . s:black.term . ' ctermfg=' . s:white.term . ' guibg=' . s:black.hex . ' guifg=' . s:white.hex +endif + +" Custom moonfly highlight groups +exec 'highlight MoonflyReset ctermfg=fg guifg=fg' +exec 'highlight MoonflyVisual ctermbg=' . s:grey0.term . ' guibg=' . s:grey0.hex +exec 'highlight MoonflyWhite ctermfg=' . s:white.term . ' guifg=' . s:white.hex +exec 'highlight MoonflyGrey0 ctermfg=' . s:grey0.term . ' guifg=' . s:grey0.hex +exec 'highlight MoonflyGrey254 ctermfg=' . s:grey254.term . ' guifg=' . s:grey254.hex +exec 'highlight MoonflyGrey249 ctermfg=' . s:grey249.term . ' guifg=' . s:grey249.hex +exec 'highlight MoonflyGrey247 ctermfg=' . s:grey247.term . ' guifg=' . s:grey247.hex +exec 'highlight MoonflyGrey246 ctermfg=' . s:grey246.term . ' guifg=' . s:grey246.hex +exec 'highlight MoonflyGrey241 ctermfg=' . s:grey241.term . ' guifg=' . s:grey241.hex +exec 'highlight MoonflyGrey236 ctermfg=' . s:grey236.term . ' guifg=' . s:grey236.hex +exec 'highlight MoonflyWheat ctermfg=' . s:wheat.term . ' guifg=' . s:wheat.hex +exec 'highlight MoonflyYellow ctermfg=' . s:yellow.term . ' guifg=' . s:yellow.hex +exec 'highlight MoonflyOrange ctermfg=' . s:orange.term . ' guifg=' . s:orange.hex +exec 'highlight MoonflyCoral ctermfg=' . s:coral.term . ' guifg=' . s:coral.hex +exec 'highlight MoonflyLime ctermfg=' . s:lime.term . ' guifg=' . s:lime.hex +exec 'highlight MoonflyGreen ctermfg=' . s:green.term . ' guifg=' . s:green.hex +exec 'highlight MoonflyEmerald ctermfg=' . s:emerald.term . ' guifg=' . s:emerald.hex +exec 'highlight MoonflyBlue ctermfg=' . s:blue.term . ' guifg=' . s:blue.hex +exec 'highlight MoonflySky ctermfg=' . s:sky.term . ' guifg=' . s:sky.hex +exec 'highlight MoonflyTurquoise ctermfg=' . s:turquoise.term . ' guifg=' . s:turquoise.hex +exec 'highlight MoonflyPurple ctermfg=' . s:purple.term . ' guifg=' . s:purple.hex +exec 'highlight MoonflyCranberry ctermfg=' . s:cranberry.term . ' guifg=' . s:cranberry.hex +exec 'highlight MoonflyViolet ctermfg=' . s:violet.term . ' guifg=' . s:violet.hex +exec 'highlight MoonflyCrimson ctermfg=' . s:crimson.term . ' guifg=' . s:crimson.hex +exec 'highlight MoonflyRed ctermfg=' . s:red.term . ' guifg=' . s:red.hex +exec 'highlight MoonflyWhiteAlert ctermbg=bg ctermfg=' . s:white.term . ' guibg=bg guifg=' . s:white.hex +exec 'highlight MoonflyYellowAlert ctermbg=bg ctermfg=' . s:yellow.term . ' guibg=bg guifg=' . s:yellow.hex +exec 'highlight MoonflyCoralAlert ctermbg=bg ctermfg=' . s:coral.term . ' guibg=bg guifg=' . s:coral.hex +exec 'highlight MoonflyEmeraldAlert ctermbg=bg ctermfg=' . s:emerald.term . ' guibg=bg guifg=' . s:emerald.hex +exec 'highlight MoonflyPurpleAlert ctermbg=bg ctermfg=' . s:purple.term . ' guibg=bg guifg=' . s:purple.hex +exec 'highlight MoonflySkyAlert ctermbg=bg ctermfg=' . s:sky.term . ' guibg=bg guifg=' . s:sky.hex +exec 'highlight MoonflyRedAlert ctermbg=bg ctermfg=' . s:red.term . ' guibg=bg guifg=' . s:red.hex + +" Color of mode text, -- INSERT -- +exec 'highlight ModeMsg ctermfg=' . s:grey247.term . ' guifg=' . s:grey247.hex . ' gui=none' + +" Comments +if g:moonflyItalics + exec 'highlight Comment ctermfg=' . s:grey246.term . ' guifg=' . s:grey246.hex . ' gui=italic' +else + exec 'highlight Comment ctermfg=' . s:grey246.term . ' guifg=' . s:grey246.hex +endif + +" Functions +highlight! link Function MoonflySky + +" Strings +highlight! link String MoonflyWheat + +" Booleans +highlight! link Boolean MoonflyCoral + +" Identifiers +exec 'highlight Identifier ctermfg=' . s:turquoise.term . ' cterm=none guifg=' . s:turquoise.hex + +" Color of titles +exec 'highlight Title ctermfg=' . s:orange.term . ' guifg=' . s:orange.hex . ' gui=none' + +" const, static +highlight! link StorageClass MoonflyCoral + +" void, intptr_t +exec 'highlight Type ctermfg=' . s:emerald.term . ' guifg=' . s:emerald.hex . ' gui=none' + +" Numbers +highlight! link Constant MoonflyOrange + +" Character constants +highlight! link Character MoonflyPurple + +" Exceptions +highlight! link Exception MoonflyCrimson + +" ifdef/endif +highlight! link PreProc MoonflyCranberry + +" case in switch statement +highlight! link Label MoonflyTurquoise + +" end-of-line '$', end-of-file '~' +exec 'highlight NonText ctermfg=' . s:grey241.term . ' guifg=' . s:grey241.hex . ' gui=none' + +" sizeof +highlight! link Operator MoonflyCranberry + +" for, while +highlight! link Repeat MoonflyViolet + +" Search +exec 'highlight Search ctermbg=bg ctermfg=' . s:coral.term . ' cterm=reverse guibg=bg guifg=' . s:coral.hex . ' gui=reverse' +exec 'highlight IncSearch ctermbg=bg ctermfg=' . s:yellow.term . ' guibg=bg guifg=' . s:yellow.hex + +" '\n' sequences +highlight! link Special MoonflyCranberry + +" if, else +exec 'highlight Statement ctermfg=' . s:violet.term . ' guifg=' . s:violet.hex . ' gui=none' + +" struct, union, enum, typedef +highlight! link Structure MoonflyBlue + +" Status, split and tab lines +exec 'highlight StatusLine ctermbg=' . s:grey236.term . ' ctermfg=' . s:white.term . ' cterm=none guibg=' . s:grey236.hex . ' guifg=' . s:white.hex . ' gui=none' +exec 'highlight StatusLineNC ctermbg=' . s:grey236.term . ' ctermfg=' . s:grey247.term . ' cterm=none guibg=' . s:grey236.hex . ' guifg=' . s:grey247.hex . ' gui=none' +exec 'highlight Tabline ctermbg=' . s:grey236.term . ' ctermfg=' . s:grey247.term . ' cterm=none guibg=' . s:grey236.hex . ' guifg=' . s:grey247.hex . ' gui=none' +exec 'highlight TablineSel ctermbg=' . s:grey236.term . ' ctermfg=' . s:blue.term . ' cterm=none guibg=' . s:grey236.hex . ' guifg=' . s:blue.hex . ' gui=none' +exec 'highlight TablineFill ctermbg=' . s:grey236.term . ' ctermfg=' . s:grey236.term . ' cterm=none guibg=' . s:grey236.hex . ' guifg=' . s:grey236.hex . ' gui=none' +exec 'highlight StatusLineTerm ctermbg=' . s:grey236.term . ' ctermfg=' . s:white.term . ' cterm=none guibg=' . s:grey236.hex . ' guifg=' . s:white.hex . ' gui=none' +exec 'highlight StatusLineTermNC ctermbg=' . s:grey236.term . ' ctermfg=' . s:grey247.term . ' cterm=none guibg=' . s:grey236.hex . ' guifg=' . s:grey247.hex . ' gui=none' +if g:moonflyVertSplits + exec 'highlight VertSplit ctermbg=' . s:grey236.term . ' ctermfg=' . s:grey236.term . ' cterm=none guibg=' . s:grey236.hex . ' guifg=' . s:grey236.hex . ' gui=none' +else + exec 'highlight VertSplit ctermbg=' . s:black.term . ' ctermfg=' . s:black.term . ' cterm=none guibg=' . s:black.hex . ' guifg=' . s:black.hex . ' gui=none' +end + +" Visual selection +highlight! link Visual MoonflyVisual +exec 'highlight VisualNOS ctermbg=' . s:grey0.term . ' ctermfg=fg cterm=none guibg=' . s:grey0.hex . ' guifg=fg gui=none' +exec 'highlight VisualInDiff ctermbg=' . s:grey0.term . ' ctermfg=' . s:white.term . ' guibg=' . s:grey0.hex . ' guifg=' . s:white.hex + +" Errors, warnings and whitespace-eol +exec 'highlight Error ctermbg=bg ctermfg=' . s:red.term . ' guibg=bg guifg=' . s:red.hex +exec 'highlight ErrorMsg ctermbg=bg ctermfg=' . s:red.term . ' guibg=bg guifg=' . s:red.hex +exec 'highlight WarningMsg ctermbg=bg ctermfg=' . s:orange.term . ' guibg=bg guifg=' . s:orange.hex + +" Auto-text-completion menu +exec 'highlight Pmenu ctermbg=' . s:grey235.term . ' ctermfg=fg guibg=' . s:grey235.hex . ' guifg=fg' +exec 'highlight PmenuSel ctermbg=' . s:spring.term . ' ctermfg=fg guibg=' . s:spring.hex . ' guifg=fg' +exec 'highlight PmenuSbar ctermbg=' . s:grey235.term . ' guibg=' . s:grey235.hex +exec 'highlight PmenuThumb ctermbg=' . s:grey244.term . ' guibg=' . s:grey244.hex +exec 'highlight WildMenu ctermbg=' . s:spring.term . ' ctermfg=fg guibg=' . s:spring.hex . ' guifg=fg' + +" Spelling errors +if g:moonflyUndercurls + exec 'highlight SpellBad ctermbg=NONE ctermfg=' . s:red.term . ' cterm=underline guibg=NONE gui=undercurl guisp=' . s:red.hex + exec 'highlight SpellCap ctermbg=NONE ctermfg=' . s:blue.term . ' cterm=underline guibg=NONE gui=undercurl guisp=' . s:blue.hex + exec 'highlight SpellRare ctermbg=NONE ctermfg=' . s:yellow.term . ' cterm=underline guibg=NONE gui=undercurl guisp=' . s:yellow.hex + exec 'highlight SpellLocal ctermbg=NONE ctermfg=' . s:sky.term . ' cterm=underline guibg=NONE gui=undercurl guisp=' . s:sky.hex +else + exec 'highlight SpellBad ctermbg=NONE ctermfg=' . s:red.term . ' cterm=underline guibg=NONE guifg=' . s:red.hex . ' gui=underline guisp=' . s:red.hex + exec 'highlight SpellCap ctermbg=NONE ctermfg=' . s:blue.term . ' cterm=underline guibg=NONE guifg=' . s:blue.hex . ' gui=underline guisp=' . s:blue.hex + exec 'highlight SpellRare ctermbg=NONE ctermfg=' . s:yellow.term . ' cterm=underline guibg=NONE guifg=' . s:yellow.hex . ' gui=underline guisp=' . s:yellow.hex + exec 'highlight SpellLocal ctermbg=NONE ctermfg=' . s:sky.term . ' cterm=underline guibg=NONE guifg=' . s:sky.hex . ' gui=underline guisp=' . s:sky.hex +endif + +" Misc +exec 'highlight Question ctermfg=' . s:lime.term . ' guifg=' . s:lime.hex . ' gui=none' +exec 'highlight MoreMsg ctermfg=' . s:red.term . ' guifg=' . s:red.hex . ' gui=none' +exec 'highlight LineNr ctermbg=bg ctermfg=' . s:grey241.term . ' guibg=bg guifg=' . s:grey241.hex . ' gui=none' +if g:moonflyCursorColor + exec 'highlight Cursor ctermfg=bg ctermbg=' . s:blue.term . ' guifg=bg guibg=' . s:blue.hex +else + exec 'highlight Cursor ctermfg=bg ctermbg=' . s:grey247.term . ' guifg=bg guibg=' . s:grey247.hex +endif +exec 'highlight lCursor ctermfg=bg ctermbg=' . s:grey247.term . ' guifg=bg guibg=' . s:grey247.hex +exec 'highlight CursorLineNr ctermbg=' . s:grey234.term . ' ctermfg=' . s:blue.term . ' cterm=none guibg=' . s:grey234.hex . ' guifg=' . s:blue.hex . ' gui=none' +exec 'highlight CursorColumn ctermbg=' . s:grey234.term . ' cterm=none guibg=' . s:grey234.hex +exec 'highlight CursorLine ctermbg=' . s:grey234.term . ' cterm=none guibg=' . s:grey234.hex +exec 'highlight Folded ctermbg=' . s:grey234.term . ' ctermfg=' . s:lime.term . ' guibg=' . s:grey234.hex . ' guifg='. s:lime.hex +exec 'highlight FoldColumn ctermbg=' . s:grey236.term . ' ctermfg=' . s:lime.term . ' guibg=' . s:grey236.hex . ' guifg=' . s:lime.hex +exec 'highlight SignColumn ctermbg=bg ctermfg=' . s:lime.term . ' guibg=bg guifg=' . s:lime.hex +exec 'highlight Todo ctermbg=' . s:yellow.term . ' ctermfg=' . s:black.term . ' guibg=' . s:yellow.hex . ' guifg=' . s:black.hex +exec 'highlight SpecialKey ctermbg=bg ctermfg=' . s:sky.term . ' guibg=bg guifg=' . s:sky.hex +if g:moonflyUnderlineMatchParen + exec 'highlight MatchParen ctermbg=bg cterm=underline guibg=bg gui=underline' +else + highlight! link MatchParen MoonflyVisual +endif +exec 'highlight Ignore ctermfg=' . s:sky.term . ' guifg=' . s:sky.hex +exec 'highlight Underlined ctermfg=' . s:emerald.term . ' cterm=none guifg=' . s:emerald.hex . ' gui=none' +exec 'highlight QuickFixLine ctermbg=' . s:grey237.term . ' cterm=none guibg=' . s:grey237.hex +highlight! link Delimiter MoonflyWhite +highlight! link qfFileName MoonflyEmerald + +" Color column (after line 80) +exec 'highlight ColorColumn ctermbg=' . s:grey233.term . ' guibg=' . s:grey233.hex + +" Conceal color +exec 'highlight Conceal ctermbg=NONE ctermfg=' . s:grey249.term . ' guibg=NONE guifg=' . s:grey249.hex + +" Neovim only highlight groups +if has('nvim') + exec 'highlight Whitespace ctermfg=' . s:grey235.term . ' guifg=' . s:grey235.hex + exec 'highlight TermCursor ctermbg=' . s:grey247.term . ' ctermfg=bg cterm=none guibg=' . s:grey247.hex . ' guifg=bg gui=none' + if g:moonflyNormalFloat + exec 'highlight NormalFloat ctermbg=bg ctermfg=' . s:grey249.term . ' guibg=bg guifg=' . s:grey249.hex + else + exec 'highlight NormalFloat ctermbg=' . s:grey234.term . ' ctermfg=fg guibg=' . s:grey234.hex . ' guifg=fg' + endif + exec 'highlight FloatBorder ctermbg=bg ctermfg=' . s:grey236.term . ' guibg=bg guifg=' . s:grey236.hex + + " Neovim Treesitter + highlight! link TSAnnotation MoonflyViolet + highlight! link TSAttribute MoonflySky + highlight! link TSConstant MoonflyTurquoise + highlight! link TSConstBuiltin MoonflyGreen + highlight! link TSConstMacro MoonflyViolet + highlight! link TSConstructor MoonflyEmerald + highlight! link TSFuncBuiltin MoonflySky + highlight! link TSFuncMacro MoonflySky + highlight! link TSInclude MoonflyCranberry + highlight! link TSKeywordOperator MoonflyViolet + highlight! link TSNamespace MoonflyBlue + highlight! link TSParameter MoonflyWhite + highlight! link TSPunctSpecial MoonflyCranberry + highlight! link TSSymbol MoonflyPurple + highlight! link TSTag MoonflyBlue + highlight! link TSTagDelimiter MoonflyLime + highlight! link TSVariableBuiltin MoonflyLime + highlight! link bashTSParameter MoonflyTurquoise + highlight! link cssTSPunctDelimiter MoonflyCranberry + highlight! link cssTSType MoonflyBlue + highlight! link scssTSPunctDelimiter MoonflyCranberry + highlight! link scssTSType MoonflyBlue + highlight! link yamlTSField MoonflySky + highlight! link yamlTSPunctDelimiter MoonflyCranberry +endif + +" C/C++ +highlight! link cDefine MoonflyViolet +highlight! link cPreCondit MoonflyViolet +highlight! link cStatement MoonflyViolet +highlight! link cStructure MoonflyCoral +highlight! link cppAccess MoonflyLime +highlight! link cppCast MoonflyTurquoise +highlight! link cppCustomClass MoonflyTurquoise +highlight! link cppExceptions MoonflyLime +highlight! link cppModifier MoonflyViolet +highlight! link cppOperator MoonflyGreen +highlight! link cppStatement MoonflyTurquoise +highlight! link cppSTLconstant MoonflyBlue +highlight! link cppSTLnamespace MoonflyBlue +highlight! link cppStructure MoonflyViolet + +" C# +highlight! link csModifier MoonflyLime +highlight! link csPrecondit MoonflyViolet +highlight! link csStorage MoonflyViolet +highlight! link csXmlTag MoonflyBlue + +" Clojure +highlight! link clojureDefine MoonflyViolet +highlight! link clojureKeyword MoonflyPurple +highlight! link clojureMacro MoonflyOrange +highlight! link clojureParen MoonflyBlue +highlight! link clojureSpecial MoonflySky + +" CoffeeScript +highlight! link coffeeConstant MoonflyEmerald +highlight! link coffeeGlobal MoonflyTurquoise +highlight! link coffeeKeyword MoonflyOrange +highlight! link coffeeObjAssign MoonflySky +highlight! link coffeeSpecialIdent MoonflyLime +highlight! link coffeeSpecialVar MoonflyBlue +highlight! link coffeeStatement MoonflyCoral + +" Crystal +highlight! link crystalAccess MoonflyYellow +highlight! link crystalAttribute MoonflySky +highlight! link crystalBlockParameter MoonflyGreen +highlight! link crystalClass MoonflyOrange +highlight! link crystalDefine MoonflyViolet +highlight! link crystalExceptional MoonflyCoral +highlight! link crystalInstanceVariable MoonflyLime +highlight! link crystalModule MoonflyBlue +highlight! link crystalPseudoVariable MoonflyGreen +highlight! link crystalSharpBang MoonflyGrey247 +highlight! link crystalStringDelimiter MoonflyWheat +highlight! link crystalSymbol MoonflyPurple + +" CSS/SCSS +highlight! link cssAtRule MoonflyViolet +highlight! link cssAttr MoonflyTurquoise +highlight! link cssBraces MoonflyReset +highlight! link cssClassName MoonflyEmerald +highlight! link cssClassNameDot MoonflyViolet +highlight! link cssColor MoonflyTurquoise +highlight! link cssIdentifier MoonflySky +highlight! link cssProp MoonflyTurquoise +highlight! link cssTagName MoonflyBlue +highlight! link cssUnitDecorators MoonflyWheat +highlight! link cssValueLength MoonflyPurple +highlight! link cssValueNumber MoonflyPurple +highlight! link sassId MoonflyBlue +highlight! link sassIdChar MoonflyViolet +highlight! link sassMedia MoonflyViolet +highlight! link scssSelectorName MoonflyBlue + +" Dart +highlight! link dartMetadata MoonflyLime +highlight! link dartStorageClass MoonflyViolet +highlight! link dartTypedef MoonflyViolet + +" Elixir +highlight! link eelixirDelimiter MoonflyCrimson +highlight! link elixirAtom MoonflyPurple +highlight! link elixirBlockDefinition MoonflyViolet +highlight! link elixirDefine MoonflyViolet +highlight! link elixirDocTest MoonflyGrey247 +highlight! link elixirExUnitAssert MoonflyLime +highlight! link elixirExUnitMacro MoonflySky +highlight! link elixirKernelFunction MoonflyGreen +highlight! link elixirKeyword MoonflyOrange +highlight! link elixirModuleDefine MoonflyBlue +highlight! link elixirPrivateDefine MoonflyViolet +highlight! link elixirStringDelimiter MoonflyWheat +highlight! link elixirVariable MoonflyTurquoise + +" Elm +highlight! link elmLetBlockDefinition MoonflyLime +highlight! link elmTopLevelDecl MoonflyCoral +highlight! link elmType MoonflySky + +" Go +highlight! link goBuiltins MoonflySky +highlight! link goConditional MoonflyViolet +highlight! link goDeclType MoonflyGreen +highlight! link goDirective MoonflyCranberry +highlight! link goFloats MoonflyPurple +highlight! link goFunction MoonflyBlue +highlight! link goFunctionCall MoonflySky +highlight! link goImport MoonflyCranberry +highlight! link goLabel MoonflyYellow +highlight! link goMethod MoonflySky +highlight! link goMethodCall MoonflySky +highlight! link goPackage MoonflyViolet +highlight! link goSignedInts MoonflyEmerald +highlight! link goStruct MoonflyCoral +highlight! link goStructDef MoonflyCoral +highlight! link goUnsignedInts MoonflyPurple + +" Haskell +highlight! link haskellDecl MoonflyOrange +highlight! link haskellDeclKeyword MoonflyOrange +highlight! link haskellIdentifier MoonflyTurquoise +highlight! link haskellLet MoonflySky +highlight! link haskellOperators MoonflyCranberry +highlight! link haskellType MoonflySky +highlight! link haskellWhere MoonflyViolet + +" HTML +highlight! link htmlArg MoonflyTurquoise +highlight! link htmlLink MoonflyGreen +highlight! link htmlH1 MoonflyCranberry +highlight! link htmlH2 MoonflyOrange +highlight! link htmlEndTag MoonflyPurple +highlight! link htmlTag MoonflyLime +highlight! link htmlTagN MoonflyBlue +highlight! link htmlTagName MoonflyBlue +highlight! link htmlUnderline MoonflyWhite +if g:moonflyItalics + exec 'highlight htmlBoldItalic ctermbg=' . s:black.term . ' ctermfg=' . s:coral.term . ' guibg=' . s:black.hex . ' guifg=' . s:coral.hex . ' gui=italic' + exec 'highlight htmlBoldUnderlineItalic ctermbg=' . s:black.term . ' ctermfg=' . s:coral.term . ' guibg=' . s:black.hex . ' guifg=' . s:coral.hex . ' gui=italic' + exec 'highlight htmlItalic ctermfg=' . s:grey247.term . ' guifg=' . s:grey247.hex . ' gui=italic' + exec 'highlight htmlUnderlineItalic ctermbg=' . s:black.term . ' ctermfg=' . s:grey247.term . ' guibg=' . s:black.hex . ' guifg=' . s:grey247.hex . ' gui=italic' +else + exec 'highlight htmlBoldItalic ctermbg=' . s:black.term . ' ctermfg=' . s:coral.term . ' cterm=none guibg=' . s:black.hex . ' guifg=' . s:coral.hex ' gui=none' + exec 'highlight htmlBoldUnderlineItalic ctermbg=' . s:black.term . ' ctermfg=' . s:coral.term . ' guibg=' . s:black.hex . ' guifg=' . s:coral.hex + exec 'highlight htmlItalic ctermfg=' . s:grey247.term . ' cterm=none guifg=' . s:grey247.hex ' gui=none' + exec 'highlight htmlUnderlineItalic ctermbg=' . s:black.term . ' ctermfg=' . s:grey247.term . ' guibg=' . s:black.hex . ' guifg=' . s:grey247.hex +endif + +" Java +highlight! link javaAnnotation MoonflyLime +highlight! link javaBraces MoonflyWhite +highlight! link javaClassDecl MoonflyYellow +highlight! link javaCommentTitle MoonflyGrey247 +highlight! link javaConstant MoonflySky +highlight! link javaDebug MoonflySky +highlight! link javaMethodDecl MoonflyYellow +highlight! link javaOperator MoonflyCrimson +highlight! link javaScopeDecl MoonflyViolet +highlight! link javaStatement MoonflyTurquoise + +" JavaScript, 'pangloss/vim-javascript' plugin +highlight! link jsClassDefinition MoonflyEmerald +highlight! link jsClassKeyword MoonflyOrange +highlight! link jsFrom MoonflyCoral +highlight! link jsFuncBlock MoonflyTurquoise +highlight! link jsFuncCall MoonflySky +highlight! link jsFunction MoonflyLime +highlight! link jsGlobalObjects MoonflyEmerald +highlight! link jsModuleAs MoonflyCoral +highlight! link jsObjectKey MoonflySky +highlight! link jsObjectValue MoonflyEmerald +highlight! link jsOperator MoonflyViolet +highlight! link jsStorageClass MoonflyLime +highlight! link jsTemplateBraces MoonflyCranberry +highlight! link jsTemplateExpression MoonflyTurquoise +highlight! link jsThis MoonflyGreen + +" JSX, 'MaxMEllon/vim-jsx-pretty' plugin +highlight! link jsxAttrib MoonflyLime +highlight! link jsxClosePunct MoonflyPurple +highlight! link jsxComponentName MoonflyBlue +highlight! link jsxOpenPunct MoonflyLime +highlight! link jsxTagName MoonflyBlue + +" Lua +highlight! link luaBraces MoonflyCranberry +highlight! link luaBuiltin MoonflyGreen +highlight! link luaFuncCall MoonflySky +highlight! link luaSpecialTable MoonflySky + +" Markdown, 'tpope/vim-markdown' plugin +highlight! link markdownBold MoonflyYellow +highlight! link markdownCode MoonflyWheat +highlight! link markdownCodeDelimiter MoonflyWheat +highlight! link markdownError NormalNC +highlight! link markdownH1 MoonflyOrange +highlight! link markdownHeadingRule MoonflyBlue +highlight! link markdownItalic MoonflyViolet +highlight! link markdownUrl MoonflyPurple + +" Markdown, 'plasticboy/vim-markdown' plugin +highlight! link mkdDelimiter MoonflyWhite +highlight! link mkdLineBreak NormalNC +highlight! link mkdListItem MoonflyBlue +highlight! link mkdURL MoonflyPurple + +" PHP +highlight! link phpClass MoonflyEmerald +highlight! link phpClasses MoonflyBlue +highlight! link phpFunction MoonflySky +highlight! link phpParent MoonflyReset +highlight! link phpType MoonflyViolet + +" PureScript +highlight! link purescriptClass MoonflyOrange +highlight! link purescriptModuleParams MoonflyCoral + +" Python +highlight! link pythonBuiltin MoonflyBlue +highlight! link pythonClassVar MoonflyGreen +highlight! link pythonCoding MoonflySky +highlight! link pythonImport MoonflyCranberry +highlight! link pythonOperator MoonflyViolet +highlight! link pythonRun MoonflySky +highlight! link pythonStatement MoonflyViolet + +" Ruby +highlight! link erubyDelimiter MoonflyCrimson +highlight! link rubyAccess MoonflyYellow +highlight! link rubyAssertion MoonflySky +highlight! link rubyAttribute MoonflySky +highlight! link rubyBlockParameter MoonflyGreen +highlight! link rubyCallback MoonflySky +highlight! link rubyDefine MoonflyViolet +highlight! link rubyEntities MoonflySky +highlight! link rubyExceptional MoonflyCoral +highlight! link rubyGemfileMethod MoonflySky +highlight! link rubyInstanceVariable MoonflyTurquoise +highlight! link rubyInterpolationDelimiter MoonflyCranberry +highlight! link rubyMacro MoonflySky +highlight! link rubyModule MoonflyBlue +highlight! link rubyPseudoVariable MoonflyGreen +highlight! link rubyResponse MoonflySky +highlight! link rubyRoute MoonflySky +highlight! link rubySharpBang MoonflyGrey247 +highlight! link rubyStringDelimiter MoonflyWheat +highlight! link rubySymbol MoonflyPurple + +" Rust +highlight! link rustAssert MoonflyGreen +highlight! link rustAttribute MoonflyReset +highlight! link rustCharacterInvalid MoonflyCranberry +highlight! link rustCharacterInvalidUnicode MoonflyCranberry +highlight! link rustCommentBlockDoc MoonflyGrey247 +highlight! link rustCommentBlockDocError MoonflyGrey247 +highlight! link rustCommentLineDoc MoonflyGrey247 +highlight! link rustCommentLineDocError MoonflyGrey247 +highlight! link rustConstant MoonflyOrange +highlight! link rustDerive MoonflyGreen +highlight! link rustEscapeError MoonflyCranberry +highlight! link rustFuncName MoonflyBlue +highlight! link rustIdentifier MoonflyBlue +highlight! link rustInvalidBareKeyword MoonflyCranberry +highlight! link rustKeyword MoonflyViolet +highlight! link rustLifetime MoonflyViolet +highlight! link rustMacro MoonflyGreen +highlight! link rustMacroVariable MoonflyViolet +highlight! link rustModPath MoonflyBlue +highlight! link rustObsoleteExternMod MoonflyCranberry +highlight! link rustObsoleteStorage MoonflyCranberry +highlight! link rustReservedKeyword MoonflyCranberry +highlight! link rustSelf MoonflyTurquoise +highlight! link rustSigil MoonflyTurquoise +highlight! link rustStorage MoonflyViolet +highlight! link rustStructure MoonflyViolet +highlight! link rustTrait MoonflyEmerald +highlight! link rustType MoonflyEmerald + +" Scala (note, link highlighting does not work, I don't know why) +exec 'highlight scalaCapitalWord ctermfg=' . s:blue.term . ' guifg=' . s:blue.hex +exec 'highlight scalaCommentCodeBlock ctermfg=' . s:grey247.term . ' guifg=' . s:grey247.hex +exec 'highlight scalaInstanceDeclaration ctermfg=' . s:turquoise.term . ' guifg=' . s:turquoise.hex +exec 'highlight scalaKeywordModifier ctermfg=' . s:lime.term . ' guifg=' . s:lime.hex +exec 'highlight scalaSpecial ctermfg=' . s:crimson.term . ' guifg=' . s:crimson.hex + +" Shell scripts +highlight! link shAlias MoonflyTurquoise +highlight! link shCommandSub MoonflyReset +highlight! link shLoop MoonflyViolet +highlight! link shSetList MoonflyTurquoise +highlight! link shShellVariables MoonflyLime +highlight! link shVariable MoonflyTurquoise + +" TypeScript (leafgarland/typescript-vim) +highlight! link typescriptDOMObjects MoonflyBlue +highlight! link typescriptFuncComma MoonflyWhite +highlight! link typescriptFuncKeyword MoonflyLime +highlight! link typescriptGlobalObjects MoonflyBlue +highlight! link typescriptIdentifier MoonflyGreen +highlight! link typescriptNull MoonflyGreen +highlight! link typescriptOpSymbols MoonflyViolet +highlight! link typescriptOperator MoonflyCrimson +highlight! link typescriptParens MoonflyWhite +highlight! link typescriptReserved MoonflyViolet +highlight! link typescriptStorageClass MoonflyLime + +" TypeScript (HerringtonDarkholme/yats.vim) +highlight! link typeScriptModule MoonflyBlue +highlight! link typescriptAbstract MoonflyCoral +highlight! link typescriptArrayMethod MoonflySky +highlight! link typescriptArrowFuncArg MoonflyWhite +highlight! link typescriptBOM MoonflyEmerald +highlight! link typescriptBOMHistoryMethod MoonflySky +highlight! link typescriptBOMLocationMethod MoonflySky +highlight! link typescriptBOMWindowProp MoonflyGreen +highlight! link typescriptBraces MoonflyWhite +highlight! link typescriptCall MoonflyWhite +highlight! link typescriptClassHeritage MoonflyEmerald +highlight! link typescriptClassKeyword MoonflyOrange +highlight! link typescriptClassName MoonflyEmerald +highlight! link typescriptDecorator MoonflyLime +highlight! link typescriptDOMDocMethod MoonflySky +highlight! link typescriptDOMEventTargetMethod MoonflySky +highlight! link typescriptDOMNodeMethod MoonflySky +highlight! link typescriptExceptions MoonflyCrimson +highlight! link typescriptFuncType MoonflyWhite +highlight! link typescriptMathStaticMethod MoonflySky +highlight! link typescriptMethodAccessor MoonflyViolet +highlight! link typescriptObjectLabel MoonflySky +highlight! link typescriptParamImpl MoonflyWhite +highlight! link typescriptStringMethod MoonflySky +highlight! link typescriptTry MoonflyCrimson +highlight! link typescriptVariable MoonflyLime +highlight! link typescriptXHRMethod MoonflySky + +" Vimscript +highlight! link vimBracket MoonflySky +highlight! link vimCommand MoonflyViolet +highlight! link vimCommentTitle MoonflyViolet +highlight! link vimEnvvar MoonflyCrimson +highlight! link vimFuncName MoonflySky +highlight! link vimFuncSID MoonflySky +highlight! link vimFunction MoonflySky +highlight! link vimHighlight MoonflySky +highlight! link vimNotFunc MoonflyViolet +highlight! link vimNotation MoonflySky +highlight! link vimOption MoonflyTurquoise +highlight! link vimParenSep MoonflyWhite +highlight! link vimSep MoonflyWhite +highlight! link vimUserFunc MoonflySky + +" XML +highlight! link xmlAttrib MoonflyLime +highlight! link xmlEndTag MoonflyBlue +highlight! link xmlTag MoonflyLime +highlight! link xmlTagName MoonflyBlue + +" Git commits +highlight! link gitCommitBranch MoonflySky +highlight! link gitCommitDiscardedFile MoonflyCrimson +highlight! link gitCommitDiscardedType MoonflySky +highlight! link gitCommitHeader MoonflyPurple +highlight! link gitCommitSelectedFile MoonflyEmerald +highlight! link gitCommitSelectedType MoonflySky +highlight! link gitCommitUntrackedFile MoonflyCranberry +highlight! link gitEmail MoonflyBlue + +" Git commit diffs +highlight! link diffAdded MoonflyGreen +highlight! link diffChanged MoonflyCrimson +highlight! link diffIndexLine MoonflyCrimson +highlight! link diffLine MoonflySky +highlight! link diffRemoved MoonflyRed +highlight! link diffSubname MoonflySky + +" Tagbar plugin +highlight! link TagbarFoldIcon MoonflyGrey247 +highlight! link TagbarVisibilityPublic MoonflyLime +highlight! link TagbarVisibilityProtected MoonflyLime +highlight! link TagbarVisibilityPrivate MoonflyLime +highlight! link TagbarKind MoonflyEmerald + +" NERDTree plugin +highlight! link NERDTreeClosable MoonflyEmerald +highlight! link NERDTreeCWD MoonflyPurple +highlight! link NERDTreeDir MoonflySky +highlight! link NERDTreeDirSlash MoonflyCranberry +highlight! link NERDTreeExecFile MoonflyWheat +highlight! link NERDTreeFile MoonflyWhite +highlight! link NERDTreeHelp MoonflyGrey247 +highlight! link NERDTreeLinkDir MoonflyBlue +highlight! link NERDTreeLinkFile MoonflyBlue +highlight! link NERDTreeLinkTarget MoonflyTurquoise +highlight! link NERDTreeOpenable MoonflyEmerald +highlight! link NERDTreePart MoonflyGrey0 +highlight! link NERDTreePartFile MoonflyGrey0 +highlight! link NERDTreeUp MoonflyBlue + +" NERDTree Git plugin +highlight! link NERDTreeGitStatusDirDirty MoonflyWheat +highlight! link NERDTreeGitStatusModified MoonflyCrimson +highlight! link NERDTreeGitStatusRenamed MoonflySky +highlight! link NERDTreeGitStatusStaged MoonflySky +highlight! link NERDTreeGitStatusUntracked MoonflyRed + +" fern.vim plugin +highlight! link FernBranchSymbol MoonflyEmerald +highlight! link FernBranchText MoonflyBlue +highlight! link FernMarkedLine MoonflyYellow +highlight! link FernMarkedText MoonflyCrimson +highlight! link FernRootSymbol MoonflyPurple +highlight! link FernRootText MoonflyPurple + +" fern-git-status.vim plugin +highlight! link FernGitStatusBracket MoonflyGrey246 +highlight! link FernGitStatusIndex MoonflyEmerald +highlight! link FernGitStatusWorktree MoonflyCrimson + +" Misc stylings +highlight! link bufExplorerHelp MoonflyGrey247 +highlight! link bufExplorerSortBy MoonflyGrey247 +highlight! link CleverFDefaultLabel MoonflyCrimson +highlight! link CtrlPMatch MoonflyCoral +highlight! link Directory MoonflyBlue +highlight! link HighlightedyankRegion MoonflyGrey0 +highlight! link jsonKeyword MoonflySky +highlight! link jsonQuote MoonflyWhite +highlight! link netrwClassify MoonflyCranberry +highlight! link netrwDir MoonflySky +highlight! link netrwExe MoonflyWheat +highlight! link tagName MoonflyTurquoise +highlight! link Cheat40Header MoonflyBlue +highlight! link yamlBlockMappingKey MoonflySky +highlight! link yamlFlowMappingKey MoonflySky +if g:moonflyUnderlineMatchParen + exec 'highlight MatchWord cterm=underline gui=underline guisp=' . s:coral.hex +else + highlight! link MatchWord MoonflyCoral +endif +exec 'highlight snipLeadingSpaces ctermbg=bg ctermfg=fg guibg=bg guifg=fg' +exec 'highlight MatchWordCur ctermbg=bg guibg=bg' + +" vimdiff/nvim -d +exec 'highlight DiffAdd ctermbg=' . s:emerald.term . ' ctermfg=' . s:black.term . ' guibg=' . s:emerald.hex . ' guifg=' . s:black.hex +exec 'highlight DiffChange ctermbg=' . s:grey236.term . ' guibg=' . s:grey236.hex +exec 'highlight DiffDelete ctermbg=' . s:grey236.term . ' ctermfg=' . s:crimson.term . ' guibg=' . s:grey236.hex . ' guifg=' . s:crimson.hex ' gui=none' +exec 'highlight DiffText ctermbg=' . s:blue.term . ' ctermfg=' . s:black.term . ' guibg=' . s:blue.hex . ' guifg=' . s:black.hex . ' gui=none' + +" ALE plugin +if g:moonflyUndercurls + exec 'highlight ALEError ctermbg=NONE guibg=NONE gui=undercurl guisp=' . s:red.hex + exec 'highlight ALEWarning ctermbg=NONE guibg=NONE gui=undercurl guisp=' . s:yellow.hex + exec 'highlight ALEInfo ctermbg=NONE guibg=NONE gui=undercurl guisp=' . s:sky.hex +else + exec 'highlight ALEError ctermbg=NONE guibg=NONE' + exec 'highlight ALEWarning ctermbg=NONE guibg=NONE' + exec 'highlight ALEInfo ctermbg=NONE guibg=NONE' +endif +highlight! link ALEVirtualTextError MoonflyGrey241 +highlight! link ALEErrorSign MoonflyRedAlert +highlight! link ALEVirtualTextWarning MoonflyGrey241 +highlight! link ALEWarningSign MoonflyYellowAlert +highlight! link ALEVirtualTextInfo MoonflyGrey241 +highlight! link ALEInfoSign MoonflySkyAlert + +" GitGutter plugin +highlight! link GitGutterAdd MoonflyEmeraldAlert +highlight! link GitGutterChange MoonflyYellowAlert +highlight! link GitGutterChangeDelete MoonflyCoralAlert +highlight! link GitGutterDelete MoonflyRedAlert + +" Signify plugin +highlight! link SignifySignAdd MoonflyEmeraldAlert +highlight! link SignifySignChange MoonflyYellowAlert +highlight! link SignifySignDelete MoonflyRedAlert + +" FZF plugin +exec 'highlight fzf1 ctermfg=' . s:crimson.term . ' ctermbg=' . s:grey236.term . ' guifg=' . s:crimson.hex . ' guibg=' . s:grey236.hex +exec 'highlight fzf2 ctermfg=' . s:blue.term . ' ctermbg=' . s:grey236.term . ' guifg=' . s:blue.hex . ' guibg=' . s:grey236.hex +exec 'highlight fzf3 ctermfg=' . s:emerald.term . ' ctermbg=' . s:grey236.term . ' guifg=' . s:emerald.hex . ' guibg=' . s:grey236.hex +exec 'highlight fzfNormal ctermfg=' . s:grey249.term . ' guifg=' . s:grey249.hex +exec 'highlight fzfFgPlus ctermfg=' . s:grey254.term . ' guifg=' . s:grey254.hex +exec 'highlight fzfBorder ctermfg=' . s:grey236.term . ' guifg=' . s:grey236.hex +let g:fzf_colors = { + \ 'fg': ['fg', 'fzfNormal'], + \ 'bg': ['bg', 'Normal'], + \ 'hl': ['fg', 'Boolean'], + \ 'fg+': ['fg', 'fzfFgPlus'], + \ 'bg+': ['bg', 'Pmenu'], + \ 'hl+': ['fg', 'Boolean'], + \ 'info': ['fg', 'String'], + \ 'border': ['fg', 'fzfBorder'], + \ 'prompt': ['fg', 'fzf2'], + \ 'pointer': ['fg', 'Exception'], + \ 'marker': ['fg', 'StorageClass'], + \ 'spinner': ['fg', 'Type'], + \ 'header': ['fg', 'CursorLineNr'] + \} + +" Coc plugin +highlight! link CocUnusedHighlight MoonflyGrey249 + +" indentLine plugin +if !exists('g:indentLine_defaultGroup') && !exists('g:indentLine_color_gui') && !exists('g:indentLine_color_term') + let g:indentLine_color_term = s:grey235.term + let g:indentLine_color_gui = s:grey235.hex +endif + +" Neovim diagnostics +if has('nvim-0.6') + " Neovim 0.6 diagnostic + highlight! link DiagnosticError MoonflyRed + highlight! link DiagnosticWarn MoonflyYellow + highlight! link DiagnosticInfo MoonflySky + highlight! link DiagnosticHint MoonflyWhite + if g:moonflyUndercurls + exec 'highlight DiagnosticUnderlineError ctermbg=NONE guibg=NONE gui=undercurl guisp=' . s:red.hex + exec 'highlight DiagnosticUnderlineWarn ctermbg=NONE guibg=NONE gui=undercurl guisp=' . s:yellow.hex + exec 'highlight DiagnosticUnderlineInfo ctermbg=NONE guibg=NONE gui=undercurl guisp=' . s:sky.hex + exec 'highlight DiagnosticUnderlineHint ctermbg=NONE guibg=NONE gui=undercurl guisp=' . s:white.hex + else + exec 'highlight DiagnosticUnderlineError ctermbg=NONE guibg=NONE gui=underline guisp=' . s:red.hex + exec 'highlight DiagnosticUnderlineWarn ctermbg=NONE guibg=NONE gui=underline guisp=' . s:blue.hex + exec 'highlight DiagnosticUnderlineInfo ctermbg=NONE guibg=NONE gui=underline guisp=' . s:yellow.hex + exec 'highlight DiagnosticUnderlineHint ctermbg=NONE guibg=NONE gui=underline guisp=' . s:sky.hex + endif + highlight! link DiagnosticVirtualTextError MoonflyGrey241 + highlight! link DiagnosticVirtualTextWarn MoonflyGrey241 + highlight! link DiagnosticVirtualTextInfo MoonflyGrey241 + highlight! link DiagnosticVirtualTextHint MoonflyGrey241 + highlight! link DiagnosticSignError MoonflyRedAlert + highlight! link DiagnosticSignWarn MoonflyYellowAlert + highlight! link DiagnosticSignInfo MoonflySkyAlert + highlight! link DiagnosticSignHint MoonflyWhiteAlert + highlight! link DiagnosticFloatingError MoonflyRed + highlight! link DiagnosticFloatingWarn MoonflyYellow + highlight! link DiagnosticFloatingInfo MoonflySky + highlight! link DiagnosticFloatingHint MoonflyWhite + highlight! link LspSignatureActiveParameter MoonflyVisual +elseif has('nvim-0.5') + " Neovim 0.5 LSP diagnostics + if g:moonflyUndercurls + exec 'highlight LspDiagnosticsUnderlineError ctermbg=NONE guibg=NONE gui=undercurl guisp=' . s:red.hex + exec 'highlight LspDiagnosticsUnderlineWarning ctermbg=NONE guibg=NONE gui=undercurl guisp=' . s:yellow.hex + exec 'highlight LspDiagnosticsUnderlineInformation ctermbg=NONE guibg=NONE gui=undercurl guisp=' . s:sky.hex + exec 'highlight LspDiagnosticsUnderlineHint ctermbg=NONE guibg=NONE gui=undercurl guisp=' . s:white.hex + else + exec 'highlight LspDiagnosticsUnderlineError ctermbg=NONE guibg=NONE gui=underline guisp=' . s:red.hex + exec 'highlight LspDiagnosticsUnderlineWarning ctermbg=NONE guibg=NONE gui=underline guisp=' . s:blue.hex + exec 'highlight LspDiagnosticsUnderlineInformation ctermbg=NONE guibg=NONE gui=underline guisp=' . s:yellow.hex + exec 'highlight LspDiagnosticsUnderlineHint ctermbg=NONE guibg=NONE gui=underline guisp=' . s:sky.hex + endif + highlight! link LspDiagnosticsVirtualTextWarning MoonflyGrey241 + highlight! link LspDiagnosticsVirtualTextError MoonflyGrey241 + highlight! link LspDiagnosticsVirtualTextInformation MoonflyGrey241 + highlight! link LspDiagnosticsVirtualTextHint MoonflyGrey241 + highlight! link LspDiagnosticsSignError MoonflyRedAlert + highlight! link LspDiagnosticsSignWarning MoonflyYellowAlert + highlight! link LspDiagnosticsSignInformation MoonflySkyAlert + highlight! link LspDiagnosticsSignHint MoonflyWhiteAlert + highlight! link LspDiagnosticsFloatingError MoonflyRed + highlight! link LspDiagnosticsFloatingWarning MoonflyYellow + highlight! link LspDiagnosticsFloatingInformation MoonflySky + highlight! link LspDiagnosticsFloatingHint MoonflyWhite + highlight! link LspSignatureActiveParameter MoonflyVisual +endif + +" Neovim only plugins +if has('nvim') + " NvimTree plugin + highlight! link NvimTreeFolderIcon MoonflyBlue + highlight! link NvimTreeFolderName MoonflyBlue + highlight! link NvimTreeIndentMarker MoonflyGrey236 + highlight! link NvimTreeOpenedFolderName MoonflyBlue + highlight! link NvimTreeRootFolder MoonflyPurple + highlight! link NvimTreeSpecialFile MoonflyYellow + highlight! link NvimTreeWindowPicker DiffChange + exec 'highlight NvimTreeExecFile ctermfg=' . s:green.term . ' guifg=' . s:green.hex . ' gui=none' + exec 'highlight NvimTreeImageFile ctermfg=' . s:violet.term . ' guifg=' . s:violet.hex . ' gui=none' + exec 'highlight NvimTreeOpenedFile ctermfg=' . s:yellow.term . ' guifg=' . s:yellow.hex . ' gui=none' + exec 'highlight NvimTreeSymlink ctermfg=' . s:turquoise.term . ' guifg=' . s:turquoise.hex . ' gui=none' + + " Telescope plugin + highlight! link TelescopeBorder MoonflyGrey236 + highlight! link TelescopeMatching MoonflyCoral + highlight! link TelescopeMultiSelection MoonflyCrimson + highlight! link TelescopeNormal MoonflyGrey249 + highlight! link TelescopePreviewDate MoonflyGrey246 + highlight! link TelescopePreviewGroup MoonflyGrey246 + highlight! link TelescopePreviewLink MoonflyTurquoise + highlight! link TelescopePreviewMatch MoonflyVisual + highlight! link TelescopePreviewRead MoonflyOrange + highlight! link TelescopePreviewSize MoonflyEmerald + highlight! link TelescopePreviewUser MoonflyGrey246 + highlight! link TelescopePromptPrefix MoonflyBlue + highlight! link TelescopeResultsDiffAdd MoonflyGreen + highlight! link TelescopeResultsDiffChange MoonflyRed + highlight! link TelescopeResultsSpecialComment MoonflyGrey241 + highlight! link TelescopeSelectionCaret MoonflyCrimson + highlight! link TelescopeTitle MoonflyGrey241 + exec 'highlight TelescopeSelection ctermbg=' . s:grey0.term . ' ctermfg=' . s:grey254.term . ' guibg=' . s:grey0.hex . ' guifg=' . s:grey254.hex + + " gitsigns.nvim plugin + highlight! link GitSignsAdd MoonflyEmeraldAlert + highlight! link GitSignsChange MoonflyYellowAlert + highlight! link GitSignsChangeNr MoonflyYellowAlert + highlight! link GitSignsChangeLn MoonflyYellowAlert + highlight! link GitSignsChangeDelete MoonflyCoralAlert + highlight! link GitSignsDelete MoonflyRedAlert + + " Hop plugin + highlight! link HopNextKey MoonflyYellow + highlight! link HopNextKey1 MoonflyBlue + highlight! link HopNextKey2 MoonflyCrimson + highlight! link HopUnmatched MoonflyGrey247 + + " Barbar plugin + exec 'highlight BufferCurrent ctermbg=' . s:grey234.term . ' ctermfg=' . s:white.term . ' guibg=' . s:grey234.hex . ' guifg=' . s:white.hex + exec 'highlight BufferCurrentIndex ctermbg=' . s:grey234.term . ' ctermfg=' . s:white.term . ' guibg=' . s:grey234.hex . ' guifg=' . s:white.hex + exec 'highlight BufferCurrentMod ctermbg=' . s:grey234.term . ' ctermfg=' . s:wheat.term . ' guibg=' . s:grey234.hex . ' guifg=' . s:wheat.hex + exec 'highlight BufferCurrentSign ctermbg=' . s:grey234.term . ' ctermfg=' . s:blue.term . ' guibg=' . s:grey234.hex . ' guifg=' . s:blue.hex + exec 'highlight BufferVisible ctermbg=' . s:grey234.term . ' ctermfg=' . s:grey246.term . ' guibg=' . s:grey234.hex . ' guifg=' . s:grey246.hex + exec 'highlight BufferVisibleIndex ctermbg=' . s:grey234.term . ' ctermfg=' . s:grey246.term . ' guibg=' . s:grey234.hex . ' guifg=' . s:grey246.hex + exec 'highlight BufferVisibleMod ctermbg=' . s:grey234.term . ' ctermfg=' . s:wheat.term . ' guibg=' . s:grey234.hex . ' guifg=' . s:wheat.hex + exec 'highlight BufferVisibleSign ctermbg=' . s:grey234.term . ' ctermfg=' . s:grey246.term . ' guibg=' . s:grey234.hex . ' guifg=' . s:grey246.hex + exec 'highlight BufferInactive ctermbg=' . s:grey236.term . ' ctermfg=' . s:grey246.term . ' guibg=' . s:grey236.hex . ' guifg=' . s:grey246.hex + exec 'highlight BufferInactiveMod ctermbg=' . s:grey236.term . ' ctermfg=' . s:wheat.term . ' guibg=' . s:grey236.hex . ' guifg=' . s:wheat.hex + exec 'highlight BufferInactiveSign ctermbg=' . s:grey236.term . ' ctermfg=' . s:grey247.term . ' guibg=' . s:grey236.hex . ' guifg=' . s:grey247.hex + + " nvim-cmp plugin + highlight! link CmpItemAbbrMatch MoonflyGrey254 + highlight! link CmpItemAbbrMatchFuzzy MoonflyCoral + highlight! link CmpItemKind MoonflyBlue + highlight! link CmpItemMenu MoonflyGrey247 +endif + +set background=dark -- cgit v1.3