neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

sm.vim (2946B)


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