Vim does not check the existence of its temp directory when generating
file names with tempname(). Therefore if, for some reason, the temp
directory gets deleted, Vim will continue to generate paths for file
names inside the directory. Writes to these file paths will fail
(E482).
See #746, #433, #190, #147.
This reverts "Use fresh temp files for every diff" [1]. At the time I
did not realise that Vim never checks the existence of its temp
directory after creating it at startup; I thought that each call to
tempname() generated a fresh file on disk. In fact tempname() simply
generates a string path.
Therefore there is no point calling tempname() for every diff. Doing so
only serves to generate more files in the temp directory than necessary.
[1] dab840b153
Setting a colorscheme often clears all existing highlight groups. When
the plugin subsequently sets up its colours, it sees that the GitGutter*
groups exist and leaves them alone - even though they have been cleared.
This change means cleared groups do get their colours set up again.
See #727.
When previewing a hunk we re-use any existing preview window. However
we need to reset it for our purposes in case it was used in an
incompatible way before.
See #713.
If GitGutter* highlight groups already exist, they were declared
deliberately (either by the colorscheme maintainer or the user). So do
not adjust them.
However if you would like to make the signs' backgrounds match the sign
column, you can do this:
let g:gitgutter_set_sign_backgrounds = 1
This was introduced in 07d7c9d4 because many colorschemes at the time
had ugly sign columns, and people kept asking how to deal with it.
These days there are many more plugins which use the sign column and
consequently more colorschemes pay attention to the SignColumn highlight
group.
Therefore it no longer makes sense for vim-gitgutter to adjust the
sign column's appearance.
To restore the previous behaviour, add this to your vimrc:
highlight! link SignColumn LineNr
See #696.
Specifically, make it match the signs' foreground colours; and clear the
backgrounds so the GitGutter{Add,Delete}IntraLine highlights' "reverse"
colours work properly.
Previously if the user or the colourscheme had already defined
GitGutter* highlight groups, the plugin would leave their backgrounds
alone. This pushed the responsibility for figuring out and specifying
the correct backgrounds onto the user or colourscheme maintainer.
With this change the plugin now sets the correct background on existing
GitGutter* highlight groups.
Also, the documentation was simplified so it is clearer how to set your
own colours for the signs.