Hi!
Could someone help me configuring Kakoune to automatically run git show-diff
and git update-diff
on file opening and updates? I tried with
hook global BufOpenFile .* %{ git show-diff }
hook global BufWritePost .* %{ git update-diff }
but without success. Probably I didn’t understand how to use hooks yet…
prion
September 3, 2020, 10:13pm
2
Try
hook global WinCreate .* %{ git show-diff }
My suspicion is that BufOpenFile is triggered when the file is opened but before it is displayed. Additionally git show-dif
sets the highlighter at the window level anyway so you would need to activate for each window regardless. In Kakoune a window is a view into a buffer.
I have following setup:
# enable flag-lines hl for git diff
hook global WinCreate .* %{
add-highlighter window/git-diff flag-lines Default git_diff_flags
}
# trigger update diff if inside git dir
hook global BufOpenFile .* %{
evaluate-commands -draft %sh{
cd $(dirname "$kak_buffile")
if [ $(git rev-parse --git-dir 2>/dev/null) ]; then
for hook in WinCreate BufReload BufWritePost; do
printf "hook buffer -group git-update-diff %s .* 'git update-diff'\n" "$hook"
done
fi
}
}
2 Likes
That worked! Thank you both!