Until this commit the err callback closed the channel to prevent the close
callback from being invoked, because the close callback invoked the out
handler (which we don't want when the job was unsuccessful).
This mostly worked but if closing the channel took too long, which it
seemed it could when dealing with large files, the close callback could
be called in the meantime.
This commit removes the unreliable code. The parent commit ensured that
the close callback only calls the out handler when the job succeeded, so
we no longer need to try to prevent the close callback from being
called.
- Hunk stage/undo/preview no longer saves the buffer.
- Hunk undo no longer makes locations go out of sync.
- Grep can be opted out of (grep output with ansi escapes is number one cause
of issues).
- Replaced g:gitgutter_grep_command with g:gitgutter_grep.
- Always runs git-diff the same way instead of in two possible ways.
- Separated detection of git tracking from diffing.
- Simplified path handling.
- Removed support for xolox shell: Windows taskbar does not flash with async
jobs.
- Removed g:gitgutter_{eager,realtime}.
- Simplified implementation generally.
neovim/neovim#5529 merged support for Vim's partial functions, which
made nvim more strict about dictionary functions. This means the
implicit self variable isn't available unless a function is annoted as a
dict function or defined as part of a dictionary.
Closes#392
Vim 7.4.1810 stopped sending DETACH to the out_cb handler to mark the
end of the job's stdout. Instead we add a close_cb handler which does
what the out_cb handler used to do upon receiving DETACH.