1" Vim syntax file 2" Language: Elm Filter rules 3" Maintainer: Charles E. Campbell <[email protected]> 4" Last Change: Aug 31, 2016 5" Version: 9 6" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_ELMFILT 7 8" quit when a syntax file was already loaded 9if exists("b:current_syntax") 10 finish 11endif 12 13syn cluster elmfiltIfGroup contains=elmfiltCond,elmfiltOper,elmfiltOperKey,,elmfiltNumber,elmfiltOperKey 14 15syn match elmfiltParenError "[()]" 16syn match elmfiltMatchError "/" 17syn region elmfiltIf start="\<if\>" end="\<then\>" contains=elmfiltParen,elmfiltParenError skipnl skipwhite nextgroup=elmfiltAction 18syn region elmfiltParen contained matchgroup=Delimiter start="(" matchgroup=Delimiter end=")" contains=elmfiltParen,@elmfiltIfGroup,elmfiltThenError 19syn region elmfiltMatch contained matchgroup=Delimiter start="/" skip="\\/" matchgroup=Delimiter end="/" skipnl skipwhite nextgroup=elmfiltOper,elmfiltOperKey 20syn match elmfiltThenError "\<then.*$" 21syn match elmfiltComment "^#.*$" contains=@Spell 22 23syn keyword elmfiltAction contained delete execute executec forward forwardc leave save savecopy skipnl skipwhite nextgroup=elmfiltString 24syn match elmfiltArg contained "[^\\]%[&0-9dDhmrsSty&]"lc=1 25 26syn match elmfiltOperKey contained "\<contains\>" skipnl skipwhite nextgroup=elmfiltString 27syn match elmfiltOperKey contained "\<matches\s" nextgroup=elmfiltMatch,elmfiltSpaceError 28syn keyword elmfiltCond contained cc bcc lines always subject sender from to lines received skipnl skipwhite nextgroup=elmfiltString 29syn match elmfiltNumber contained "\d\+" 30syn keyword elmfiltOperKey contained and not skipnl skipwhite nextgroup=elmfiltOper,elmfiltOperKey,elmfiltString 31syn match elmfiltOper contained "\~" skipnl skipwhite nextgroup=elmfiltMatch 32syn match elmfiltOper contained "<=\|>=\|!=\|<\|<\|=" skipnl skipwhite nextgroup=elmfiltString,elmfiltCond,elmfiltOperKey 33syn region elmfiltString contained start='"' skip='"\(\\\\\)*\\["%]' end='"' contains=elmfiltArg skipnl skipwhite nextgroup=elmfiltOper,elmfiltOperKey,@Spell 34syn region elmfiltString contained start="'" skip="'\(\\\\\)*\\['%]" end="'" contains=elmfiltArg skipnl skipwhite nextgroup=elmfiltOper,elmfiltOperKey,@Spell 35syn match elmfiltSpaceError contained "\s.*$" 36 37" Define the default highlighting. 38if !exists("skip_elmfilt_syntax_inits") 39 40 hi def link elmfiltAction Statement 41 hi def link elmfiltArg Special 42 hi def link elmfiltComment Comment 43 hi def link elmfiltCond Statement 44 hi def link elmfiltIf Statement 45 hi def link elmfiltMatch Special 46 hi def link elmfiltMatchError Error 47 hi def link elmfiltNumber Number 48 hi def link elmfiltOper Operator 49 hi def link elmfiltOperKey Type 50 hi def link elmfiltParenError Error 51 hi def link elmfiltSpaceError Error 52 hi def link elmfiltString String 53 hi def link elmfiltThenError Error 54 55endif 56 57let b:current_syntax = "elmfilt" 58" vim: ts=9 59