By default Sy only updates signs when opening or writing a buffer that is backed
by a file on disk.
If that's too conservative to you, enable this option. It makes Sy update signs
on almost every occasion.
To avoid issues for Vim versions between 7.4.1966 and 7.4.2071, we now use
type() to distinguish between the type of variable `job_id` being either Number
or Job.
Before Vim 8.0.50, an exited job was only detected with a potentially huge
delay.
Thus, for versions smaller than 8.0.50, we add a close_cb callback that runs
job_status() which in return runs the exit_cb callback immeditely if the job was
found to be dead.
Vim patch:
01688ad545
References: #216.
Since we don't switch the window anymore, we can't simply refer to b:sy as we
used to do while Sy worked only synchronously.
Now we provide the buffer number to each job and the exit handler gets a pointer
to the b:sy of that buffer and passes it to all the subsequent functions.
References #209, #210.
Vim provides 2 arguments to the exit handler whereas Neovim always provides 3.
Change function signature to handle an optional third argument, even if it never
gets used.
Fixes#204.
For each new buffer sy#repo#detect() gets run. That function invokes callbacks
for all VCS from g:signify_vcs_list.
If no callback finds a valid repo, sy#set_signs() is never called and the VCS
type of the newly registered buffer keeps its initial value: "unknown".
The next time Sy gets run in that buffer, Sy will disable itself, so that all
subsequent times it gets run it will never even attempt to get a diff.
If a buffer was added to a repo that was initialized after Sy registered that
buffer, it will remain inactive.
In those cases, :SignifyEnable will purge the cache for the current buffer and
start all over.