Ensure good diff syntax highlighting in preview

Specifically, make it match the signs' foreground colours; and clear the
backgrounds so the GitGutter{Add,Delete}IntraLine highlights' "reverse"
colours work properly.
This commit is contained in:
Andy Stewart
2020-04-25 13:33:05 +01:00
parent 3cb5cbfd18
commit 8a380e2f90
2 changed files with 6 additions and 15 deletions

View File

@@ -633,16 +633,6 @@ This plugin is for showing changes between the buffer and the index (and staging
Your colorscheme is configuring the `SignColumn` highlight group weirdly. Please see the section above on customising the sign column.
> Why are the colours in the preview window weird?
Probably because your colourscheme doesn't configure the `diff{Added,Changed,Removed}` highlight groups. Try this in `after/syntax/diff.vim`:
```viml
highlight link diffAdded DiffAdd
highlight link diffChanged DiffChange
highlight link diffRemoved DiffDelete
```
> What happens if I also use another plugin which uses signs (e.g. Syntastic)?
You can configure whether GitGutter preserves or clobbers other signs using `g:gitgutter_sign_allow_clobber`. Set to `1` to clobber other signs (default on Vim >= 8.1.0614 and NeoVim >= 0.4.0) or `0` to preserve them.

View File

@@ -116,11 +116,12 @@ function! gitgutter#highlight#define_highlights() abort
" Highlights used intra line.
highlight GitGutterAddIntraLine gui=reverse cterm=reverse
highlight GitGutterDeleteIntraLine gui=reverse cterm=reverse
" Set default diff colours for the preview window (some colourschemes forget this).
" highlight default link diffAdded DiffAdd
" highlight default link diffChanged DiffChange
" highlight default link diffRemoved DiffDelete
" Set diff syntax colours (used in the preview window) - diffAdded,diffChanged,diffRemoved -
" to match the signs.
for [dtype,type] in [['Added','Add'], ['Changed','Change'], ['Removed','Delete']]
let [guifg, ctermfg] = s:get_foreground_colors('GitGutter'.type)
execute "highlight diff".dtype." guifg=".guifg." ctermfg=".ctermfg." guibg=NONE ctermbg=NONE"
endfor
endfunction
function! gitgutter#highlight#define_signs() abort