Просмотр исходного кода

guisp_fallback == 'bg' should invert highlight actually

Pavel Pertsev 10 лет назад
Родитель
Сommit
13f52ab26f
1 измененных файлов с 17 добавлено и 5 удалено
  1. 17 5
      colors/gruvbox.vim

+ 17 - 5
colors/gruvbox.vim

@@ -46,7 +46,7 @@ if !exists('g:gruvbox_inverse')
 endif
 
 if !exists('g:gruvbox_guisp_fallback') || index(['fg', 'bg'], g:gruvbox_guisp_fallback) == -1
-  let g:gruvbox_guisp_fallback='fg'
+  let g:gruvbox_guisp_fallback='NONE'
 endif
 
 if !exists('g:gruvbox_improved_strings')
@@ -340,6 +340,7 @@ endif
 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)
@@ -348,6 +349,7 @@ function! s:HL(group, fg, ...)
     let fg = ['NONE', 'NONE']
   endif
 
+  " background
   if a:0 >= 1 && type(a:1) == 3
     let bg = a:1
   elseif a:0 >= 1 && type(a:1) == 1 && strlen(a:1)
@@ -356,17 +358,26 @@ function! s:HL(group, fg, ...)
     let bg = ['NONE', 'NONE']
   endif
 
+  " emphasis
   if a:0 >= 2 && strlen(a:2)
     let emstr = a:2[:-2]
   else
     let emstr  = 'NONE'
   endif
 
-  if a:0 >= 3
-    if g:gruvbox_guisp_fallback == 'fg' && type(a:3) == 3
+  " special fallback
+  if a:0 >= 3 && type(a:3) == 3
+    if g:gruvbox_guisp_fallback != 'NONE'
       let fg = a:3
-    elseif g:gruvbox_guisp_fallback == 'bg' && type(a:3) == 3
-      let bg = a:3
+    endif
+
+    if g:gruvbox_guisp_fallback == 'bg'
+      " bg fallback mode should invert higlighting
+      if emstr == 'NONE'
+        let emstr = 'inverse'
+      else
+        let emstr .= ',inverse'
+      endif
     endif
   endif
 
@@ -376,6 +387,7 @@ function! s:HL(group, fg, ...)
         \ 'gui=' . emstr, 'cterm=' . emstr
         \ ]
 
+  " special
   if a:0 >= 3
     if type(a:3) == 3
       let specl = a:3[0]