b84abd57de
We want to move git-diff-goto-source from rc/tools/git.kak to rc/filetype/diff.kak (or should we could create rc/tools/diff.kak?). Either way, create the diff module so we can formalize this dependency. Currently this module only provides highlighters, so require it wherever we reference them. Keep the diff-select-{file,hunk} commands outside the module because people might already use them in git buffers.
55 lines
2.0 KiB
Plaintext
55 lines
2.0 KiB
Plaintext
hook global BufCreate .*(COMMIT_EDITMSG|MERGE_MSG) %{
|
|
set-option buffer filetype git-commit
|
|
}
|
|
|
|
hook global BufCreate .*/NOTES_EDITMSG %{
|
|
set-option buffer filetype git-notes
|
|
}
|
|
|
|
hook global BufCreate .*(\.gitconfig|git/config) %{
|
|
set-option buffer filetype ini
|
|
}
|
|
|
|
hook global BufCreate .*git-rebase-todo %{
|
|
set-option buffer filetype git-rebase
|
|
}
|
|
|
|
hook global WinSetOption filetype=git-(commit|notes|rebase) %{
|
|
require-module "git-%val{hook_param_capture_1}"
|
|
}
|
|
|
|
hook -group git-commit-highlight global WinSetOption filetype=git-commit %{
|
|
add-highlighter window/git-commit ref git-commit
|
|
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/git-commit }
|
|
}
|
|
|
|
hook -group git-notes-highlight global WinSetOption filetype=git-notes %{
|
|
add-highlighter window/git-notes ref git-notes
|
|
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/git-notes }
|
|
}
|
|
|
|
hook -group git-rebase-highlight global WinSetOption filetype=git-rebase %{
|
|
add-highlighter window/git-rebase ref git-rebase
|
|
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/git-rebase }
|
|
}
|
|
|
|
|
|
provide-module git-commit %{
|
|
require-module diff
|
|
add-highlighter shared/git-commit regions
|
|
add-highlighter shared/git-commit/diff region '^diff --git' '^(?=diff --git)' ref diff # highlight potential diffs from the -v option
|
|
add-highlighter shared/git-commit/comments region ^# $ group
|
|
add-highlighter shared/git-commit/comments/ fill comment
|
|
add-highlighter shared/git-commit/comments/ regex "\b(?:(modified)|(deleted)|(new file)|(renamed|copied)):([^\n]*)$" 1:yellow 2:red 3:green 4:blue 5:magenta
|
|
}
|
|
|
|
provide-module git-notes %{
|
|
add-highlighter shared/git-notes regex ^#[^\n]*$ 0:comment
|
|
}
|
|
|
|
provide-module git-rebase %{
|
|
add-highlighter shared/git-rebase group
|
|
add-highlighter shared/git-rebase/ regex "^\h*#[^\n]*\n" 0:comment
|
|
add-highlighter shared/git-rebase/ regex "^(?:(pick|p)|(edit|reword|squash|fixup|exec|break|drop|label|reset|merge|[ersfxbdltm])) (\w+)" 1:keyword 2:value 3:meta
|
|
}
|