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