annotate runtime/syntax/mail.vim @ 18486:9d887cad7315

Added tag v8.1.2237 for changeset 63ee3c2b140fe1b4801389872a8e47aec19d028b
author Bram Moolenaar <Bram@vim.org>
date Thu, 31 Oct 2019 20:00:04 +0100
parents 22da5ab9aaa1
children c57f1ae55bfb
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>
3224
8b8ef1fed009 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
4 " Maintainer: GI <a@b.c>, where a='gi1242+vim', b='gmail', c='com'
5340
22da5ab9aaa1 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3312
diff changeset
5 " Last Change: Wed 14 Aug 2013 08:24:52 AM PDT
7
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
3312
b7811ab264bf updated for version 7.3.423
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
12 let s:cpo_save = &cpo
b7811ab264bf updated for version 7.3.423
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
13 set cpo&vim
b7811ab264bf updated for version 7.3.423
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
14
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
15 " The mail header is recognized starting with a "keyword:" line and ending
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
16 " 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
17 " the header are highlighted. Headers of quoted messages (quoted with >) are
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
18 " also highlighted.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
19
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
20 " Syntax clusters
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
21 syn cluster mailHeaderFields contains=mailHeaderKey,mailSubject,mailHeaderEmail,@mailLinks
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
22 syn cluster mailLinks contains=mailURL,mailEmail
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
23 syn cluster mailQuoteExps contains=mailQuoteExp1,mailQuoteExp2,mailQuoteExp3,mailQuoteExp4,mailQuoteExp5,mailQuoteExp6
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
24
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
25 syn case match
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
26 " For "From " matching case is required. The "From " is not matched in quoted
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
27 " emails
1125
96cd8222a819 updated for version 7.1a
vimboss
parents: 301
diff changeset
28 " According to RFC 2822 any printable ASCII character can appear in a field
96cd8222a819 updated for version 7.1a
vimboss
parents: 301
diff changeset
29 " name, except ':'.
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1622
diff changeset
30 syn region mailHeader contains=@mailHeaderFields,@NoSpell start="^From .*\d\d\d\d$" skip="^\s" end="\v^[!-9;-~]*([^!-~]|$)"me=s-1 fold
1622
149d8b46404c updated for version 7.2a
vimboss
parents: 1125
diff changeset
31 syn match mailHeaderKey contained contains=mailEmail,@NoSpell "^From\s.*\d\d\d\d$"
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1622
diff changeset
32
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1622
diff changeset
33 " Nothing else depends on case.
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1622
diff changeset
34 syn case ignore
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1622
diff changeset
35
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1622
diff changeset
36 " Headers in properly quoted (with "> " or ">") emails are matched
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1622
diff changeset
37 syn region mailHeader keepend contains=@mailHeaderFields,@mailQuoteExps,@NoSpell start="^\z(\(> \?\)*\)\v(newsgroups|x-([a-z\-])*|path|xref|message-id|from|((in-)?reply-)?to|b?cc|subject|return-path|received|date|replied):" skip="^\z1\s" end="\v^\z1[!-9;-~]*([^!-~]|$)"me=s-1 end="\v^\z1@!"me=s-1 end="\v^\z1(\> ?)+"me=s-1 fold
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1622
diff changeset
38
1622
149d8b46404c updated for version 7.2a
vimboss
parents: 1125
diff changeset
39 " Usenet headers
149d8b46404c updated for version 7.2a
vimboss
parents: 1125
diff changeset
40 syn match mailHeaderKey contained contains=mailHeaderEmail,mailEmail,@NoSpell "\v(^(\> ?)*)@<=(Newsgroups|Followup-To|Message-ID|Supersedes|Control):.*$"
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
41
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
42
227
ef254e0f2365 updated for version 7.0063
vimboss
parents: 164
diff changeset
43 syn region mailHeaderKey contained contains=mailHeaderEmail,mailEmail,@mailQuoteExps,@NoSpell start="\v(^(\> ?)*)@<=(to|b?cc):" skip=",$" end="$"
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1622
diff changeset
44 syn match mailHeaderKey contained contains=mailHeaderEmail,mailEmail,@NoSpell "\v(^(\> ?)*)@<=(from|reply-to):.*$" fold
301
006e9c8a6a8a updated for version 7.0079
vimboss
parents: 230
diff changeset
45 syn match mailHeaderKey contained contains=@NoSpell "\v(^(\> ?)*)@<=date:"
3312
b7811ab264bf updated for version 7.3.423
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
46 syn match mailSubject contained "\v^subject:.*$" fold
301
006e9c8a6a8a updated for version 7.0079
vimboss
parents: 230
diff changeset
47 syn match mailSubject contained contains=@NoSpell "\v(^(\> ?)+)@<=subject:.*$"
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
48
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
49 " Anything in the header between < and > is an email address
301
006e9c8a6a8a updated for version 7.0079
vimboss
parents: 230
diff changeset
50 syn match mailHeaderEmail contained contains=@NoSpell "<.\{-}>"
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
51
164
8b0ee9d57d7f updated for version 7.0050
vimboss
parents: 7
diff changeset
52 " Mail Signatures. (Begin with "-- ", end with change in quote level)
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1622
diff changeset
53 syn region mailSignature keepend contains=@mailLinks,@mailQuoteExps start="^--\s$" end="^$" end="^\(> \?\)\+"me=s-1 fold
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1622
diff changeset
54 syn region mailSignature keepend contains=@mailLinks,@mailQuoteExps,@NoSpell start="^\z(\(> \?\)\+\)--\s$" end="^\z1$" end="^\z1\@!"me=s-1 end="^\z1\(> \?\)\+"me=s-1 fold
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1622
diff changeset
55
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1622
diff changeset
56 " Treat verbatim Text special.
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1622
diff changeset
57 syn region mailVerbatim contains=@NoSpell keepend start="^#v+$" end="^#v-$" fold
5340
22da5ab9aaa1 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3312
diff changeset
58 syn region mailVerbatim contains=@mailQuoteExps,@NoSpell keepend start="^\z(\(> \?\)\+\)#v+$" end="\z1#v-$" fold
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
59
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
60 " URLs start with a known protocol or www,web,w3.
301
006e9c8a6a8a updated for version 7.0079
vimboss
parents: 230
diff changeset
61 syn match mailURL contains=@NoSpell `\v<(((https?|ftp|gopher)://|(mailto|file|news):)[^' <>"]+|(www|web|w3)[a-z0-9_-]*\.[a-z0-9._-]+\.[^' <>"]+)[a-z0-9/]`
006e9c8a6a8a updated for version 7.0079
vimboss
parents: 230
diff changeset
62 syn match mailEmail contains=@NoSpell "\v[_=a-z\./+0-9-]+\@[a-z0-9._-]+\a{2}"
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
63
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
64 " Make sure quote markers in regions (header / signature) have correct color
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
65 syn match mailQuoteExp1 contained "\v^(\> ?)"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
66 syn match mailQuoteExp2 contained "\v^(\> ?){2}"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
67 syn match mailQuoteExp3 contained "\v^(\> ?){3}"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
68 syn match mailQuoteExp4 contained "\v^(\> ?){4}"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
69 syn match mailQuoteExp5 contained "\v^(\> ?){5}"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
70 syn match mailQuoteExp6 contained "\v^(\> ?){6}"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
71
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1622
diff changeset
72 " Even and odd quoted lines. Order is important here!
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1622
diff changeset
73 syn region mailQuoted6 keepend contains=mailVerbatim,mailHeader,@mailLinks,mailSignature,@NoSpell start="^\z(\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{5}\([a-z]\+>\|[]|}>]\)\)" end="^\z1\@!" fold
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1622
diff changeset
74 syn region mailQuoted5 keepend contains=mailQuoted6,mailVerbatim,mailHeader,@mailLinks,mailSignature,@NoSpell start="^\z(\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{4}\([a-z]\+>\|[]|}>]\)\)" end="^\z1\@!" fold
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1622
diff changeset
75 syn region mailQuoted4 keepend contains=mailQuoted5,mailQuoted6,mailVerbatim,mailHeader,@mailLinks,mailSignature,@NoSpell start="^\z(\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{3}\([a-z]\+>\|[]|}>]\)\)" end="^\z1\@!" fold
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1622
diff changeset
76 syn region mailQuoted3 keepend contains=mailQuoted4,mailQuoted5,mailQuoted6,mailVerbatim,mailHeader,@mailLinks,mailSignature,@NoSpell start="^\z(\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{2}\([a-z]\+>\|[]|}>]\)\)" end="^\z1\@!" fold
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1622
diff changeset
77 syn region mailQuoted2 keepend contains=mailQuoted3,mailQuoted4,mailQuoted5,mailQuoted6,mailVerbatim,mailHeader,@mailLinks,mailSignature,@NoSpell start="^\z(\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{1}\([a-z]\+>\|[]|}>]\)\)" end="^\z1\@!" fold
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1622
diff changeset
78 syn region mailQuoted1 keepend contains=mailQuoted2,mailQuoted3,mailQuoted4,mailQuoted5,mailQuoted6,mailVerbatim,mailHeader,@mailLinks,mailSignature,@NoSpell start="^\z([a-z]\+>\|[]|}>]\)" end="^\z1\@!" fold
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
79
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
80 " Need to sync on the header. Assume we can do that within 100 lines
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
81 if exists("mail_minlines")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
82 exec "syn sync minlines=" . mail_minlines
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
83 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
84 syn sync minlines=100
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
85 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
86
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
87 " Define the default highlighting.
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1622
diff changeset
88 hi def link mailVerbatim Special
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
89 hi def link mailHeader Statement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
90 hi def link mailHeaderKey Type
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
91 hi def link mailSignature PreProc
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
92 hi def link mailHeaderEmail mailEmail
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
93 hi def link mailEmail Special
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
94 hi def link mailURL String
3224
8b8ef1fed009 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
95 hi def link mailSubject Title
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
96 hi def link mailQuoted1 Comment
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
97 hi def link mailQuoted3 mailQuoted1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
98 hi def link mailQuoted5 mailQuoted1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
99 hi def link mailQuoted2 Identifier
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
100 hi def link mailQuoted4 mailQuoted2
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
101 hi def link mailQuoted6 mailQuoted2
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
102 hi def link mailQuoteExp1 mailQuoted1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
103 hi def link mailQuoteExp2 mailQuoted2
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
104 hi def link mailQuoteExp3 mailQuoted3
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
105 hi def link mailQuoteExp4 mailQuoted4
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
106 hi def link mailQuoteExp5 mailQuoted5
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
107 hi def link mailQuoteExp6 mailQuoted6
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
108
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
109 let b:current_syntax = "mail"
3312
b7811ab264bf updated for version 7.3.423
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
110
b7811ab264bf updated for version 7.3.423
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
111 let &cpo = s:cpo_save
b7811ab264bf updated for version 7.3.423
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
112 unlet s:cpo_save