1" Vim syntax file 2" Language: sendmail 3" Maintainer: Charles E. Campbell <[email protected]> 4" Last Change: Oct 23, 2014 5" Version: 7 6" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SM 7 8if exists("b:current_syntax") 9 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. 59" Only when an item doesn't have highlighting yet 60 61hi 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 78 79 80let b:current_syntax = "sm" 81 82" vim: ts=18 83