%YAML 1.2 --- name: Liquid file_extensions: - liquid scope: text.html.liquid contexts: main: - match: '\{\{-?' scope: punctuation.section.embedded.begin.liquid push: liquid-output - match: '\{%-?\s*comment\b[^%]*-?%\}' scope: comment.block.liquid push: liquid-comment - match: '\{%-?' scope: punctuation.section.embedded.begin.liquid push: liquid-tag - include: scope:text.html.basic liquid-output: - meta_scope: meta.embedded.liquid - match: '-?\}\}' scope: punctuation.section.embedded.end.liquid pop: true - include: liquid-values liquid-tag: - meta_scope: meta.embedded.liquid - match: '-?%\}' scope: punctuation.section.embedded.end.liquid pop: true - match: '\b(assign|capture|case|comment|cycle|decrement|echo|elsif|else|endcase|endcapture|endif|endfor|endunless|endcomment|for|if|include|increment|liquid|paginate|raw|render|tablerow|unless|when)\b' scope: keyword.control.liquid - match: '[><=!]=?|\.|:' scope: keyword.operator.liquid - include: liquid-values liquid-values: - match: '\|\s*[a-zA-Z_][\w-]*' scope: support.function.filter.liquid - match: '\b(true|false|nil|blank|empty|contains)\b' scope: constant.language.liquid - match: '\b\d+(\.\d+)?\b' scope: constant.numeric.liquid - match: '"([^"\\]|\\.)*"' scope: string.quoted.double.liquid - match: "'([^'\\\\]|\\\\.)*'" scope: string.quoted.single.liquid - match: '[a-zA-Z_][\w.-]*' scope: variable.other.liquid - match: '[,()\[\]]' scope: punctuation.separator.liquid liquid-comment: - meta_scope: comment.block.liquid - match: '\{%-?\s*endcomment\s*-?%\}' scope: comment.block.liquid pop: true