if version < 600
syntax clear
elseif exists("b:current_syntax")
finish
endif
syn keyword LiquidKeyword else endfor endif for if in contained
" These are variables that are made available inside a for loop
syn keyword LiquidSpecial forloop length index index0 rindex rindex0 first last contained
" These are the operators Liquid supports.
syn match LiquidOperator "\(==\|!=\|<\|>\|>=\|<=\||\)" contained
" Pipes:
syn match LiquidPipe "\(\||\)" contained
" Strings:
syn region LiquidString start=+"+ skip=/\\"/ end=+"+ contained
syn region LiquidString start=+'+ skip=/\\'/ end=+-+ contained
" Numbers:
syn match LiquidNumber "-\=\<\d*\.\=[0-9_]\>" contained
" Comments:
syn region LiquidComment start='{% comment %}' end='{% endcomment %}'
" Output:
syn match LiquidTagStart '{%'
syn match LiquidTagEnd "%}"
syn region LiquidTags start='{%' keepend end='%}' contains=LiquidKeyword,LiquidSpecial,LiquidOperator,LiquidString,LiquidPipe,LiquidNumber
syn region LiquidOutput start='{{' end='}}'
hi link LiquidComment Comment
hi link LiquidNumber Number
hi link LiquidString String
hi link LiquidKeyword Keyword
hi link LiquidPipe Special
hi link LiquidSpecial Special
hi link LiquidOutput Special
hi link LiquidOperator Operator
hi link LiquidTagStart Special
hi link LiquidTagEnd Special
let b:current_syntax="liquid"