blob: cb01d44bb644bcef9f71f834998e09a6a5b0f99b [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: sendmail
Bram Moolenaare2719092015-01-10 15:09:25 +01003" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
Bram Moolenaar83d1b192015-04-13 14:22:40 +02004" Last Change: Oct 23, 2014
5" Version: 7
Bram Moolenaare2719092015-01-10 15:09:25 +01006" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SM
Bram Moolenaar071d4272004-06-13 20:20:40 +00007
Bram Moolenaar9da7ff72015-01-14 12:52:36 +01008if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +00009 finish
10endif
11
12" Comments
13syn match smComment "^#.*$" contains=@Spell
14
15" Definitions, Classes, Files, Options, Precedence, Trusted Users, Mailers
16syn match smDefine "^[CDF]."
17syn match smDefine "^O[AaBcdDeFfgHiLmNoQqrSsTtuvxXyYzZ]"
18syn match smDefine "^O\s"he=e-1
19syn match smDefine "^M[a-zA-Z0-9]\+,"he=e-1
20syn match smDefine "^T" nextgroup=smTrusted
21syn match smDefine "^P" nextgroup=smMesg
22syn match smTrusted "\S\+$" contained
23syn match smMesg "\S*="he=e-1 contained nextgroup=smPrecedence
24syn match smPrecedence "-\=[0-9]\+" contained
25
26" Header Format H?list-of-mailer-flags?name: format
27syn match smHeaderSep contained "[?:]"
28syn match smHeader "^H\(?[a-zA-Z]\+?\)\=[-a-zA-Z_]\+:" contains=smHeaderSep
29
30" Variables
31syn match smVar "\$[a-z\.\|]"
32
33" Rulesets
34syn match smRuleset "^S\d*"
35
36" Rewriting Rules
37syn match smRewrite "^R" skipwhite nextgroup=smRewriteLhsToken,smRewriteLhsUser
38
39syn match smRewriteLhsUser contained "[^\t$]\+" skipwhite nextgroup=smRewriteLhsToken,smRewriteLhsSep
40syn match smRewriteLhsToken contained "\(\$[-*+]\|\$[-=][A-Za-z]\|\$Y\)\+" skipwhite nextgroup=smRewriteLhsUser,smRewriteLhsSep
41
42syn match smRewriteLhsSep contained "\t\+" skipwhite nextgroup=smRewriteRhsToken,smRewriteRhsUser
43
44syn match smRewriteRhsUser contained "[^\t$]\+" skipwhite nextgroup=smRewriteRhsToken,smRewriteRhsSep
45syn match smRewriteRhsToken contained "\(\$\d\|\$>\d\|\$#\|\$@\|\$:[-_a-zA-Z]\+\|\$[[\]]\|\$@\|\$:\|\$[A-Za-z]\)\+" skipwhite nextgroup=smRewriteRhsUser,smRewriteRhsSep
46
47syn match smRewriteRhsSep contained "\t\+" skipwhite nextgroup=smRewriteComment,smRewriteRhsSep
48syn match smRewriteRhsSep contained "$"
49
50syn match smRewriteComment contained "[^\t$]*$"
51
52" Clauses
53syn match smClauseError "\$\."
54syn match smElse contained "\$|"
55syn match smClauseCont contained "^\t"
56syn region smClause matchgroup=Delimiter start="\$?." matchgroup=Delimiter end="\$\." contains=smElse,smClause,smVar,smClauseCont
57
58" Define the default highlighting.
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020059" Only when an item doesn't have highlighting yet
Bram Moolenaar071d4272004-06-13 20:20:40 +000060
Bram Moolenaarf37506f2016-08-31 22:22:10 +020061hi def link smClause Special
62hi def link smClauseError Error
63hi def link smComment Comment
64hi def link smDefine Statement
65hi def link smElse Delimiter
66hi def link smHeader Statement
67hi def link smHeaderSep String
68hi def link smMesg Special
69hi def link smPrecedence Number
70hi def link smRewrite Statement
71hi def link smRewriteComment Comment
72hi def link smRewriteLhsToken String
73hi def link smRewriteLhsUser Statement
74hi def link smRewriteRhsToken String
75hi def link smRuleset Preproc
76hi def link smTrusted Special
77hi def link smVar String
Bram Moolenaar071d4272004-06-13 20:20:40 +000078
Bram Moolenaar071d4272004-06-13 20:20:40 +000079
80let b:current_syntax = "sm"
81
82" vim: ts=18