From 690b588378a2051048bfa7ff9cd4f1c8ac4a1d74 Mon Sep 17 00:00:00 2001 From: Pavel Pertsev Date: Thu, 3 Sep 2015 02:25:09 +0300 Subject: [PATCH] fix guisp fallback --- colors/gruvbox.vim | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/colors/gruvbox.vim b/colors/gruvbox.vim index c2d68dbf..a6d942de 100644 --- a/colors/gruvbox.vim +++ b/colors/gruvbox.vim @@ -45,9 +45,9 @@ if !exists('g:gruvbox_inverse') let g:gruvbox_inverse=1 endif -" if !exists('g:gruvbox_guisp_fallback') || index(['fg', 'bg'], g:gruvbox_guisp_fallback) == -1 -" let g:gruvbox_guisp_fallback='NONE' -" endif +if !exists('g:gruvbox_guisp_fallback') || index(['fg', 'bg'], g:gruvbox_guisp_fallback) == -1 + let g:gruvbox_guisp_fallback='fg' +endif if !exists('g:gruvbox_improved_strings') let g:gruvbox_improved_strings=0 @@ -342,7 +342,7 @@ function! s:HL(group, fg, ...) if type(a:fg) == 3 let fg = a:fg - elseif type(a:fg) == 1 + elseif type(a:fg) == 1 && strlen(a:fg) let fg = [a:fg, a:fg] else let fg = ['NONE', 'NONE'] @@ -350,7 +350,7 @@ function! s:HL(group, fg, ...) if a:0 >= 1 && type(a:1) == 3 let bg = a:1 - elseif a:0 >= 1 && type(a:1) == 1 + elseif a:0 >= 1 && type(a:1) == 1 && strlen(a:1) let bg = [a:1, a:1] else let bg = ['NONE', 'NONE'] @@ -362,6 +362,14 @@ function! s:HL(group, fg, ...) let emstr = 'NONE' endif + if a:0 >= 3 + if g:gruvbox_guisp_fallback == 'fg' && type(a:3) == 3 + let fg = a:3 + elseif g:gruvbox_guisp_fallback == 'bg' && type(a:3) == 3 + let bg = a:3 + endif + endif + let histring = ['hi', a:group, \ 'guifg=' . fg[0], 'ctermfg=' . fg[1], \ 'guibg=' . bg[0], 'ctermbg=' . bg[1], @@ -371,7 +379,7 @@ function! s:HL(group, fg, ...) if a:0 >= 3 if type(a:3) == 3 let specl = a:3[0] - elseif type(a:3) == 1 + elseif type(a:3) == 1 && strlen(a:3) let specl = a:3 else let specl = 'NONE' @@ -380,16 +388,6 @@ function! s:HL(group, fg, ...) call add(histring, 'guisp=' . specl) endif - " if (Foreground override enabled) && ( We were passed a guisp value ) - " if g:gruvbox_guisp_fallback == 'fg' && a:0 >= 3 && strlen(a:3) && a:3 != 'NONE' - " let c = get(s:gb, a:3) - " let histring .= 'guifg=#' . c[0] . ' ctermfg=' . c[1] . ' ' - - " if (Background override enabled) && ( We were passed a guisp value ) - " if g:gruvbox_guisp_fallback == 'bg' && a:0 >= 3 && strlen(a:3) && a:3 != 'NONE' - " let c = get(s:gb, a:3) - " let histring .= 'guibg=#' . c[0] . ' ctermbg=' . c[1] . ' ' - execute join(histring, ' ') endfunction