" notmuch show mode syntax file
-syntax region nmShowMessage start='\fmessage{' end='\fmessage}' contains=nmBlockStart,nmShowHeader,nmShowBody,nmShowAttachment,nmShowPart,nmBlockEnd
-syntax region nmShowHeader start='\fheader{' end='\fheader}' contained contains=nmBlockStart,nmBlockEnd
-syntax region nmShowBody start='\fbody{' end='\fbody}' contained contains=nmBlockStart,nmShowAttachment,nmShowPart,nmBlockEnd
-syntax region nmShowAttachment start='\fattachment{' end='\fattachment}' contained contains=nmBlockStart,nmBlockEnd
-syntax region nmShowPart start='\fpart{' end='\fpart}' contained contains=nmBlockStart,nmBlockEnd
+syntax cluster nmShowMsgDesc contains=nmShowMsgDescWho,nmShowMsgDescDate,nmShowMsgDescTags
+syntax match nmShowMsgDescWho /[^)]\+)/ contained
+syntax match nmShowMsgDescDate / ([^)]\+[0-9]) / contained
+syntax match nmShowMsgDescTags /([^)]\+)$/ contained
-syntax region nmBlockStart start='^\f[a-z]\+{' end='$' oneline
-syntax region nmBlockEnd start='^\f[a-z]\+}' end='$' oneline
+syntax cluster nmShowMsgHead contains=nmShowMsgHeadKey,nmShowMsgHeadVal
+syntax match nmShowMsgHeadKey /^[^:]\+: / contained
+syntax match nmShowMsgHeadVal /^\([^:]\+: \)\@<=.*/ contained
-highlight link nmShowMessage Error
-highlight link nmShowHeader Type
-highlight link nmShowBody Statement
-highlight link nmShowAttachment Statement
-highlight link nmShowPart String
-highlight link nmBlockStart Ignore
-highlight link nmBlockEnd Ignore
+syntax cluster nmShowMsgBody contains=@nmShowMsgBodyMail,@nmShowMsgBodyGit
+syntax include @nmShowMsgBodyMail syntax/mail.vim
+
+" git-diff.vim marks up diffs in emails, see README for details
+silent! syntax include @nmShowMsgBodyGit syntax/git-diff.vim
+
+highlight nmShowMsgDescWho term=reverse cterm=reverse gui=reverse
+highlight link nmShowMsgDescDate Type
+highlight link nmShowMsgDescTags String
+
+highlight link nmShowMsgHeadKey Macro
+"highlight link nmShowMsgHeadVal NONE
highlight Folded term=reverse ctermfg=LightGrey ctermbg=Black guifg=LightGray guibg=Black