From cf1083497aaa7cdcf931fd851f1c234d4d301094 Mon Sep 17 00:00:00 2001 From: ManjaroOne666 Date: Mon, 7 May 2018 00:32:11 +0100 Subject: [PATCH] SetColor() --- vimrc.functions.vim | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/vimrc.functions.vim b/vimrc.functions.vim index 61bd345..3b68149 100644 --- a/vimrc.functions.vim +++ b/vimrc.functions.vim @@ -1,3 +1,45 @@ +function! SetColor(name, fg, bg, fg_l, bg_l, attr) abort +"{{{ + let l:is_dark = &background ==? 'dark' + if a:fg ==? 'none' + let l:gui_fg = l:is_dark ? a:bg : a:bg_l + let l:c_fg = l:is_dark ? 'black' : 'white' + let l:fg = l:c_fg + elseif a:fg ==? '' + let l:gui_fg = l:is_dark ? g:l_normal_fg : g:d_normal_fg + let l:c_fg = l:is_dark ? 'white' : 'black' + let l:fg = l:c_fg + else + let l:gui_fg = l:is_dark ? a:fg : a:fg_l + let l:c_fg = 'white' + let l:fg = 'white' + endif + + if a:bg ==? '' + let l:gui_bg = l:is_dark ? g:d_normal_bg : g:l_normal_bg + let l:c_bg = l:is_dark ? 'none' : 'white' + let l:bg = l:c_bg + else + let l:gui_bg = l:is_dark ? a:bg : a:bg_l + let l:c_bg = l:is_dark ? 'black' : 'white' + let l:bg = l:c_bg + endif + + let l:attr_str = a:attr ==# '' ? 'none' : a:attr + let l:gui_attr = l:attr_str + let l:c_attr = l:attr_str + let l:attr = l:attr_str + + let l:guistring = 'guifg=' . l:gui_fg . ' guibg=' . l:gui_bg . ' gui=' . l:gui_attr + let l:cstring = ' cterm=' . l:c_attr + let l:tstring = ' term=' . l:attr + + let l:histring = 'hi! ' . a:name . ' ' . l:guistring . l:cstring . l:tstring + " echom l:histring + execute l:histring + +endfunction"}}} + " TODO better name function! GetStatusFrag(condition, colorname, conditionprefix, text) abort let l:frag='%#' . a:colorname . '#'"{{{