@@ -3,16 +3,12 @@ function! highlight#define_sign_column_highlight()
33endfunction
44
55function ! highlight#define_highlights ()
6- redir = > sign_highlight
7- silent highlight SignColumn
8- redir END
9- let sign_ctermbg = matchlist (sign_highlight, ' ctermbg=\(\S\+\)' )[1 ]
10- let sign_guibg = matchlist (sign_highlight, ' guibg=\(\S\+\)' )[1 ]
6+ let [guibg, ctermbg] = highlight#get_background_colors (' SignColumn' )
117
128 " Highlights used by the signs.
13- execute " highlight GitGutterAddDefault guifg=#009900 guibg=" .sign_guibg. " ctermfg=2 ctermbg=" .sign_ctermbg
14- execute " highlight GitGutterChangeDefault guifg=#bbbb00 guibg=" .sign_guibg. " ctermfg=3 ctermbg=" .sign_ctermbg
15- execute " highlight GitGutterDeleteDefault guifg=#ff2222 guibg=" .sign_guibg. " ctermfg=1 ctermbg=" .sign_ctermbg
9+ execute " highlight GitGutterAddDefault guifg=#009900 guibg=" . guibg . " ctermfg=2 ctermbg=" . ctermbg
10+ execute " highlight GitGutterChangeDefault guifg=#bbbb00 guibg=" . guibg . " ctermfg=3 ctermbg=" . ctermbg
11+ execute " highlight GitGutterDeleteDefault guifg=#ff2222 guibg=" . guibg . " ctermfg=1 ctermbg=" . ctermbg
1612 highlight default link GitGutterChangeDeleteDefault GitGutterChangeDefault
1713
1814 highlight default link GitGutterAdd GitGutterAddDefault
@@ -66,3 +62,26 @@ function! highlight#define_sign_line_highlights()
6662 sign define GitGutterLineModifiedRemoved linehl=
6763 endif
6864endfunction
65+
66+ function ! highlight#get_background_colors (group)
67+ redir = > highlight
68+ silent execute ' silent highlight ' . a: group
69+ redir END
70+
71+ let link_matches = matchlist (highlight , ' links to \(\S\+\)' )
72+ if len (link_matches) > 0 " follow the link
73+ return highlight#get_background_colors (link_matches[1 ])
74+ endif
75+
76+ let ctermbg = highlight#match_highlight (highlight , ' ctermbg=\(\S\+\)' )
77+ let guibg = highlight#match_highlight (highlight , ' guibg=\(\S\+\)' )
78+ return [guibg, ctermbg]
79+ endfunction
80+
81+ function ! highlight#match_highlight (highlight , pattern)
82+ let matches = matchlist (a: highlight , a: pattern )
83+ if len (matches) == 0
84+ return ' NONE'
85+ endif
86+ return matches[1 ]
87+ endfunction
0 commit comments