optimize all the things

This commit is contained in:
Pavel Pertsev
2015-09-05 03:53:27 +03:00
parent bff2e86054
commit 0d03883418

View File

@@ -162,6 +162,10 @@ endif
" }}}
" Setup Colors: {{{
let s:vim_bg = ['bg', 'bg']
let s:vim_fg = ['fg', 'fg']
let s:none = ['NONE', 'NONE']
" determine relative colors
if s:is_dark
let s:bg0 = s:gb.dark0
@@ -339,63 +343,43 @@ function! s:HL(group, fg, ...)
" Arguments: group, guifg, guibg, gui, guisp
" foreground
if type(a:fg) == 3
let fg = a:fg
elseif type(a:fg) == 1 && strlen(a:fg)
let fg = [a:fg, a:fg]
else
let fg = ['NONE', 'NONE']
endif
let fg = a:fg
" background
if a:0 >= 1 && type(a:1) == 3
if a:0 >= 1
let bg = a:1
elseif a:0 >= 1 && type(a:1) == 1 && strlen(a:1)
let bg = [a:1, a:1]
else
let bg = ['NONE', 'NONE']
let bg = s:none
endif
" emphasis
if a:0 >= 2 && strlen(a:2)
let emstr = a:2[:-2]
let emstr = a:2
else
let emstr = 'NONE'
let emstr = 'NONE,'
endif
" special fallback
if a:0 >= 3 && type(a:3) == 3
if a:0 >= 3
if g:gruvbox_guisp_fallback != 'NONE'
let fg = a:3
endif
" bg fallback mode should invert higlighting
if g:gruvbox_guisp_fallback == 'bg'
" bg fallback mode should invert higlighting
if emstr == 'NONE'
let emstr = 'inverse'
else
let emstr .= ',inverse'
endif
let emstr .= 'inverse,'
endif
endif
let histring = ['hi', a:group,
let histring = [ 'hi', a:group,
\ 'guifg=' . fg[0], 'ctermfg=' . fg[1],
\ 'guibg=' . bg[0], 'ctermbg=' . bg[1],
\ 'gui=' . emstr, 'cterm=' . emstr
\ 'gui=' . emstr[:-2], 'cterm=' . emstr[:-2]
\ ]
" special
if a:0 >= 3
if type(a:3) == 3
let specl = a:3[0]
elseif type(a:3) == 1 && strlen(a:3)
let specl = a:3
else
let specl = 'NONE'
endif
call add(histring, 'guisp=' . specl)
call add(histring, 'guisp=' . a:3[0])
endif
execute join(histring, ' ')
@@ -420,27 +404,27 @@ endif
if version >= 700
" Screen line that the cursor is
call s:HL('CursorLine', 'NONE', s:bg1)
call s:HL('CursorLine', s:none, s:bg1)
" Screen column that the cursor is
call s:HL('CursorColumn', 'NONE', s:bg1)
call s:HL('CursorColumn', s:none, s:bg1)
" Tab pages line filler
call s:HL('TabLineFill', s:bg4, 'bg', s:invert_tabline)
call s:HL('TabLineFill', s:bg4, s:vim_bg, s:invert_tabline)
" Active tab page label
call s:HL('TabLineSel', 'bg', s:bg4, s:bold . s:invert_tabline)
call s:HL('TabLineSel', s:vim_bg, s:bg4, s:bold . s:invert_tabline)
" Not active tab page label
call s:HL('TabLine', s:bg4, 'bg', s:invert_tabline)
call s:HL('TabLine', s:bg4, s:vim_bg, s:invert_tabline)
" Match paired bracket under the cursor
call s:HL('MatchParen', 'NONE', s:bg3, s:bold)
call s:HL('MatchParen', s:none, s:bg3, s:bold)
endif
if version >= 703
" Highlighted screen columns
call s:HL('ColorColumn', 'NONE', s:color_column)
call s:HL('ColorColumn', s:none, s:color_column)
" Concealed element: \lambda → λ
call s:HL('Conceal', s:blue, 'NONE')
call s:HL('Conceal', s:blue, s:none)
" Line number of CursorLine
call s:HL('CursorLineNr', s:yellow, s:bg1)
@@ -449,13 +433,13 @@ endif
call s:HL('NonText', s:bg2)
call s:HL('SpecialKey', s:bg2)
call s:HL('Visual', 'NONE', s:bg3, s:invert_selection)
call s:HL('VisualNOS', 'NONE', s:bg3, s:invert_selection)
call s:HL('Visual', s:none, s:bg3, s:invert_selection)
call s:HL('VisualNOS', s:none, s:bg3, s:invert_selection)
call s:HL('Search', s:bg0, s:yellow)
call s:HL('IncSearch', s:bg0, s:hls_cursor)
call s:HL('Underlined', s:blue, 'NONE', s:underline)
call s:HL('Underlined', s:blue, s:none, s:underline)
call s:HL('StatusLine', s:bg4, s:bg0, s:bold . s:inverse)
call s:HL('StatusLineNC', s:bg2, s:fg4, s:bold . s:inverse)
@@ -467,21 +451,21 @@ call s:HL('VertSplit', s:fg4, s:vert_split)
call s:HL('WildMenu', s:blue, s:bg2, s:bold)
" Directory names, special names in listing
call s:HL('Directory', s:green, 'NONE', s:bold)
call s:HL('Directory', s:green, s:none, s:bold)
" Titles for output from :set all, :autocmd, etc.
call s:HL('Title', s:green, 'NONE', s:bold)
call s:HL('Title', s:green, s:none, s:bold)
" Error messages on the command line
call s:HL('ErrorMsg', 'bg', s:red, s:bold)
call s:HL('ErrorMsg', s:vim_bg, s:red, s:bold)
" More prompt: -- More --
call s:HL('MoreMsg', s:yellow, 'NONE', s:bold)
call s:HL('MoreMsg', s:yellow, s:none, s:bold)
" Current mode message: -- INSERT --
call s:HL('ModeMsg', s:yellow, 'NONE', s:bold)
call s:HL('ModeMsg', s:yellow, s:none, s:bold)
" 'Press enter' prompt and yes/no questions
call s:HL('Question', s:orange, 'NONE', s:bold)
call s:HL('Question', s:orange, s:none, s:bold)
" Warning messages
call s:HL('WarningMsg', s:red, 'NONE', s:bold)
call s:HL('WarningMsg', s:red, s:none, s:bold)
" }}}
" Gutter: {{{
@@ -490,7 +474,7 @@ call s:HL('WarningMsg', s:red, 'NONE', s:bold)
call s:HL('LineNr', s:number_column)
" Column where signs are displayed
call s:HL('SignColumn', 'NONE', s:sign_column)
call s:HL('SignColumn', s:none, s:sign_column)
" Line used for closed folds
call s:HL('Folded', s:gray, s:bg1, s:italic)
@@ -501,13 +485,13 @@ call s:HL('FoldColumn', s:gray, s:bg1)
" Cursor: {{{
" Character under cursor
call s:HL('Cursor', 'NONE', 'NONE', s:inverse)
call s:HL('Cursor', s:none, s:none, s:inverse)
" Visual mode cursor, selection
call s:HL('vCursor', 'NONE', 'NONE', s:inverse)
call s:HL('vCursor', s:none, s:none, s:inverse)
" Input moder cursor
call s:HL('iCursor', 'NONE', 'NONE', s:inverse)
call s:HL('iCursor', s:none, s:none, s:inverse)
" Language mapping cursor
call s:HL('lCursor', 'NONE', 'NONE', s:inverse)
call s:HL('lCursor', s:none, s:none, s:inverse)
" }}}
" Syntax Highlighting: {{{
@@ -518,9 +502,9 @@ else
call s:HL('Special', s:bg1, s:orange, s:italic)
endif
call s:HL('Comment', s:gray, 'NONE', s:italicize_comments)
call s:HL('Todo', 'fg', 'bg', s:bold . s:italic)
call s:HL('Error', s:red, 'bg', s:bold . s:inverse)
call s:HL('Comment', s:gray, s:none, s:italicize_comments)
call s:HL('Todo', s:vim_fg, s:vim_bg, s:bold . s:italic)
call s:HL('Error', s:red, s:vim_bg, s:bold . s:inverse)
" Generic statement
call s:HL('Statement', s:red)
@@ -540,7 +524,7 @@ call s:HL('Keyword', s:red)
" Variable name
call s:HL('Identifier', s:blue)
" Function name
call s:HL('Function', s:green, 'NONE', s:bold)
call s:HL('Function', s:green, s:none, s:bold)
" Generic preprocessor
call s:HL('PreProc', s:aqua)
@@ -559,7 +543,7 @@ call s:HL('Constant', s:purple)
call s:HL('Character', s:purple)
" String constant: "this is a string"
if g:gruvbox_improved_strings == 0
call s:HL('String', s:green, 'NONE', s:italicize_strings)
call s:HL('String', s:green, s:none, s:italicize_strings)
else
call s:HL('String', s:bg1, s:fg1, s:italicize_strings)
endif
@@ -588,9 +572,9 @@ if version >= 700
" Popup menu: selected item
call s:HL('PmenuSel', s:bg2, s:blue, s:bold)
" Popup menu: scrollbar
call s:HL('PmenuSbar', 'NONE', s:bg2)
call s:HL('PmenuSbar', s:none, s:bg2)
" Popup menu: scrollbar thumb
call s:HL('PmenuThumb', 'NONE', s:bg4)
call s:HL('PmenuThumb', s:none, s:bg4)
endif
" }}}
@@ -611,16 +595,16 @@ call s:HL('DiffText', s:yellow, s:bg0, s:inverse)
if has("spell")
" Not capitalised word, or compile warnings
if g:gruvbox_improved_warnings == 0
call s:HL('SpellCap', 'NONE', 'NONE', s:undercurl, s:red)
call s:HL('SpellCap', s:none, s:none, s:undercurl, s:red)
else
call s:HL('SpellCap', s:green, 'NONE', s:bold . s:italic)
call s:HL('SpellCap', s:green, s:none, s:bold . s:italic)
endif
" Not recognized word
call s:HL('SpellBad', 'NONE', 'NONE', s:undercurl, s:blue)
call s:HL('SpellBad', s:none, s:none, s:undercurl, s:blue)
" Wrong spelling for selected region
call s:HL('SpellLocal', 'NONE', 'NONE', s:undercurl, s:aqua)
call s:HL('SpellLocal', s:none, s:none, s:undercurl, s:aqua)
" Rare word
call s:HL('SpellRare', 'NONE', 'NONE', s:undercurl, s:purple)
call s:HL('SpellRare', s:none, s:none, s:undercurl, s:purple)
endif
" }}}
@@ -648,11 +632,11 @@ endif
if g:indent_guides_auto_colors == 0
if g:gruvbox_invert_indent_guides == 0
call s:HL('IndentGuidesOdd', 'bg', s:bg2)
call s:HL('IndentGuidesEven', 'bg', s:bg1)
call s:HL('IndentGuidesOdd', s:vim_bg, s:bg2)
call s:HL('IndentGuidesEven', s:vim_bg, s:bg1)
else
call s:HL('IndentGuidesOdd', 'bg', s:bg2, s:inverse)
call s:HL('IndentGuidesEven', 'bg', s:bg3, s:inverse)
call s:HL('IndentGuidesOdd', s:vim_bg, s:bg2, s:inverse)
call s:HL('IndentGuidesEven', s:vim_bg, s:bg3, s:inverse)
endif
endif
@@ -717,8 +701,8 @@ call s:HL('SignifySignDelete', s:red, s:sign_column, s:invert_signs)
" }}}
" Syntastic: {{{
call s:HL('SyntasticError', 'NONE', 'NONE', s:undercurl, s:red)
call s:HL('SyntasticWarning', 'NONE', 'NONE', s:undercurl, s:yellow)
call s:HL('SyntasticError', s:none, s:none, s:undercurl, s:red)
call s:HL('SyntasticWarning', s:none, s:none, s:undercurl, s:yellow)
call s:HL('SyntasticErrorSign', s:red, s:sign_column, s:invert_signs)
call s:HL('SyntasticWarningSign', s:yellow, s:sign_column, s:invert_signs)
@@ -796,25 +780,25 @@ call s:HL('diffLine', s:blue)
call s:HL('htmlTag', s:blue)
call s:HL('htmlEndTag', s:blue)
call s:HL('htmlTagName', s:aqua, 'NONE', s:bold)
call s:HL('htmlTagName', s:aqua, s:none, s:bold)
call s:HL('htmlArg', s:aqua)
call s:HL('htmlScriptTag', s:purple)
call s:HL('htmlTagN', s:fg1)
call s:HL('htmlSpecialTagName', s:aqua, 'NONE', s:bold)
call s:HL('htmlSpecialTagName', s:aqua, s:none, s:bold)
call s:HL('htmlLink', s:fg4, 'NONE', s:underline)
call s:HL('htmlLink', s:fg4, s:none, s:underline)
call s:HL('htmlSpecialChar', s:orange)
call s:HL('htmlBold', 'fg', 'bg', s:bold)
call s:HL('htmlBoldUnderline', 'fg', 'bg', s:bold . s:underline)
call s:HL('htmlBoldItalic', 'fg', 'bg', s:bold . s:italic)
call s:HL('htmlBoldUnderlineItalic', 'fg', 'bg', s:bold . s:underline . s:italic)
call s:HL('htmlBold', s:vim_fg, s:vim_bg, s:bold)
call s:HL('htmlBoldUnderline', s:vim_fg, s:vim_bg, s:bold . s:underline)
call s:HL('htmlBoldItalic', s:vim_fg, s:vim_bg, s:bold . s:italic)
call s:HL('htmlBoldUnderlineItalic', s:vim_fg, s:vim_bg, s:bold . s:underline . s:italic)
call s:HL('htmlUnderline', 'fg', 'bg', s:underline)
call s:HL('htmlUnderlineItalic', 'fg', 'bg', s:underline . s:italic)
call s:HL('htmlItalic', 'fg', 'bg', s:italic)
call s:HL('htmlUnderline', s:vim_fg, s:vim_bg, s:underline)
call s:HL('htmlUnderlineItalic', s:vim_fg, s:vim_bg, s:underline . s:italic)
call s:HL('htmlItalic', s:vim_fg, s:vim_bg, s:italic)
" }}}
" Xml: {{{
@@ -823,7 +807,7 @@ call s:HL('xmlTag', s:blue)
call s:HL('xmlEndTag', s:blue)
call s:HL('xmlTagName', s:blue)
call s:HL('xmlEqual', s:blue)
call s:HL('docbkKeyword', s:aqua, 'NONE', s:bold)
call s:HL('docbkKeyword', s:aqua, s:none, s:bold)
call s:HL('xmlDocTypeDecl', s:gray)
call s:HL('xmlDocTypeKeyword', s:purple)
@@ -843,7 +827,7 @@ call s:HL('xmlEntityPunct', s:orange)
" }}}
" Vim: {{{
call s:HL('vimCommentTitle', s:fg4_256, 'NONE', s:bold . s:italicize_comments)
call s:HL('vimCommentTitle', s:fg4_256, s:none, s:bold . s:italicize_comments)
call s:HL('vimNotation', s:orange)
call s:HL('vimBracket', s:orange)
@@ -869,9 +853,9 @@ call s:HL('clojureException', s:red)
call s:HL('clojureRegexp', s:aqua)
call s:HL('clojureRegexpEscape', s:aqua)
call s:HL('clojureRegexpCharClass', s:fg3, 'NONE', s:bold)
call s:HL('clojureRegexpMod', s:fg3, 'NONE', s:bold)
call s:HL('clojureRegexpQuantifier', s:fg3, 'NONE', s:bold)
call s:HL('clojureRegexpCharClass', s:fg3, s:none, s:bold)
call s:HL('clojureRegexpMod', s:fg3, s:none, s:bold)
call s:HL('clojureRegexpQuantifier', s:fg3, s:none, s:bold)
call s:HL('clojureParen', s:fg3)
call s:HL('clojureAnonArg', s:yellow)
@@ -1101,12 +1085,12 @@ call s:HL('scalaInterpolation', s:aqua)
" }}}
" Markdown: {{{
call s:HL('markdownItalic', s:fg3, 'NONE', s:italic)
call s:HL('markdownItalic', s:fg3, s:none, s:italic)
call s:HL('markdownH1', s:green, 'NONE', s:bold)
call s:HL('markdownH2', s:green, 'NONE', s:bold)
call s:HL('markdownH3', s:yellow, 'NONE', s:bold)
call s:HL('markdownH4', s:yellow, 'NONE', s:bold)
call s:HL('markdownH1', s:green, s:none, s:bold)
call s:HL('markdownH2', s:green, s:none, s:bold)
call s:HL('markdownH3', s:yellow, s:none, s:bold)
call s:HL('markdownH4', s:yellow, s:none, s:bold)
call s:HL('markdownH5', s:yellow)
call s:HL('markdownH6', s:yellow)
@@ -1128,8 +1112,8 @@ call s:HL('markdownHeadingDelimiter', s:orange)
call s:HL('markdownUrl', s:purple)
call s:HL('markdownUrlTitleDelimiter', s:green)
call s:HL('markdownLinkText', s:gray, 'NONE', s:underline)
call s:HL('markdownIdDeclaration', s:gray, 'NONE', s:underline)
call s:HL('markdownLinkText', s:gray, s:none, s:underline)
call s:HL('markdownIdDeclaration', s:gray, s:none, s:underline)
" }}}
" Haskell: {{{
@@ -1187,10 +1171,10 @@ function! GruvboxHlsShowCursor()
endfunction
function! GruvboxHlsHideCursor()
call s:HL('Cursor', 'NONE', 'NONE', s:inverse)
call s:HL('vCursor', 'NONE', 'NONE', s:inverse)
call s:HL('iCursor', 'NONE', 'NONE', s:inverse)
call s:HL('lCursor', 'NONE', 'NONE', s:inverse)
call s:HL('Cursor', s:none, s:none, s:inverse)
call s:HL('vCursor', s:none, s:none, s:inverse)
call s:HL('iCursor', s:none, s:none, s:inverse)
call s:HL('lCursor', s:none, s:none, s:inverse)
endfunction
" }}}