I wanted to be able to customize signify in a way that wasn't possible
with the current set of options. This commit adds 2 new options and 2
new highlight groups.
Specifically, we can now
1. differentiate between changes, deletes AND signs that have both
with the `signify_sign_changedelete` option.
2. disable showing the number of deleted lines in the sign column with
the `signify_sign_delete_use_count` option.
3. highlight lines with changes and deletes specifically with the
`SignifySignChangeDelete` highlight group.
4. highlight the first line differently with the
`SignifySignDeleteFirstLine` highlight group.
All of these default to existing settings/highlight groups, so
everything should continue working the way it does now.
--------------------------------------------------------------------------------
For those that are curious, I wanted to configure signify to show no
symbols in the sign column, and to just use the highlight groups to give
me all the information I needed. I am able to achieve that now with the
following settings and the Solarized colorscheme:
let g:signify_sign_add = "\<Char-0xa0>\<Char-0xa0>"
let g:signify_sign_change = "\<Char-0xa0>\<Char-0xa0>"
let g:signify_sign_changedelete = "__"
let g:signify_sign_delete = "__"
let g:signify_sign_delete_first_line = "‾‾"
let g:signify_sign_delete_use_count = 0
hi SignifySignDelete term=bold,underline cterm=bold,underline ctermfg=1 ctermbg=12
hi SignifySignDeleteFirstLine ctermfg=1 ctermbg=12
hi SignifySignChangeDelete term=bold,underline cterm=bold,underline ctermfg=1 ctermbg=3
You can see it in action here:
https://twitter.com/_bentomas/status/486266117204090880
Instead of using the sign id as the primary piece of data, store
information on a per-hunk granularity. A hunk has a start/end line as
well as a set of sign ids that have been placed within those lines.
This makes moving to the start of the next/previous hunk, as per the
behavior of the standard `]c`/`[c` bindings, pretty straight forward --
a simple filter to find relevant hunks, and then grab the first sign id.
Some VCS rely on an external diff tool, because they don't support the
-U0 flag natively. Most of the time that's the standard 'diff' utility.
But fritzophrenic was reporting that even a GNU diff won't always be
installed as 'diff', but e.g. as 'gnudiff' instead.
You can set the external diff tool now.
Closes#29.
People using themes for their terminal emulators that do a lot of
voodoo, could experience sign color problems because of the font being
bold by default.
Thus a new variable was introduced: g:signify_sign_weight.
Fixes#24.
Signs (from Syntastic in this case) were overwritten, although
g:signify_sign_overwrite was set to 0, because the used regex was buggy.
Add Ryan Kois as contributor.
Closes#20.
These options weren't used properly, because the s:line_* functions were
overwriting the sign texts. Now we initialize them only once at plugin
start.
Added Otto Modinos as contributor. Thanks for reporting.
Closes pull request #19.
I added 2 new options that are disabled by default. Sign updating can
now be triggered after 'updatetime' miliseconds without keypresses in
either normal or insert mode:
For enabling:
let g:signify_cursorhold_normal = 1
let g:signify_cursorhold_insert = 1
If you're working in a non-CVS repo and there are no changes, the repo
detection tries all supported repos in a certain order with CVS being
the last. If $CVSROOT is set that can take quite some time although
we're not even working in a CVS repo, so it's disabled by default now.
A new option for enabling CVS was added:
let g:signify_enable_cvs = 1