neovim/runtime/syntax/elmfilt.vim

60 lines
2.9 KiB
VimL

" Vim syntax file
" Language: Elm Filter rules
" Maintainer: This runtime file is looking for a new maintainer.
" Former Maintainer: Charles E. Campbell
" Last Change: Aug 31, 2016
" Version: 9
" Former URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_ELMFILT
" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
syn cluster elmfiltIfGroup contains=elmfiltCond,elmfiltOper,elmfiltOperKey,,elmfiltNumber,elmfiltOperKey
syn match elmfiltParenError "[()]"
syn match elmfiltMatchError "/"
syn region elmfiltIf start="\<if\>" end="\<then\>" contains=elmfiltParen,elmfiltParenError skipnl skipwhite nextgroup=elmfiltAction
syn region elmfiltParen contained matchgroup=Delimiter start="(" matchgroup=Delimiter end=")" contains=elmfiltParen,@elmfiltIfGroup,elmfiltThenError
syn region elmfiltMatch contained matchgroup=Delimiter start="/" skip="\\/" matchgroup=Delimiter end="/" skipnl skipwhite nextgroup=elmfiltOper,elmfiltOperKey
syn match elmfiltThenError "\<then.*$"
syn match elmfiltComment "^#.*$" contains=@Spell
syn keyword elmfiltAction contained delete execute executec forward forwardc leave save savecopy skipnl skipwhite nextgroup=elmfiltString
syn match elmfiltArg contained "[^\\]%[&0-9dDhmrsSty&]"lc=1
syn match elmfiltOperKey contained "\<contains\>" skipnl skipwhite nextgroup=elmfiltString
syn match elmfiltOperKey contained "\<matches\s" nextgroup=elmfiltMatch,elmfiltSpaceError
syn keyword elmfiltCond contained cc bcc lines always subject sender from to lines received skipnl skipwhite nextgroup=elmfiltString
syn match elmfiltNumber contained "\d\+"
syn keyword elmfiltOperKey contained and not skipnl skipwhite nextgroup=elmfiltOper,elmfiltOperKey,elmfiltString
syn match elmfiltOper contained "\~" skipnl skipwhite nextgroup=elmfiltMatch
syn match elmfiltOper contained "<=\|>=\|!=\|<\|<\|=" skipnl skipwhite nextgroup=elmfiltString,elmfiltCond,elmfiltOperKey
syn region elmfiltString contained start='"' skip='"\(\\\\\)*\\["%]' end='"' contains=elmfiltArg skipnl skipwhite nextgroup=elmfiltOper,elmfiltOperKey,@Spell
syn region elmfiltString contained start="'" skip="'\(\\\\\)*\\['%]" end="'" contains=elmfiltArg skipnl skipwhite nextgroup=elmfiltOper,elmfiltOperKey,@Spell
syn match elmfiltSpaceError contained "\s.*$"
" Define the default highlighting.
if !exists("skip_elmfilt_syntax_inits")
hi def link elmfiltAction Statement
hi def link elmfiltArg Special
hi def link elmfiltComment Comment
hi def link elmfiltCond Statement
hi def link elmfiltIf Statement
hi def link elmfiltMatch Special
hi def link elmfiltMatchError Error
hi def link elmfiltNumber Number
hi def link elmfiltOper Operator
hi def link elmfiltOperKey Type
hi def link elmfiltParenError Error
hi def link elmfiltSpaceError Error
hi def link elmfiltString String
hi def link elmfiltThenError Error
endif
let b:current_syntax = "elmfilt"
" vim: ts=9