" Name: one vim colorscheme " Author: Ramzi Akremi " License: MIT " Version: 1.1.1-pre " Global setup =============================================================={{{ if exists("*X") delf X delf XAPI delf rgb delf color delf rgb_color delf rgb_level delf rgb_number delf grey_color delf grey_level delf grey_number endif hi clear syntax reset if exists('g:colors_name') unlet g:colors_name endif let g:colors_name = 'one' if !exists('g:one_allow_italics') let g:one_allow_italics = 0 endif let s:italic = '' if g:one_allow_italics == 1 let s:italic = 'italic' endif if has('gui_running') || has('termguicolors') || &t_Co == 88 || &t_Co == 256 " functions " returns an approximate grey index for the given grey level " Utility functions -------------------------------------------------------{{{ fun grey_number(x) if &t_Co == 88 if a:x < 23 return 0 elseif a:x < 69 return 1 elseif a:x < 103 return 2 elseif a:x < 127 return 3 elseif a:x < 150 return 4 elseif a:x < 173 return 5 elseif a:x < 196 return 6 elseif a:x < 219 return 7 elseif a:x < 243 return 8 else return 9 endif else if a:x < 14 return 0 else let l:n = (a:x - 8) / 10 let l:m = (a:x - 8) % 10 if l:m < 5 return l:n else return l:n + 1 endif endif endif endfun " returns the actual grey level represented by the grey index fun grey_level(n) if &t_Co == 88 if a:n == 0 return 0 elseif a:n == 1 return 46 elseif a:n == 2 return 92 elseif a:n == 3 return 115 elseif a:n == 4 return 139 elseif a:n == 5 return 162 elseif a:n == 6 return 185 elseif a:n == 7 return 208 elseif a:n == 8 return 231 else return 255 endif else if a:n == 0 return 0 else return 8 + (a:n * 10) endif endif endfun " returns the palette index for the given grey index fun grey_color(n) if &t_Co == 88 if a:n == 0 return 16 elseif a:n == 9 return 79 else return 79 + a:n endif else if a:n == 0 return 16 elseif a:n == 25 return 231 else return 231 + a:n endif endif endfun " returns an approximate color index for the given color level fun rgb_number(x) if &t_Co == 88 if a:x < 69 return 0 elseif a:x < 172 return 1 elseif a:x < 230 return 2 else return 3 endif else if a:x < 75 return 0 else let l:n = (a:x - 55) / 40 let l:m = (a:x - 55) % 40 if l:m < 20 return l:n else return l:n + 1 endif endif endif endfun " returns the actual color level for the given color index fun rgb_level(n) if &t_Co == 88 if a:n == 0 return 0 elseif a:n == 1 return 139 elseif a:n == 2 return 205 else return 255 endif else if a:n == 0 return 0 else return 55 + (a:n * 40) endif endif endfun " returns the palette index for the given R/G/B color indices fun rgb_color(x, y, z) if &t_Co == 88 return 16 + (a:x * 16) + (a:y * 4) + a:z else return 16 + (a:x * 36) + (a:y * 6) + a:z endif endfun " returns the palette index to approximate the given R/G/B color levels fun color(r, g, b) " get the closest grey let l:gx = grey_number(a:r) let l:gy = grey_number(a:g) let l:gz = grey_number(a:b) " get the closest color let l:x = rgb_number(a:r) let l:y = rgb_number(a:g) let l:z = rgb_number(a:b) if l:gx == l:gy && l:gy == l:gz " there are two possibilities let l:dgr = grey_level(l:gx) - a:r let l:dgg = grey_level(l:gy) - a:g let l:dgb = grey_level(l:gz) - a:b let l:dgrey = (l:dgr * l:dgr) + (l:dgg * l:dgg) + (l:dgb * l:dgb) let l:dr = rgb_level(l:gx) - a:r let l:dg = rgb_level(l:gy) - a:g let l:db = rgb_level(l:gz) - a:b let l:drgb = (l:dr * l:dr) + (l:dg * l:dg) + (l:db * l:db) if l:dgrey < l:drgb " use the grey return grey_color(l:gx) else " use the color return rgb_color(l:x, l:y, l:z) endif else " only one possibility return rgb_color(l:x, l:y, l:z) endif endfun " returns the palette index to approximate the 'rrggbb' hex string fun rgb(rgb) let l:r = ('0x' . strpart(a:rgb, 0, 2)) + 0 let l:g = ('0x' . strpart(a:rgb, 2, 2)) + 0 let l:b = ('0x' . strpart(a:rgb, 4, 2)) + 0 return color(l:r, l:g, l:b) endfun " sets the highlighting for the given group fun XAPI(group, fg, bg, attr) let l:attr = a:attr if g:one_allow_italics == 0 && l:attr ==? 'italic' let l:attr= 'none' endif let l:bg = "" let l:fg = "" let l:decoration = "" if a:bg != '' let l:bg = " guibg=#" . a:bg . " ctermbg=" . rgb(a:bg) endif if a:fg != '' let l:fg = " guifg=#" . a:fg . " ctermfg=" . rgb(a:fg) endif if a:attr != '' let l:decoration = " gui=" . l:attr . " cterm=" . l:attr endif let l:exec = l:fg . l:bg . l:decoration if l:exec != '' exec "hi " . a:group . l:exec endif endfun " Highlight function " the original one is borrowed from mhartington/oceanic-next function! X(group, fg, bg, attr, ...) let l:attrsp = get(a:, 1, "") " fg, bg, attr, attrsp if !empty(a:fg) exec "hi " . a:group . " guifg=" . a:fg[0] exec "hi " . a:group . " ctermfg=" . a:fg[1] endif if !empty(a:bg) exec "hi " . a:group . " guibg=" . a:bg[0] exec "hi " . a:group . " ctermbg=" . a:bg[1] endif if a:attr != "" exec "hi " . a:group . " gui=" . a:attr exec "hi " . a:group . " cterm=" . a:attr endif if !empty(l:attrsp) exec "hi " . a:group . " guisp=" . l:attrsp[0] endif endfunction " }}} " Color definition --------------------------------------------------------{{{ let s:dark = 0 if &background ==# 'dark' let s:dark = 1 let s:mono_1 = ['#abb2bf', '145'] let s:mono_2 = ['#828997', '102'] let s:mono_3 = ['#5c6370', '59'] let s:mono_4 = ['#4b5263', '59'] let s:hue_1 = ['#56b6c2', '73'] " cyan let s:hue_2 = ['#61afef', '75'] " blue let s:hue_3 = ['#c678dd', '176'] " purple let s:hue_4 = ['#98c379', '114'] " green let s:hue_5 = ['#e06c75', '168'] " red 1 let s:hue_5_2 = ['#be5046', '130'] " red 2 let s:hue_6 = ['#d19a66', '173'] " orange 1 let s:hue_6_2 = ['#e5c07b', '180'] " orange 2 let s:syntax_bg = ['#282c34', '16'] let s:syntax_gutter = ['#636d83', '60'] let s:syntax_cursor = ['#2c323c', '16'] let s:syntax_accent = ['#528bff', '69'] let s:vertsplit = ['#181a1f', '233'] let s:special_grey = ['#3b4048', '16'] let s:visual_grey = ['#3e4452', '17'] let s:pmenu = ['#333841', '16'] else let s:mono_1 = ['#494b53', '23'] let s:mono_2 = ['#696c77', '60'] let s:mono_3 = ['#a0a1a7', '145'] let s:mono_4 = ['#c2c2c3', '250'] let s:hue_1 = ['#0184bc', '31'] " cyan let s:hue_2 = ['#4078f2', '33'] " blue let s:hue_3 = ['#a626a4', '127'] " purple let s:hue_4 = ['#50a14f', '71'] " green let s:hue_5 = ['#e45649', '166'] " red 1 let s:hue_5_2 = ['#ca1243', '160'] " red 2 let s:hue_6 = ['#986801', '94'] " orange 1 let s:hue_6_2 = ['#c18401', '136'] " orange 2 let s:syntax_bg = ['#fafafa', '255'] let s:syntax_gutter = ['#9e9e9e', '247'] let s:syntax_cursor = ['#f0f0f0', '254'] let s:syntax_accent = ['#526fff', '63'] let s:syntax_accent_2 = ['#0083be', '31'] let s:vertsplit = ['#e7e9e1', '188'] let s:special_grey = ['#d3d3d3', '251'] let s:visual_grey = ['#d0d0d0', '251'] let s:pmenu = ['#dfdfdf', '253'] endif let s:syntax_fg = s:mono_1 let s:syntax_fold_bg = s:mono_3 " }}} " Vim editor color --------------------------------------------------------{{{ call X('Normal', s:syntax_fg, s:syntax_bg, '') call X('NormalFloat', '', s:pmenu, '') call X('bold', '', '', 'bold') call X('ColorColumn', '', s:syntax_cursor, '') call X('Conceal', s:mono_4, s:syntax_bg, '') call X('Cursor', '', s:syntax_accent, '') call X('CursorIM', '', '', '') call X('CursorColumn', '', s:syntax_cursor, '') call X('CursorLine', '', s:syntax_cursor, 'none') call X('Directory', s:hue_2, '', '') call X('ErrorMsg', s:hue_5, s:syntax_bg, 'none') call X('VertSplit', s:syntax_cursor, s:syntax_cursor, 'none') call X('Folded', s:syntax_fg, s:syntax_bg, 'none') call X('FoldColumn', s:mono_3, s:syntax_cursor, '') call X('IncSearch', s:hue_6, '', '') call X('LineNr', s:mono_4, '', '') call X('CursorLineNr', s:syntax_fg, s:syntax_cursor, 'none') call X('MatchParen', s:hue_5, s:syntax_cursor, 'underline,bold') call X('Italic', '', '', s:italic) call X('ModeMsg', s:syntax_fg, '', '') call X('MoreMsg', s:syntax_fg, '', '') call X('NonText', s:mono_3, '', 'none') call X('PMenu', '', s:pmenu, '') call X('PMenuSel', '', s:mono_4, '') call X('PMenuSbar', '', s:syntax_bg, '') call X('PMenuThumb', '', s:mono_1, '') call X('Question', s:hue_2, '', '') call X('Search', s:syntax_bg, s:hue_6_2, '') call X('SpecialKey', s:special_grey, '', 'none') call X('Whitespace', s:special_grey, '', 'none') call X('StatusLine', s:syntax_fg, s:syntax_cursor, 'none') call X('StatusLineNC', s:mono_3, '', '') call X('TabLine', s:mono_2, s:visual_grey, 'none') call X('TabLineFill', s:mono_3, s:visual_grey, 'none') call X('TabLineSel', s:syntax_bg, s:hue_2, '') call X('Title', s:syntax_fg, '', 'bold') call X('Visual', '', s:visual_grey, '') call X('VisualNOS', '', s:visual_grey, '') call X('WarningMsg', s:hue_5, '', '') call X('TooLong', s:hue_5, '', '') call X('WildMenu', s:syntax_fg, s:mono_3, '') call X('SignColumn', '', s:syntax_bg, '') call X('Special', s:hue_2, '', '') " }}} " Vim Help highlighting ---------------------------------------------------{{{ call X('helpCommand', s:hue_6_2, '', '') call X('helpExample', s:hue_6_2, '', '') call X('helpHeader', s:mono_1, '', 'bold') call X('helpSectionDelim', s:mono_3, '', '') " }}} " Standard syntax highlighting --------------------------------------------{{{ call X('Comment', s:mono_3, '', s:italic) call X('Constant', s:hue_4, '', '') call X('String', s:hue_4, '', '') call X('Character', s:hue_4, '', '') call X('Number', s:hue_6, '', '') call X('Boolean', s:hue_6, '', '') call X('Float', s:hue_6, '', '') call X('Identifier', s:hue_5, '', 'none') call X('Function', s:hue_2, '', '') call X('Statement', s:hue_3, '', 'none') call X('Conditional', s:hue_3, '', '') call X('Repeat', s:hue_3, '', '') call X('Label', s:hue_3, '', '') call X('Operator', s:syntax_accent, '', 'none') call X('Keyword', s:hue_5, '', '') call X('Exception', s:hue_3, '', '') call X('PreProc', s:hue_6_2, '', '') call X('Include', s:hue_2, '', '') call X('Define', s:hue_3, '', 'none') call X('Macro', s:hue_3, '', '') call X('PreCondit', s:hue_6_2, '', '') call X('Type', s:hue_6_2, '', 'none') call X('StorageClass', s:hue_6_2, '', '') call X('Structure', s:hue_6_2, '', '') call X('Typedef', s:hue_6_2, '', '') call X('Special', s:hue_2, '', '') call X('SpecialChar', '', '', '') call X('Tag', '', '', '') call X('Delimiter', '', '', '') call X('SpecialComment', '', '', '') call X('Debug', '', '', '') call X('Underlined', '', '', 'underline') call X('Ignore', '', '', '') call X('Error', s:hue_5, s:syntax_bg, 'bold') call X('Todo', s:hue_3, s:syntax_bg, '') " }}} " Diff highlighting -------------------------------------------------------{{{ call X('DiffAdd', s:hue_4, s:visual_grey, '') call X('DiffChange', s:hue_6, s:visual_grey, '') call X('DiffDelete', s:hue_5, s:visual_grey, '') call X('DiffText', s:hue_2, s:visual_grey, '') call X('DiffAdded', s:hue_4, s:visual_grey, '') call X('DiffFile', s:hue_5, s:visual_grey, '') call X('DiffNewFile', s:hue_4, s:visual_grey, '') call X('DiffLine', s:hue_2, s:visual_grey, '') call X('DiffRemoved', s:hue_5, s:visual_grey, '') " }}} " Asciidoc highlighting ---------------------------------------------------{{{ call X('asciidocListingBlock', s:mono_2, '', '') " }}} " C/C++ highlighting ------------------------------------------------------{{{ call X('cInclude', s:hue_3, '', '') call X('cPreCondit', s:hue_3, '', '') call X('cPreConditMatch', s:hue_3, '', '') call X('cType', s:hue_3, '', '') call X('cStorageClass', s:hue_3, '', '') call X('cStructure', s:hue_3, '', '') call X('cOperator', s:hue_3, '', '') call X('cStatement', s:hue_3, '', '') call X('cTODO', s:hue_3, '', '') call X('cConstant', s:hue_6, '', '') call X('cSpecial', s:hue_1, '', '') call X('cSpecialCharacter', s:hue_1, '', '') call X('cString', s:hue_4, '', '') call X('cppType', s:hue_3, '', '') call X('cppStorageClass', s:hue_3, '', '') call X('cppStructure', s:hue_3, '', '') call X('cppModifier', s:hue_3, '', '') call X('cppOperator', s:hue_3, '', '') call X('cppAccess', s:hue_3, '', '') call X('cppStatement', s:hue_3, '', '') call X('cppConstant', s:hue_5, '', '') call X('cCppString', s:hue_4, '', '') " }}} " Cucumber highlighting ---------------------------------------------------{{{ call X('cucumberGiven', s:hue_2, '', '') call X('cucumberWhen', s:hue_2, '', '') call X('cucumberWhenAnd', s:hue_2, '', '') call X('cucumberThen', s:hue_2, '', '') call X('cucumberThenAnd', s:hue_2, '', '') call X('cucumberUnparsed', s:hue_6, '', '') call X('cucumberFeature', s:hue_5, '', 'bold') call X('cucumberBackground', s:hue_3, '', 'bold') call X('cucumberScenario', s:hue_3, '', 'bold') call X('cucumberScenarioOutline', s:hue_3, '', 'bold') call X('cucumberTags', s:mono_3, '', 'bold') call X('cucumberDelimiter', s:mono_3, '', 'bold') " }}} " CSS/Sass highlighting ---------------------------------------------------{{{ call X('cssAttrComma', s:hue_3, '', '') call X('cssAttributeSelector', s:hue_4, '', '') call X('cssBraces', s:mono_2, '', '') call X('cssClassName', s:hue_6, '', '') call X('cssClassNameDot', s:hue_6, '', '') call X('cssDefinition', s:hue_3, '', '') call X('cssFontAttr', s:hue_6, '', '') call X('cssFontDescriptor', s:hue_3, '', '') call X('cssFunctionName', s:hue_2, '', '') call X('cssIdentifier', s:hue_2, '', '') call X('cssImportant', s:hue_3, '', '') call X('cssInclude', s:mono_1, '', '') call X('cssIncludeKeyword', s:hue_3, '', '') call X('cssMediaType', s:hue_6, '', '') call X('cssProp', s:hue_1, '', '') call X('cssPseudoClassId', s:hue_6, '', '') call X('cssSelectorOp', s:hue_3, '', '') call X('cssSelectorOp2', s:hue_3, '', '') call X('cssStringQ', s:hue_4, '', '') call X('cssStringQQ', s:hue_4, '', '') call X('cssTagName', s:hue_5, '', '') call X('cssAttr', s:hue_6, '', '') call X('sassAmpersand', s:hue_5, '', '') call X('sassClass', s:hue_6_2, '', '') call X('sassControl', s:hue_3, '', '') call X('sassExtend', s:hue_3, '', '') call X('sassFor', s:mono_1, '', '') call X('sassProperty', s:hue_1, '', '') call X('sassFunction', s:hue_1, '', '') call X('sassId', s:hue_2, '', '') call X('sassInclude', s:hue_3, '', '') call X('sassMedia', s:hue_3, '', '') call X('sassMediaOperators', s:mono_1, '', '') call X('sassMixin', s:hue_3, '', '') call X('sassMixinName', s:hue_2, '', '') call X('sassMixing', s:hue_3, '', '') call X('scssSelectorName', s:hue_6_2, '', '') " }}} " Elixir highlighting------------------------------------------------------{{{ hi link elixirModuleDefine Define call X('elixirAlias', s:hue_6_2, '', '') call X('elixirAtom', s:hue_1, '', '') call X('elixirBlockDefinition', s:hue_3, '', '') call X('elixirModuleDeclaration', s:hue_6, '', '') call X('elixirInclude', s:hue_5, '', '') call X('elixirOperator', s:hue_6, '', '') " }}} " Git and git related plugins highlighting --------------------------------{{{ call X('gitcommitComment', s:mono_3, '', '') call X('gitcommitUnmerged', s:hue_4, '', '') call X('gitcommitOnBranch', '', '', '') call X('gitcommitBranch', s:hue_3, '', '') call X('gitcommitDiscardedType', s:hue_5, '', '') call X('gitcommitSelectedType', s:hue_4, '', '') call X('gitcommitHeader', '', '', '') call X('gitcommitUntrackedFile', s:hue_1, '', '') call X('gitcommitDiscardedFile', s:hue_5, '', '') call X('gitcommitSelectedFile', s:hue_4, '', '') call X('gitcommitUnmergedFile', s:hue_6_2, '', '') call X('gitcommitFile', '', '', '') hi link gitcommitNoBranch gitcommitBranch hi link gitcommitUntracked gitcommitComment hi link gitcommitDiscarded gitcommitComment hi link gitcommitSelected gitcommitComment hi link gitcommitDiscardedArrow gitcommitDiscardedFile hi link gitcommitSelectedArrow gitcommitSelectedFile hi link gitcommitUnmergedArrow gitcommitUnmergedFile call X('SignifySignAdd', s:hue_4, '', '') call X('SignifySignChange', s:hue_6_2, '', '') call X('SignifySignDelete', s:hue_5, '', '') hi link GitGutterAdd SignifySignAdd hi link GitGutterChange SignifySignChange hi link GitGutterDelete SignifySignDelete call X('diffAdded', s:hue_4, '', '') call X('diffRemoved', s:hue_5, '', '') " }}} " Go highlighting ---------------------------------------------------------{{{ call X('goDeclaration', s:hue_3, '', '') call X('goField', s:hue_5, '', '') call X('goMethod', s:hue_1, '', '') call X('goType', s:hue_3, '', '') call X('goUnsignedInts', s:hue_1, '', '') " }}} " Haskell highlighting ----------------------------------------------------{{{ call X('haskellDeclKeyword', s:hue_2, '', '') call X('haskellType', s:hue_4, '', '') call X('haskellWhere', s:hue_5, '', '') call X('haskellImportKeywords', s:hue_2, '', '') call X('haskellOperators', s:hue_5, '', '') call X('haskellDelimiter', s:hue_2, '', '') call X('haskellIdentifier', s:hue_6, '', '') call X('haskellKeyword', s:hue_5, '', '') call X('haskellNumber', s:hue_1, '', '') call X('haskellString', s:hue_1, '', '') "}}} " HTML highlighting -------------------------------------------------------{{{ call X('htmlArg', s:hue_6, '', '') call X('htmlTagName', s:hue_5, '', '') call X('htmlTagN', s:hue_5, '', '') call X('htmlSpecialTagName', s:hue_5, '', '') call X('htmlTag', s:mono_2, '', '') call X('htmlEndTag', s:mono_2, '', '') call X('MatchTag', s:hue_5, s:syntax_cursor, 'underline,bold') " }}} " JavaScript highlighting -------------------------------------------------{{{ call X('coffeeString', s:hue_4, '', '') call X('javaScriptBraces', s:mono_2, '', '') call X('javaScriptFunction', s:hue_3, '', '') call X('javaScriptIdentifier', s:hue_3, '', '') call X('javaScriptNull', s:hue_6, '', '') call X('javaScriptNumber', s:hue_6, '', '') call X('javaScriptRequire', s:hue_1, '', '') call X('javaScriptReserved', s:hue_3, '', '') " https://github.com/pangloss/vim-javascript call X('jsArrowFunction', s:hue_3, '', '') call X('jsBraces', s:mono_2, '', '') call X('jsClassBraces', s:mono_2, '', '') call X('jsClassKeywords', s:hue_3, '', '') call X('jsDocParam', s:hue_2, '', '') call X('jsDocTags', s:hue_3, '', '') call X('jsFuncBraces', s:mono_2, '', '') call X('jsFuncCall', s:hue_2, '', '') call X('jsFuncParens', s:mono_2, '', '') call X('jsFunction', s:hue_3, '', '') call X('jsGlobalObjects', s:hue_6_2, '', '') call X('jsModuleWords', s:hue_3, '', '') call X('jsModules', s:hue_3, '', '') call X('jsNoise', s:mono_2, '', '') call X('jsNull', s:hue_6, '', '') call X('jsOperator', s:hue_3, '', '') call X('jsParens', s:mono_2, '', '') call X('jsStorageClass', s:hue_3, '', '') call X('jsTemplateBraces', s:hue_5_2, '', '') call X('jsTemplateVar', s:hue_4, '', '') call X('jsThis', s:hue_5, '', '') call X('jsUndefined', s:hue_6, '', '') call X('jsObjectValue', s:hue_2, '', '') call X('jsObjectKey', s:hue_1, '', '') call X('jsReturn', s:hue_3, '', '') " https://github.com/othree/yajs.vim call X('javascriptArrowFunc', s:hue_3, '', '') call X('javascriptClassExtends', s:hue_3, '', '') call X('javascriptClassKeyword', s:hue_3, '', '') call X('javascriptDocNotation', s:hue_3, '', '') call X('javascriptDocParamName', s:hue_2, '', '') call X('javascriptDocTags', s:hue_3, '', '') call X('javascriptEndColons', s:mono_3, '', '') call X('javascriptExport', s:hue_3, '', '') call X('javascriptFuncArg', s:mono_1, '', '') call X('javascriptFuncKeyword', s:hue_3, '', '') call X('javascriptIdentifier', s:hue_5, '', '') call X('javascriptImport', s:hue_3, '', '') call X('javascriptObjectLabel', s:mono_1, '', '') call X('javascriptOpSymbol', s:hue_1, '', '') call X('javascriptOpSymbols', s:hue_1, '', '') call X('javascriptPropertyName', s:hue_4, '', '') call X('javascriptTemplateSB', s:hue_5_2, '', '') call X('javascriptVariable', s:hue_3, '', '') " }}} " JSON highlighting -------------------------------------------------------{{{ call X('jsonCommentError', s:mono_1, '', '' ) call X('jsonKeyword', s:hue_5, '', '' ) call X('jsonQuote', s:mono_3, '', '' ) call X('jsonTrailingCommaError', s:hue_5, '', 'reverse' ) call X('jsonMissingCommaError', s:hue_5, '', 'reverse' ) call X('jsonNoQuotesError', s:hue_5, '', 'reverse' ) call X('jsonNumError', s:hue_5, '', 'reverse' ) call X('jsonString', s:hue_4, '', '' ) call X('jsonBoolean', s:hue_3, '', '' ) call X('jsonNumber', s:hue_6, '', '' ) call X('jsonStringSQError', s:hue_5, '', 'reverse' ) call X('jsonSemicolonError', s:hue_5, '', 'reverse' ) " }}} " Markdown highlighting ---------------------------------------------------{{{ call X('markdownUrl', s:mono_3, '', '') call X('markdownBold', s:hue_6, '', 'bold') call X('markdownItalic', s:hue_6, '', 'bold') call X('markdownCode', s:hue_4, '', '') call X('markdownCodeBlock', s:hue_5, '', '') call X('markdownCodeDelimiter', s:hue_4, '', '') call X('markdownHeadingDelimiter', s:hue_5_2, '', '') call X('markdownH1', s:hue_5, '', '') call X('markdownH2', s:hue_5, '', '') call X('markdownH3', s:hue_5, '', '') call X('markdownH3', s:hue_5, '', '') call X('markdownH4', s:hue_5, '', '') call X('markdownH5', s:hue_5, '', '') call X('markdownH6', s:hue_5, '', '') call X('markdownListMarker', s:hue_5, '', '') " }}} " Perl highlighting -------------------------------------------------------{{{ call X('perlFunction', s:hue_3, '', '') call X('perlMethod', s:syntax_fg, '', '') call X('perlPackageConst', s:hue_3, '', '') call X('perlPOD', s:mono_3, '', '') call X('perlSubName', s:syntax_fg, '', '') call X('perlSharpBang', s:mono_3, '', '') call X('perlSpecialString', s:hue_4, '', '') call X('perlVarPlain', s:hue_2, '', '') call X('podCommand', s:mono_3, '', '') " PHP highlighting --------------------------------------------------------{{{ call X('phpClass', s:hue_6_2, '', '') call X('phpFunction', s:hue_2, '', '') call X('phpFunctions', s:hue_2, '', '') call X('phpInclude', s:hue_3, '', '') call X('phpKeyword', s:hue_3, '', '') call X('phpParent', s:mono_3, '', '') call X('phpType', s:hue_3, '', '') call X('phpSuperGlobals', s:hue_5, '', '') " }}} " Pug (Formerly Jade) highlighting ----------------------------------------{{{ call X('pugAttributesDelimiter', s:hue_6, '', '') call X('pugClass', s:hue_6, '', '') call X('pugDocType', s:mono_3, '', s:italic) call X('pugTag', s:hue_5, '', '') " }}} " PureScript highlighting -------------------------------------------------{{{ call X('purescriptKeyword', s:hue_3, '', '') call X('purescriptModuleName', s:syntax_fg, '', '') call X('purescriptIdentifier', s:syntax_fg, '', '') call X('purescriptType', s:hue_6_2, '', '') call X('purescriptTypeVar', s:hue_5, '', '') call X('purescriptConstructor', s:hue_5, '', '') call X('purescriptOperator', s:syntax_fg, '', '') " }}} " Python highlighting -----------------------------------------------------{{{ call X('pythonImport', s:hue_3, '', '') call X('pythonBuiltin', s:hue_1, '', '') call X('pythonStatement', s:hue_3, '', '') call X('pythonParam', s:hue_6, '', '') call X('pythonEscape', s:hue_5, '', '') call X('pythonSelf', s:mono_2, '', s:italic) call X('pythonClass', s:hue_2, '', '') call X('pythonOperator', s:hue_3, '', '') call X('pythonEscape', s:hue_5, '', '') call X('pythonFunction', s:hue_2, '', '') call X('pythonKeyword', s:hue_2, '', '') call X('pythonModule', s:hue_3, '', '') call X('pythonStringDelimiter', s:hue_4, '', '') call X('pythonSymbol', s:hue_1, '', '') " }}} " Ruby highlighting -------------------------------------------------------{{{ call X('rubyBlock', s:hue_3, '', '') call X('rubyBlockParameter', s:hue_5, '', '') call X('rubyBlockParameterList', s:hue_5, '', '') call X('rubyCapitalizedMethod', s:hue_3, '', '') call X('rubyClass', s:hue_3, '', '') call X('rubyConstant', s:hue_6_2, '', '') call X('rubyControl', s:hue_3, '', '') call X('rubyDefine', s:hue_3, '', '') call X('rubyEscape', s:hue_5, '', '') call X('rubyFunction', s:hue_2, '', '') call X('rubyGlobalVariable', s:hue_5, '', '') call X('rubyInclude', s:hue_2, '', '') call X('rubyIncluderubyGlobalVariable', s:hue_5, '', '') call X('rubyInstanceVariable', s:hue_5, '', '') call X('rubyInterpolation', s:hue_1, '', '') call X('rubyInterpolationDelimiter', s:hue_5, '', '') call X('rubyKeyword', s:hue_2, '', '') call X('rubyModule', s:hue_3, '', '') call X('rubyPseudoVariable', s:hue_5, '', '') call X('rubyRegexp', s:hue_1, '', '') call X('rubyRegexpDelimiter', s:hue_1, '', '') call X('rubyStringDelimiter', s:hue_4, '', '') call X('rubySymbol', s:hue_1, '', '') " }}} " Spelling highlighting ---------------------------------------------------{{{ call X('SpellBad', '', s:syntax_bg, 'undercurl') call X('SpellLocal', '', s:syntax_bg, 'undercurl') call X('SpellCap', '', s:syntax_bg, 'undercurl') call X('SpellRare', '', s:syntax_bg, 'undercurl') " }}} " Vim highlighting --------------------------------------------------------{{{ call X('vimCommand', s:hue_3, '', '') call X('vimCommentTitle', s:mono_3, '', 'bold') call X('vimFunction', s:hue_1, '', '') call X('vimFuncName', s:hue_3, '', '') call X('vimHighlight', s:hue_2, '', '') call X('vimLineComment', s:mono_3, '', s:italic) call X('vimParenSep', s:mono_2, '', '') call X('vimSep', s:mono_2, '', '') call X('vimUserFunc', s:hue_1, '', '') call X('vimVar', s:hue_5, '', '') " }}} " XML highlighting --------------------------------------------------------{{{ call X('xmlAttrib', s:hue_6_2, '', '') call X('xmlEndTag', s:hue_5, '', '') call X('xmlTag', s:hue_5, '', '') call X('xmlTagName', s:hue_5, '', '') " }}} " ZSH highlighting --------------------------------------------------------{{{ call X('zshCommands', s:syntax_fg, '', '') call X('zshDeref', s:hue_5, '', '') call X('zshShortDeref', s:hue_5, '', '') call X('zshFunction', s:hue_1, '', '') call X('zshKeyword', s:hue_3, '', '') call X('zshSubst', s:hue_5, '', '') call X('zshSubstDelim', s:mono_3, '', '') call X('zshTypes', s:hue_3, '', '') call X('zshVariableDef', s:hue_6, '', '') " }}} " Rust highlighting -------------------------------------------------------{{{ call X('rustExternCrate', s:hue_5, '', 'bold') call X('rustIdentifier', s:hue_2, '', '') call X('rustDeriveTrait', s:hue_4, '', '') call X('SpecialComment', s:mono_3, '', '') call X('rustCommentLine', s:mono_3, '', '') call X('rustCommentLineDoc', s:mono_3, '', '') call X('rustCommentLineDocError', s:mono_3, '', '') call X('rustCommentBlock', s:mono_3, '', '') call X('rustCommentBlockDoc', s:mono_3, '', '') call X('rustCommentBlockDocError', s:mono_3, '', '') " }}} " man highlighting --------------------------------------------------------{{{ hi link manTitle String call X('manFooter', s:mono_3, '', '') " }}} " ALE (Asynchronous Lint Engine) highlighting -----------------------------{{{ call X('ALEWarningSign', s:hue_6_2, '', '') call X('ALEErrorSign', s:hue_5, '', '') " Neovim NERDTree Background fix ------------------------------------------{{{ call X('NERDTreeFile', s:syntax_fg, '', '') " }}} " Delete functions =========================================================={{{ " delf X " delf XAPI " delf rgb " delf color " delf rgb_color " delf rgb_level " delf rgb_number " delf grey_color " delf grey_level " delf grey_number " }}} " treesitter hi link elixirModuleDefine Define hi link TSAnnotation PreProc hi link TSAttribute PreProc hi link TSBoolean Boolean hi link TSCharacter Character hi link TSComment Comment hi link TSConditional Conditional hi link TSConstant Constant hi link TSConstBuiltin Special hi link TSConstMacro Define hi link TSConstructor Special hi link TSEmphasis Italic hi link TSError Error hi link TSException Exception hi link TSField Normal hi link TSFloat Float hi link TSFunction Function hi link TSFuncBuiltin Special hi link TSFuncMacro Macro hi link TSInclude Include hi link TSKeyword Keyword hi link TSKeywordFunction Keyword hi link TSKeywordOperator Operator hi link TSLabel Label hi link TSLiteral String hi link TSMethod Function hi link TSNamespace Include hi link TSNumber Number hi link TSOperator Operator hi link TSParameter Identifier hi link TSParameterReference Identifier hi link TSProperty Identifier hi link TSPunctBracket Delimiter hi link TSPunctDelimiter Delimiter hi link TSPunctSpecial Delimiter hi link TSRepeat Repeat hi link TSString String hi link TSStringEscape SpecialChar hi link TSStringRegex String hi link TSStrong bold hi link TSTag Label hi link TSTagDelimiter Label hi link TSText Normal hi link TSTitle Title hi link TSType Type hi link TSTypeBuiltin Type hi link TSUnderline Underlined hi link TSURI Underlined hi link TSVariableBuiltin Special endif "}}} " Public API --------------------------------------------------------------{{{ function! one#highlight(group, fg, bg, attr) call XAPI(a:group, a:fg, a:bg, a:attr) endfunction "}}} if exists('s:dark') && s:dark set background=dark endif