From c8a7da6f5fa890a621d4fec11ef09c9b3559f32a Mon Sep 17 00:00:00 2001 From: Johnny Oskarsson Date: Sat, 24 Oct 2020 13:14:25 +0200 Subject: Add support for GUI special names ("NONE", ...) The motivation for this is primarily to be able to set `guibg=NONE` in order to support transparent backgrounds in terminals, which was previously not possible due to `Base16hi()` assuming that every color is a hex value. --- templates/default.mustache | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) (limited to 'templates') diff --git a/templates/default.mustache b/templates/default.mustache index e0b612c..ddd36bc 100644 --- a/templates/default.mustache +++ b/templates/default.mustache @@ -153,11 +153,22 @@ function! g:Base16hi(group, guifg, guibg, ctermfg, ctermbg, ...) let l:attr = get(a:, 1, "") let l:guisp = get(a:, 2, "") + " See :help highlight-guifg + let l:gui_special_names = ["NONE", "bg", "background", "fg", "foreground"] + if a:guifg != "" - exec "hi " . a:group . " guifg=#" . a:guifg + if index(l:gui_special_names, a:guifg) >= 0 + exec "hi " . a:group . " guifg=" . a:guifg + else + exec "hi " . a:group . " guifg=#" . a:guifg + endif endif if a:guibg != "" - exec "hi " . a:group . " guibg=#" . a:guibg + if index(l:gui_special_names, a:guibg) >= 0 + exec "hi " . a:group . " guibg=" . a:guibg + else + exec "hi " . a:group . " guibg=#" . a:guibg + endif endif if a:ctermfg != "" exec "hi " . a:group . " ctermfg=" . a:ctermfg @@ -169,7 +180,11 @@ function! g:Base16hi(group, guifg, guibg, ctermfg, ctermbg, ...) exec "hi " . a:group . " gui=" . l:attr . " cterm=" . l:attr endif if l:guisp != "" - exec "hi " . a:group . " guisp=#" . l:guisp + if index(l:gui_special_names, l:guisp) >= 0 + exec "hi " . a:group . " guisp=" . l:guisp + else + exec "hi " . a:group . " guisp=#" . l:guisp + endif endif endfunction -- cgit v1.2.3