rc diff: make it a module

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.
This commit is contained in:
Johannes Altmanninger 2022-01-24 17:09:44 +01:00
parent 9acd4e62dc
commit b84abd57de
3 changed files with 11 additions and 0 deletions

View File

@ -2,6 +2,12 @@ hook global BufCreate .*\.(diff|patch) %{
set-option buffer filetype diff set-option buffer filetype diff
} }
hook global WinSetOption filetype=diff %{
require-module diff
}
provide-module diff %§
add-highlighter shared/diff group add-highlighter shared/diff group
add-highlighter shared/diff/ regex "^\+[^\n]*\n" 0:green,default add-highlighter shared/diff/ regex "^\+[^\n]*\n" 0:green,default
add-highlighter shared/diff/ regex "^-[^\n]*\n" 0:red,default add-highlighter shared/diff/ regex "^-[^\n]*\n" 0:red,default
@ -12,6 +18,8 @@ hook -group diff-highlight global WinSetOption filetype=diff %{
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/diff } hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/diff }
} }
§
define-command \ define-command \
-docstring %{diff-select-file: Select surrounding patch file} \ -docstring %{diff-select-file: Select surrounding patch file} \
-params 0 \ -params 0 \

View File

@ -35,6 +35,7 @@ hook -group git-rebase-highlight global WinSetOption filetype=git-rebase %{
provide-module git-commit %{ provide-module git-commit %{
require-module diff
add-highlighter shared/git-commit regions 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/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 region ^# $ group

View File

@ -2,6 +2,7 @@ declare-option -docstring "name of the client in which documentation is to be di
str docsclient str docsclient
hook -group git-log-highlight global WinSetOption filetype=git-log %{ hook -group git-log-highlight global WinSetOption filetype=git-log %{
require-module diff
add-highlighter window/git-log group add-highlighter window/git-log group
add-highlighter window/git-log/ regex '^([*|\\ /_.-])*' 0:keyword add-highlighter window/git-log/ regex '^([*|\\ /_.-])*' 0:keyword
add-highlighter window/git-log/ regex '^( ?[*|\\ /_.-])*\h{,3}(commit )?(\b[0-9a-f]{4,40}\b)' 2:keyword 3:comment add-highlighter window/git-log/ regex '^( ?[*|\\ /_.-])*\h{,3}(commit )?(\b[0-9a-f]{4,40}\b)' 2:keyword 3:comment
@ -12,6 +13,7 @@ hook -group git-log-highlight global WinSetOption filetype=git-log %{
} }
hook -group git-status-highlight global WinSetOption filetype=git-status %{ hook -group git-status-highlight global WinSetOption filetype=git-status %{
require-module diff
add-highlighter window/git-status group add-highlighter window/git-status group
add-highlighter window/git-status/ regex '^## ' 0:comment add-highlighter window/git-status/ regex '^## ' 0:comment
add-highlighter window/git-status/ regex '^## (\S*[^\s\.@])' 1:green add-highlighter window/git-status/ regex '^## (\S*[^\s\.@])' 1:green