xref: /vim-8.2.3635/runtime/syntax/sm.vim (revision 1d9215b9)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Language:	sendmail
3*1d9215b9SBram Moolenaar" Maintainer:	Charles E. Campbell <[email protected]>
46d5ad4c4SBram Moolenaar" Last Change:	Oct 25, 2016
5*1d9215b9SBram Moolenaar" Version:	9
6e2719096SBram Moolenaar" URL:	http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SM
79da7ff70SBram Moolenaarif exists("b:current_syntax")
8071d4279SBram Moolenaar  finish
9071d4279SBram Moolenaarendif
10071d4279SBram Moolenaar
11071d4279SBram Moolenaar" Comments
12071d4279SBram Moolenaarsyn match smComment	"^#.*$"	contains=@Spell
13071d4279SBram Moolenaar
14071d4279SBram Moolenaar" Definitions, Classes, Files, Options, Precedence, Trusted Users, Mailers
15071d4279SBram Moolenaarsyn match smDefine	"^[CDF]."
16071d4279SBram Moolenaarsyn match smDefine	"^O[AaBcdDeFfgHiLmNoQqrSsTtuvxXyYzZ]"
17071d4279SBram Moolenaarsyn match smDefine	"^O\s"he=e-1
18071d4279SBram Moolenaarsyn match smDefine	"^M[a-zA-Z0-9]\+,"he=e-1
19071d4279SBram Moolenaarsyn match smDefine	"^T"	nextgroup=smTrusted
20071d4279SBram Moolenaarsyn match smDefine	"^P"	nextgroup=smMesg
21071d4279SBram Moolenaarsyn match smTrusted	"\S\+$"		contained
22071d4279SBram Moolenaarsyn match smMesg		"\S*="he=e-1	contained nextgroup=smPrecedence
23071d4279SBram Moolenaarsyn match smPrecedence	"-\=[0-9]\+"		contained
24071d4279SBram Moolenaar
25071d4279SBram Moolenaar" Header Format  H?list-of-mailer-flags?name: format
26071d4279SBram Moolenaarsyn match smHeaderSep contained "[?:]"
27071d4279SBram Moolenaarsyn match smHeader	"^H\(?[a-zA-Z]\+?\)\=[-a-zA-Z_]\+:" contains=smHeaderSep
28071d4279SBram Moolenaar
29071d4279SBram Moolenaar" Variables
30071d4279SBram Moolenaarsyn match smVar		"\$[a-z\.\|]"
31071d4279SBram Moolenaar
32071d4279SBram Moolenaar" Rulesets
33071d4279SBram Moolenaarsyn match smRuleset	"^S\d*"
34071d4279SBram Moolenaar
35071d4279SBram Moolenaar" Rewriting Rules
36071d4279SBram Moolenaarsyn match smRewrite	"^R"			skipwhite nextgroup=smRewriteLhsToken,smRewriteLhsUser
37071d4279SBram Moolenaar
38071d4279SBram Moolenaarsyn match smRewriteLhsUser	contained "[^\t$]\+"		skipwhite nextgroup=smRewriteLhsToken,smRewriteLhsSep
39071d4279SBram Moolenaarsyn match smRewriteLhsToken	contained "\(\$[-*+]\|\$[-=][A-Za-z]\|\$Y\)\+"	skipwhite nextgroup=smRewriteLhsUser,smRewriteLhsSep
40071d4279SBram Moolenaar
41071d4279SBram Moolenaarsyn match smRewriteLhsSep	contained "\t\+"			skipwhite nextgroup=smRewriteRhsToken,smRewriteRhsUser
42071d4279SBram Moolenaar
43071d4279SBram Moolenaarsyn match smRewriteRhsUser	contained "[^\t$]\+"		skipwhite nextgroup=smRewriteRhsToken,smRewriteRhsSep
44071d4279SBram Moolenaarsyn match smRewriteRhsToken	contained "\(\$\d\|\$>\d\|\$#\|\$@\|\$:[-_a-zA-Z]\+\|\$[[\]]\|\$@\|\$:\|\$[A-Za-z]\)\+" skipwhite nextgroup=smRewriteRhsUser,smRewriteRhsSep
45071d4279SBram Moolenaar
46071d4279SBram Moolenaarsyn match smRewriteRhsSep	contained "\t\+"			skipwhite nextgroup=smRewriteComment,smRewriteRhsSep
47071d4279SBram Moolenaarsyn match smRewriteRhsSep	contained "$"
48071d4279SBram Moolenaar
49071d4279SBram Moolenaarsyn match smRewriteComment	contained "[^\t$]*$"
50071d4279SBram Moolenaar
51071d4279SBram Moolenaar" Clauses
52071d4279SBram Moolenaarsyn match smClauseError		"\$\."
53071d4279SBram Moolenaarsyn match smElse		contained	"\$|"
54071d4279SBram Moolenaarsyn match smClauseCont	contained	"^\t"
55071d4279SBram Moolenaarsyn region smClause	matchgroup=Delimiter start="\$?." matchgroup=Delimiter end="\$\." contains=smElse,smClause,smVar,smClauseCont
56071d4279SBram Moolenaar
57071d4279SBram Moolenaar" Define the default highlighting.
5889bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet
59071d4279SBram Moolenaar
60f37506f6SBram Moolenaarhi def link smClause	Special
61f37506f6SBram Moolenaarhi def link smClauseError	Error
62f37506f6SBram Moolenaarhi def link smComment	Comment
63f37506f6SBram Moolenaarhi def link smDefine	Statement
64f37506f6SBram Moolenaarhi def link smElse	Delimiter
65f37506f6SBram Moolenaarhi def link smHeader	Statement
66f37506f6SBram Moolenaarhi def link smHeaderSep	String
67f37506f6SBram Moolenaarhi def link smMesg	Special
68f37506f6SBram Moolenaarhi def link smPrecedence	Number
69f37506f6SBram Moolenaarhi def link smRewrite	Statement
70f37506f6SBram Moolenaarhi def link smRewriteComment	Comment
71f37506f6SBram Moolenaarhi def link smRewriteLhsToken	String
72f37506f6SBram Moolenaarhi def link smRewriteLhsUser	Statement
73f37506f6SBram Moolenaarhi def link smRewriteRhsToken	String
74f37506f6SBram Moolenaarhi def link smRuleset	Preproc
75f37506f6SBram Moolenaarhi def link smTrusted	Special
76f37506f6SBram Moolenaarhi def link smVar		String
77071d4279SBram Moolenaar
78071d4279SBram Moolenaarlet b:current_syntax = "sm"
79071d4279SBram Moolenaar
80071d4279SBram Moolenaar" vim: ts=18
81