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 60command -nargs=+ HiLink hi def link <args> 61 62HiLink smClause Special 63HiLink smClauseError Error 64HiLink smComment Comment 65HiLink smDefine Statement 66HiLink smElse Delimiter 67HiLink smHeader Statement 68HiLink smHeaderSep String 69HiLink smMesg Special 70HiLink smPrecedence Number 71HiLink smRewrite Statement 72HiLink smRewriteComment Comment 73HiLink smRewriteLhsToken String 74HiLink smRewriteLhsUser Statement 75HiLink smRewriteRhsToken String 76HiLink smRuleset Preproc 77HiLink smTrusted Special 78HiLink smVar String 79 80delcommand HiLink 81 82let b:current_syntax = "sm" 83 84" vim: ts=18 85