annotate runtime/syntax/mail.vim @ 7:3fc0f57ecb91 v7.0001

updated for version 7.0001
author vimboss
date Sun, 13 Jun 2004 20:20:40 +0000
parents
children 8b0ee9d57d7f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1 " Vim syntax file
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2 " Language: Mail file
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3 " Previous Maintainer: Felix von Leitner <leitner@math.fu-berlin.de>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4 " Maintainer: Gautam Iyer <gautam@math.uchicago.edu>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5 " Last Change: Mon 23 Feb 2004 02:26:16 PM CST
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7 " Quit when a syntax file was already loaded
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8 if exists("b:current_syntax")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9 finish
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
12 " The mail header is recognized starting with a "keyword:" line and ending
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
13 " with an empty line or other line that can't be in the header. All lines of
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
14 " the header are highlighted. Headers of quoted messages (quoted with >) are
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
15 " also highlighted.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
16
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
17 " Syntax clusters
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
18 syn cluster mailHeaderFields contains=mailHeaderKey,mailSubject,mailHeaderEmail,@mailLinks
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
19 syn cluster mailLinks contains=mailURL,mailEmail
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
20 syn cluster mailQuoteExps contains=mailQuoteExp1,mailQuoteExp2,mailQuoteExp3,mailQuoteExp4,mailQuoteExp5,mailQuoteExp6
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
21
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
22 syn case match
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
23 " For "From " matching case is required. The "From " is not matched in quoted
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
24 " emails
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
25 syn region mailHeader contains=@mailHeaderFields start="^From " skip="^\s" end="\v^[-A-Za-z0-9]*([^-A-Za-z0-9:]|$)"me=s-1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
26 syn match mailHeaderKey contained contains=mailEmail "^From\s.*$"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
27
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
28 syn case ignore
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
29 " Nothing else depends on case. Headers in properly quoted (with "> " or ">")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
30 " emails are matched
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
31 syn region mailHeader keepend contains=@mailHeaderFields,@mailQuoteExps start="^\z(\(> \?\)*\)\v(newsgroups|from|((in-)?reply-)?to|b?cc|subject|return-path|received|date|replied):" skip="^\z1\s" end="\v^\z1[-a-z0-9]*([^-a-z0-9:]|$)"me=s-1 end="\v^\z1@!"me=s-1 end="\v^\z1(\> ?)+"me=s-1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
32
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
33 syn region mailHeaderKey contained contains=mailHeaderEmail,mailEmail,@mailQuoteExps start="\v(^(\> ?)*)@<=(to|b?cc):" skip=",$" end="$"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
34 syn match mailHeaderKey contained contains=mailHeaderEmail,mailEmail "\v(^(\> ?)*)@<=(from|reply-to):.*$"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
35 syn match mailHeaderKey contained "\v(^(\> ?)*)@<=date:"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
36 syn match mailSubject contained "\v(^(\> ?)*)@<=subject:.*$" contains=@Spell
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
37
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
38 " Anything in the header between < and > is an email address
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
39 syn match mailHeaderEmail contained "<.\{-}>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
40
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
41 " Mail Signatures. (Begin with "--", end with change in quote level)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
42 syn region mailSignature keepend contains=@mailLinks,@mailQuoteExps start="^\z(\(> \?\)*\)-- *$" end="^\z1$" end="^\z1\@!"me=s-1 end="^\z1\(> \?\)\+"me=s-1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
43
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
44 " URLs start with a known protocol or www,web,w3.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
45 syn match mailURL `\v<(((https?|ftp|gopher)://|(mailto|file|news):)[^' <>"]+|(www|web|w3)[a-z0-9_-]*\.[a-z0-9._-]+\.[^' <>"]+)[a-z0-9/]`
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
46 syn match mailEmail "\v[_=a-z\./+0-9-]+\@[a-z0-9._-]+\a{2}"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
47
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
48 " Make sure quote markers in regions (header / signature) have correct color
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
49 syn match mailQuoteExp1 contained "\v^(\> ?)"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
50 syn match mailQuoteExp2 contained "\v^(\> ?){2}"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
51 syn match mailQuoteExp3 contained "\v^(\> ?){3}"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
52 syn match mailQuoteExp4 contained "\v^(\> ?){4}"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
53 syn match mailQuoteExp5 contained "\v^(\> ?){5}"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
54 syn match mailQuoteExp6 contained "\v^(\> ?){6}"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
55
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
56 " Even and odd quoted lines. order is imporant here!
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
57 syn match mailQuoted1 contains=mailHeader,@mailLinks,mailSignature "^\([a-z]\+>\|[]|}>]\).*$"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
58 syn match mailQuoted2 contains=mailHeader,@mailLinks,mailSignature "^\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{2}.*$"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
59 syn match mailQuoted3 contains=mailHeader,@mailLinks,mailSignature "^\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{3}.*$"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
60 syn match mailQuoted4 contains=mailHeader,@mailLinks,mailSignature "^\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{4}.*$"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
61 syn match mailQuoted5 contains=mailHeader,@mailLinks,mailSignature "^\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{5}.*$"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
62 syn match mailQuoted6 contains=mailHeader,@mailLinks,mailSignature "^\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{6}.*$"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
63
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
64 " Need to sync on the header. Assume we can do that within 100 lines
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
65 if exists("mail_minlines")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
66 exec "syn sync minlines=" . mail_minlines
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
67 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
68 syn sync minlines=100
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
69 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
70
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
71 " Define the default highlighting.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
72 hi def link mailHeader Statement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
73 hi def link mailHeaderKey Type
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
74 hi def link mailSignature PreProc
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
75 hi def link mailHeaderEmail mailEmail
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
76 hi def link mailEmail Special
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
77 hi def link mailURL String
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
78 hi def link mailSubject LineNR
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
79 hi def link mailQuoted1 Comment
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
80 hi def link mailQuoted3 mailQuoted1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
81 hi def link mailQuoted5 mailQuoted1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
82 hi def link mailQuoted2 Identifier
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
83 hi def link mailQuoted4 mailQuoted2
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
84 hi def link mailQuoted6 mailQuoted2
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
85 hi def link mailQuoteExp1 mailQuoted1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
86 hi def link mailQuoteExp2 mailQuoted2
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
87 hi def link mailQuoteExp3 mailQuoted3
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
88 hi def link mailQuoteExp4 mailQuoted4
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
89 hi def link mailQuoteExp5 mailQuoted5
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
90 hi def link mailQuoteExp6 mailQuoted6
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
91
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
92 let b:current_syntax = "mail"