kakoune/rc/filetype/mail.kak
Chris Webb 8a14fbc15b Highlight inline patches and signatures in mail.kak
We already pull in the diff module in mail.kak to enable the nice
:diff-jump behaviour on inline patches. Also enable the shared/diff/
highlighter underneath our shared/mail/ highlighter for inline diffs,
listing it first so mail patterns take precedence over diff patterns.

De-emphasise signatures including the standard '^-- \n' separator in the
same way as quoted text in a reply.

Fixes: https://github.com/mawww/kakoune/issues/4998
2023-12-10 11:42:32 +00:00

31 lines
951 B
Plaintext

hook global BufCreate .+\.eml %{
set-option buffer filetype mail
}
hook global WinSetOption filetype=mail %{
require-module mail
map buffer normal <ret> :diff-jump<ret>
hook -once -always window WinSetOption filetype=.* %{
unmap buffer normal <ret> :diff-jump<ret>
}
}
hook -group mail-highlight global WinSetOption filetype=mail %{
add-highlighter window/mail ref mail
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/mail }
}
provide-module mail %{
require-module diff
add-highlighter shared/mail group
add-highlighter shared/mail/ ref diff
add-highlighter shared/mail/ regex ^(From|To|Cc|Bcc|Subject|Reply-To|In-Reply-To|References|Date|Message-Id|User-Agent):([^\n]*(?:\n\h+[^\n]+)*)$ 1:keyword 2:attribute
add-highlighter shared/mail/ regex <[^@>]+@.*?> 0:string
add-highlighter shared/mail/ regex ^>.*?$ 0:comment
add-highlighter shared/mail/ regex ^--\ \n.* 0:comment
}