diff --git a/colors/one.vim b/colors/one.vim new file mode 100644 index 0000000..54747c3 --- /dev/null +++ b/colors/one.vim @@ -0,0 +1,883 @@ +" 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('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 + " }}} + +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 + +" vim: set fdl=0 fdm=marker: diff --git a/vimrc b/vimrc index 40c6777..b124c58 100644 --- a/vimrc +++ b/vimrc @@ -30,13 +30,18 @@ " For all default colorschemes, see `ls -l /usr/share/vim/vim*/colors/` " For extra colorschemes, see `ls -l ~/.vim/colors` set t_Co=256 " for tmux 256 colors -if filereadable ($HOME."/.vim/colors/codedark.vim") - colorscheme codedark " codedark colorscheme if available - let g:HLColorScheme = g:colors_name +if filereadable ($HOME."/.vim/colors/one.vim") + colorscheme one + set background=light else - colorscheme default " default colorscheme + if filereadable ($HOME."/.vim/colors/codedark.vim") + colorscheme codedark " codedark colorscheme if available + let g:HLColorScheme = g:colors_name + set background=dark + else + colorscheme default " default colorscheme + endif endif -set background=dark syntax on " activation de la coloration syntaxique set number " numérotation des lignes hi LineNr ctermbg=none ctermfg=2 @@ -652,6 +657,7 @@ call plug#begin('~/.vim/plugged') " Colorschemes Plug 'dracula/vim' Plug 'tomasiser/vim-code-dark' + Plug 'rakr/vim-one' " fzf integration Plug 'junegunn/fzf'