tm-grammars
Version:
Collecton of TextMate grammars in JSON
1,057 lines (1,056 loc) • 26.2 kB
JSON
{
"displayName": "Liquid",
"fileTypes": [
"liquid"
],
"foldingStartMarker": "{%-?\\s*(capture|case|comment|for|form|if|javascript|paginate|schema|style)[^(%})]+%}",
"foldingStopMarker": "{%\\s*(endcapture|endcase|endcomment|endfor|endform|endif|endjavascript|endpaginate|endschema|endstyle)[^(%})]+%}",
"injections": {
"L:meta.embedded.block.js, L:meta.embedded.block.css, L:meta.embedded.block.html, L:string.quoted": {
"patterns": [
{
"include": "#injection"
}
]
}
},
"name": "liquid",
"patterns": [
{
"include": "#core"
}
],
"repository": {
"attribute": {
"begin": "\\w+:",
"beginCaptures": {
"0": {
"name": "entity.other.attribute-name.liquid"
}
},
"end": "(?=,|%}|}}|\\|)",
"patterns": [
{
"include": "#value_expression"
}
]
},
"attribute_liquid": {
"begin": "\\w+:",
"beginCaptures": {
"0": {
"name": "entity.other.attribute-name.liquid"
}
},
"end": "(?=,|\\|)|$",
"patterns": [
{
"include": "#value_expression"
}
]
},
"comment_block": {
"begin": "{%-?\\s*comment\\s*-?%}",
"end": "{%-?\\s*endcomment\\s*-?%}",
"name": "comment.block.liquid",
"patterns": [
{
"include": "#comment_block"
},
{
"match": "(.(?!{%-?\\s*(comment|endcomment)\\s*-?%}))*."
}
]
},
"core": {
"patterns": [
{
"include": "#raw_tag"
},
{
"include": "#doc_tag"
},
{
"include": "#comment_block"
},
{
"include": "#style_codefence"
},
{
"include": "#stylesheet_codefence"
},
{
"include": "#json_codefence"
},
{
"include": "#javascript_codefence"
},
{
"include": "#object"
},
{
"include": "#tag"
},
{
"include": "text.html.basic"
}
]
},
"doc_tag": {
"begin": "{%-?\\s*(doc)\\s*-?%}",
"beginCaptures": {
"0": {
"name": "meta.tag.liquid"
},
"1": {
"name": "entity.name.tag.doc.liquid"
}
},
"contentName": "comment.block.documentation.liquid",
"end": "{%-?\\s*(enddoc)\\s*-?%}",
"endCaptures": {
"0": {
"name": "meta.tag.liquid"
},
"1": {
"name": "entity.name.tag.doc.liquid"
}
},
"name": "meta.block.doc.liquid",
"patterns": [
{
"include": "#liquid_doc_param_tag"
},
{
"include": "#liquid_doc_example_tag"
},
{
"include": "#liquid_doc_fallback_tag"
}
]
},
"filter": {
"captures": {
"1": {
"name": "support.function.liquid"
}
},
"match": "\\|\\s*((?![\\.0-9])[a-zA-Z0-9_-]+\\:?)\\s*"
},
"injection": {
"patterns": [
{
"include": "#raw_tag"
},
{
"include": "#comment_block"
},
{
"include": "#object"
},
{
"include": "#tag_injection"
}
]
},
"invalid_range": {
"match": "\\((.(?!\\.\\.))+\\)",
"name": "invalid.illegal.range.liquid"
},
"javascript_codefence": {
"begin": "({%-?)\\s*(javascript)\\s*(-?%})",
"beginCaptures": {
"0": {
"name": "meta.tag.metadata.javascript.start.liquid"
},
"1": {
"name": "punctuation.definition.tag.begin.liquid"
},
"2": {
"name": "entity.name.tag.javascript.liquid"
},
"3": {
"name": "punctuation.definition.tag.begin.liquid"
}
},
"contentName": "meta.embedded.block.js",
"end": "({%-?)\\s*(endjavascript)\\s*(-?%})",
"endCaptures": {
"0": {
"name": "meta.tag.metadata.javascript.end.liquid"
},
"1": {
"name": "punctuation.definition.tag.end.liquid"
},
"2": {
"name": "entity.name.tag.javascript.liquid"
},
"3": {
"name": "punctuation.definition.tag.end.liquid"
}
},
"name": "meta.block.javascript.liquid",
"patterns": [
{
"include": "source.js"
}
]
},
"json_codefence": {
"begin": "({%-?)\\s*(schema)\\s*(-?%})",
"beginCaptures": {
"0": {
"name": "meta.tag.metadata.schema.start.liquid"
},
"1": {
"name": "punctuation.definition.tag.begin.liquid"
},
"2": {
"name": "entity.name.tag.schema.liquid"
},
"3": {
"name": "punctuation.definition.tag.begin.liquid"
}
},
"contentName": "meta.embedded.block.json",
"end": "({%-?)\\s*(endschema)\\s*(-?%})",
"endCaptures": {
"0": {
"name": "meta.tag.metadata.schema.end.liquid"
},
"1": {
"name": "punctuation.definition.tag.end.liquid"
},
"2": {
"name": "entity.name.tag.schema.liquid"
},
"3": {
"name": "punctuation.definition.tag.end.liquid"
}
},
"name": "meta.block.schema.liquid",
"patterns": [
{
"include": "source.json"
}
]
},
"language_constant": {
"match": "\\b(false|true|nil|blank)\\b|empty(?!\\?)",
"name": "constant.language.liquid"
},
"liquid_doc_example_tag": {
"captures": {
"1": {
"name": "storage.type.class.liquid"
}
},
"match": "(@example)\\b"
},
"liquid_doc_fallback_tag": {
"captures": {
"1": {
"name": "storage.type.class.liquid"
}
},
"match": "(@\\w+)\\b"
},
"liquid_doc_param_tag": {
"captures": {
"1": {
"name": "storage.type.class.liquid"
},
"2": {
"name": "entity.name.type.instance.liquid"
},
"3": {
"name": "variable.other.liquid"
}
},
"match": "(@param)\\s+(?:({[^}]*}?)\\s+)?([a-zA-Z_]\\w*)?"
},
"number": {
"match": "((-|\\+)\\s*)?[0-9]+(\\.[0-9]+)?",
"name": "constant.numeric.liquid"
},
"object": {
"begin": "(?