mirror of
https://github.com/airblade/vim-gitgutter.git
synced 2025-11-09 03:53:47 -05:00
Follow linked highlight groups to find background colors
This commit is contained in:
@@ -3,16 +3,12 @@ function! highlight#define_sign_column_highlight()
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! highlight#define_highlights()
|
function! highlight#define_highlights()
|
||||||
redir => sign_highlight
|
let [guibg, ctermbg] = highlight#get_background_colors('SignColumn')
|
||||||
silent highlight SignColumn
|
|
||||||
redir END
|
|
||||||
let sign_ctermbg = matchlist(sign_highlight, 'ctermbg=\(\S\+\)')[1]
|
|
||||||
let sign_guibg = matchlist(sign_highlight, 'guibg=\(\S\+\)')[1]
|
|
||||||
|
|
||||||
" Highlights used by the signs.
|
" Highlights used by the signs.
|
||||||
execute "highlight GitGutterAddDefault guifg=#009900 guibg=".sign_guibg." ctermfg=2 ctermbg=".sign_ctermbg
|
execute "highlight GitGutterAddDefault guifg=#009900 guibg=" . guibg . " ctermfg=2 ctermbg=" . ctermbg
|
||||||
execute "highlight GitGutterChangeDefault guifg=#bbbb00 guibg=".sign_guibg." ctermfg=3 ctermbg=".sign_ctermbg
|
execute "highlight GitGutterChangeDefault guifg=#bbbb00 guibg=" . guibg . " ctermfg=3 ctermbg=" . ctermbg
|
||||||
execute "highlight GitGutterDeleteDefault guifg=#ff2222 guibg=".sign_guibg." ctermfg=1 ctermbg=".sign_ctermbg
|
execute "highlight GitGutterDeleteDefault guifg=#ff2222 guibg=" . guibg . " ctermfg=1 ctermbg=" . ctermbg
|
||||||
highlight default link GitGutterChangeDeleteDefault GitGutterChangeDefault
|
highlight default link GitGutterChangeDeleteDefault GitGutterChangeDefault
|
||||||
|
|
||||||
highlight default link GitGutterAdd GitGutterAddDefault
|
highlight default link GitGutterAdd GitGutterAddDefault
|
||||||
@@ -66,3 +62,26 @@ function! highlight#define_sign_line_highlights()
|
|||||||
sign define GitGutterLineModifiedRemoved linehl=
|
sign define GitGutterLineModifiedRemoved linehl=
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
function! highlight#get_background_colors(group)
|
||||||
|
redir => highlight
|
||||||
|
silent execute 'silent highlight ' . a:group
|
||||||
|
redir END
|
||||||
|
|
||||||
|
let link_matches = matchlist(highlight, 'links to \(\S\+\)')
|
||||||
|
if len(link_matches) > 0 " follow the link
|
||||||
|
return highlight#get_background_colors(link_matches[1])
|
||||||
|
endif
|
||||||
|
|
||||||
|
let ctermbg = highlight#match_highlight(highlight, 'ctermbg=\(\S\+\)')
|
||||||
|
let guibg = highlight#match_highlight(highlight, 'guibg=\(\S\+\)')
|
||||||
|
return [guibg, ctermbg]
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! highlight#match_highlight(highlight, pattern)
|
||||||
|
let matches = matchlist(a:highlight, a:pattern)
|
||||||
|
if len(matches) == 0
|
||||||
|
return 'NONE'
|
||||||
|
endif
|
||||||
|
return matches[1]
|
||||||
|
endfunction
|
||||||
|
|||||||
Reference in New Issue
Block a user