1" Vim syntax file 2" Language: Elm Filter rules 3" Maintainer: Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz> 4" Last Change: Sep 11, 2006 5" Version: 5 6" URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax 7 8" For version 5.x: Clear all syntax items 9" For version 6.x: Quit when a syntax file was already loaded 10if version < 600 11 syntax clear 12elseif exists("b:current_syntax") 13 finish 14endif 15 16syn cluster elmfiltIfGroup contains=elmfiltCond,elmfiltOper,elmfiltOperKey,,elmfiltNumber,elmfiltOperKey 17 18syn match elmfiltParenError "[()]" 19syn match elmfiltMatchError "/" 20syn region elmfiltIf start="\<if\>" end="\<then\>" contains=elmfiltParen,elmfiltParenError skipnl skipwhite nextgroup=elmfiltAction 21syn region elmfiltParen contained matchgroup=Delimiter start="(" matchgroup=Delimiter end=")" contains=elmfiltParen,@elmfiltIfGroup,elmfiltThenError 22syn region elmfiltMatch contained matchgroup=Delimiter start="/" skip="\\/" matchgroup=Delimiter end="/" skipnl skipwhite nextgroup=elmfiltOper,elmfiltOperKey 23syn match elmfiltThenError "\<then.*$" 24syn match elmfiltComment "^#.*$" contains=@Spell 25 26syn keyword elmfiltAction contained delete execute executec forward forwardc leave save savecopy skipnl skipwhite nextgroup=elmfiltString 27syn match elmfiltArg contained "[^\\]%[&0-9dDhmrsSty&]"lc=1 28 29syn match elmfiltOperKey contained "\<contains\>" skipnl skipwhite nextgroup=elmfiltString 30syn match elmfiltOperKey contained "\<matches\s" nextgroup=elmfiltMatch,elmfiltSpaceError 31syn keyword elmfiltCond contained cc bcc lines always subject sender from to lines received skipnl skipwhite nextgroup=elmfiltString 32syn match elmfiltNumber contained "\d\+" 33syn keyword elmfiltOperKey contained and not skipnl skipwhite nextgroup=elmfiltOper,elmfiltOperKey,elmfiltString 34syn match elmfiltOper contained "\~" skipnl skipwhite nextgroup=elmfiltMatch 35syn match elmfiltOper contained "<=\|>=\|!=\|<\|<\|=" skipnl skipwhite nextgroup=elmfiltString,elmfiltCond,elmfiltOperKey 36syn region elmfiltString contained start='"' skip='"\(\\\\\)*\\["%]' end='"' contains=elmfiltArg skipnl skipwhite nextgroup=elmfiltOper,elmfiltOperKey,@Spell 37syn region elmfiltString contained start="'" skip="'\(\\\\\)*\\['%]" end="'" contains=elmfiltArg skipnl skipwhite nextgroup=elmfiltOper,elmfiltOperKey,@Spell 38syn match elmfiltSpaceError contained "\s.*$" 39 40" Define the default highlighting. 41" For version 5.7 and earlier: only when not done already 42" For version 5.8 and later: only when an item doesn't have highlighting yet 43if version >= 508 || !exists("did_elmfilt_syntax_inits") 44 if version < 508 45 let did_elmfilt_syntax_inits = 1 46 command -nargs=+ HiLink hi link <args> 47 else 48 command -nargs=+ HiLink hi def link <args> 49 endif 50 51 HiLink elmfiltAction Statement 52 HiLink elmfiltArg Special 53 HiLink elmfiltComment Comment 54 HiLink elmfiltCond Statement 55 HiLink elmfiltIf Statement 56 HiLink elmfiltMatch Special 57 HiLink elmfiltMatchError Error 58 HiLink elmfiltNumber Number 59 HiLink elmfiltOper Operator 60 HiLink elmfiltOperKey Type 61 HiLink elmfiltParenError Error 62 HiLink elmfiltSpaceError Error 63 HiLink elmfiltString String 64 HiLink elmfiltThenError Error 65 66 delcommand HiLink 67endif 68 69let b:current_syntax = "elmfilt" 70" vim: ts=9 71