You've already forked Epicnabbo-Catalogus-Updated-Daily
520 lines
11 KiB
JSON
520 lines
11 KiB
JSON
{
|
|
"name": "Antlers (Statamic Syntax)",
|
|
"fileTypes": ["antlers.html", "html", "htm", "xhtml"],
|
|
"scopeName": "text.html.statamic",
|
|
"injections": {
|
|
"text.html.statamic - (meta.embedded | meta.tag), L:((text.html.statamic meta.tag) - (meta.embedded.block.php | meta.embedded.line.php)), L:(source.js - (meta.embedded.block.php | meta.embedded.line.php)), L:(source.css - (meta.embedded.block.php | meta.embedded.line.php))": {
|
|
"patterns": [
|
|
{
|
|
"include": "#php-tag"
|
|
}
|
|
]
|
|
},
|
|
"text.html.statamic": {
|
|
"patterns": [
|
|
{
|
|
"include": "#statamic-comments"
|
|
},
|
|
{
|
|
"include": "#antlers-tags"
|
|
}
|
|
]
|
|
},
|
|
"text.html.statamic - (meta.embedded | meta.tag | comment.block.statamic), L:(text.html.statamic meta.tag - (comment.block.statamic | meta.embedded.statamic))": {
|
|
"patterns": [
|
|
{
|
|
"comment": "This is set to use XHTML standards, but you can change that by changing .strict to .basic for HTML standards",
|
|
"include": "text.html.basic"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#php-tag"
|
|
},
|
|
{
|
|
"include": "#statamic-comments"
|
|
},
|
|
{
|
|
"include": "#frontMatter"
|
|
},
|
|
{
|
|
"include": "#antlers-tags"
|
|
}
|
|
],
|
|
"repository": {
|
|
"php-tag": {
|
|
"patterns": [
|
|
{
|
|
"begin": "<\\?(?i:php|=)?(?![^?]*\\?>)",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "punctuation.section.embedded.begin.statamic"
|
|
}
|
|
},
|
|
"end": "(\\?)>",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "punctuation.section.embedded.end.statamic"
|
|
},
|
|
"1": {
|
|
"name": "source.php"
|
|
}
|
|
},
|
|
"name": "meta.embedded.block.statamic",
|
|
"contentName": "source.php",
|
|
"patterns": [
|
|
{
|
|
"include": "source.php"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?<!@){{([\\$\\?]\\s?)",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "punctuation.section.embedded.begin.statamic"
|
|
}
|
|
},
|
|
"end": "(\\s?)[\\$\\?]}}",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "punctuation.section.embedded.end.statamic"
|
|
},
|
|
"1": {
|
|
"name": "source.php"
|
|
}
|
|
},
|
|
"name": "meta.embedded.line.statamic",
|
|
"contentName": "source.php",
|
|
"patterns": [
|
|
{
|
|
"include": "source.php"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "<\\?(?i:php|=)?",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "punctuation.section.embedded.begin.statamic"
|
|
}
|
|
},
|
|
"end": "(\\?)>",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "punctuation.section.embedded.end.statamic"
|
|
},
|
|
"1": {
|
|
"name": "source.php"
|
|
}
|
|
},
|
|
"name": "meta.embedded.line.statamic",
|
|
"contentName": "source.php",
|
|
"patterns": [
|
|
{
|
|
"include": "source.php"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"frontMatter": {
|
|
"begin": "\\A-{3}\\s*$",
|
|
"contentName": "meta.embedded.block.frontmatter",
|
|
"patterns": [
|
|
{
|
|
"include": "source.yaml"
|
|
}
|
|
],
|
|
"end": "(^|\\G)-{3}|\\.{3}\\s*$"
|
|
},
|
|
"statamic-comments": {
|
|
"begin": "{{#",
|
|
"end": "#}}",
|
|
"name": "comment.block.statamic"
|
|
},
|
|
"antlers-tags": {
|
|
"begin": "(?<!@){{(?!\\$)(\\s?)",
|
|
"end": "(\\s?)}}",
|
|
"name": "meta.embedded.block.statamic",
|
|
"patterns": [
|
|
{
|
|
"include": "#statamic-comments"
|
|
},
|
|
{
|
|
"include": "#php-tag"
|
|
},
|
|
{
|
|
"include": "#antlers-conditionals"
|
|
},
|
|
{
|
|
"include": "#antlers-expression"
|
|
}
|
|
]
|
|
},
|
|
"antlers-conditionals": {
|
|
"match": "(?<!:)(/?else|/?elseif|/?if|/?unless|endif|endunless|unlesselse)",
|
|
"name": "keyword.control.statamic"
|
|
},
|
|
"string-double-quoted": {
|
|
"begin": "\"",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "punctuation.definition.string.begin.statamic"
|
|
}
|
|
},
|
|
"end": "\"",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "punctuation.definition.string.end.statamic"
|
|
}
|
|
},
|
|
"name": "string.quoted.double.statamic",
|
|
"patterns": [
|
|
{
|
|
"begin": "(?<!@){(\\s?)",
|
|
"end": "(\\s?)}",
|
|
"patterns": [
|
|
{
|
|
"include": "#antlers-expression"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"string-single-quoted": {
|
|
"begin": "'",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "punctuation.definition.string.begin.statamic"
|
|
}
|
|
},
|
|
"end": "'",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "punctuation.definition.string.end.statamic"
|
|
}
|
|
},
|
|
"name": "string.quoted.single.statamic",
|
|
"patterns": [
|
|
{
|
|
"match": "\\\\[\\\\']",
|
|
"name": "constant.character.escape.statamic"
|
|
},
|
|
{
|
|
"begin": "(?<!@){(\\s?)",
|
|
"end": "(\\s?)}",
|
|
"patterns": [
|
|
{
|
|
"include": "#antlers-expression"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"antlers-strings": {
|
|
"patterns": [
|
|
{
|
|
"include": "#string-double-quoted"
|
|
},
|
|
{
|
|
"include": "#string-single-quoted"
|
|
}
|
|
]
|
|
},
|
|
"antlers-expression": {
|
|
"patterns": [
|
|
{
|
|
"match": ";",
|
|
"name": "punctuation.terminator.expression.statamic"
|
|
},
|
|
{
|
|
"include": "#antlers-strings"
|
|
},
|
|
{
|
|
"include": "#antlers-numbers"
|
|
},
|
|
{
|
|
"match": "=>",
|
|
"name": "keyword.operator.key.statamic"
|
|
},
|
|
{
|
|
"match": "->",
|
|
"name": "keyword.operator.class.statamic"
|
|
},
|
|
{
|
|
"include": "#statamic-explicit-tags"
|
|
},
|
|
{
|
|
"include": "#statamic-core-tags"
|
|
},
|
|
{
|
|
"match": "===|==|!==|!=|<>",
|
|
"name": "keyword.operator.comparison.statamic"
|
|
},
|
|
{
|
|
"match": "\\&=?",
|
|
"name": "keyword.operator.string.statamic"
|
|
},
|
|
{
|
|
"match": "=|\\+=|\\-=|\\*\\*?=|/=|%=|\\|=|\\^=|<<=|>>=",
|
|
"name": "keyword.operator.assignment.statamic"
|
|
},
|
|
{
|
|
"match": "(?i)(!|\\?\\?|\\?=|\\?|&&|&|\\|\\|)|\\b(and|or|xor)\\b",
|
|
"name": "keyword.operator.logical.statamic"
|
|
},
|
|
{
|
|
"match": "(?i)\\b(bwa|bwo|bxor|bnot|bsl|bsr)\\b",
|
|
"name": "keyword.operator.bitwise.statamic"
|
|
},
|
|
{
|
|
"match": "<=>|<=|>=|<|>",
|
|
"name": "keyword.operator.comparison.statamic"
|
|
},
|
|
{
|
|
"match": "\\-|\\+|\\*\\*?|/|%",
|
|
"name": "keyword.operator.arithmetic.statamic"
|
|
},
|
|
{
|
|
"begin": "(arr|list|switch)\\s*(\\()",
|
|
"beginCaptures": {
|
|
"1": {
|
|
"name": "support.function.construct.statamic"
|
|
},
|
|
"2": {
|
|
"name": "punctuation.definition.array.begin.bracket.round.statamic"
|
|
}
|
|
},
|
|
"end": "\\)|(?=\\?>)",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "punctuation.definition.array.end.bracket.round.statamic"
|
|
}
|
|
},
|
|
"name": "meta.array.statamic",
|
|
"patterns": [
|
|
{
|
|
"include": "#antlers-expression"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?<!@){(\\s?)",
|
|
"end": "(\\s?)}",
|
|
"patterns": [
|
|
{
|
|
"include": "#antlers-expression"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"include": "#antlers-tag-parameter-variable"
|
|
},
|
|
{
|
|
"include": "#antlers-language-operators"
|
|
},
|
|
{
|
|
"include": "#antlers-variable"
|
|
},
|
|
{
|
|
"include": "#antlers-modifier-pipe"
|
|
},
|
|
{
|
|
"include": "#antlers-variable-modifier-name"
|
|
},
|
|
{
|
|
"include": "#antlers-variable-modifiers"
|
|
},
|
|
{
|
|
"include": "#antlers-constants"
|
|
}
|
|
]
|
|
},
|
|
"antlers-tag-parameter-variable": {
|
|
"match": "(:?([\\S:]+?)(=)('|\")([^\\4]*?)(\\4))",
|
|
"captures": {
|
|
"1": {
|
|
"patterns": [
|
|
{
|
|
"match": ":([\\S:]+?)(=)('|\")(.*?)(\\3)",
|
|
"captures": {
|
|
"1": {
|
|
"name": "entity.other.attribute-name"
|
|
},
|
|
"2": {
|
|
"name": "keyword.operator.assignment.statamic"
|
|
},
|
|
"3": {
|
|
"name": "punctuation.definition.string.begin.statamic"
|
|
},
|
|
"4": {
|
|
"patterns": [
|
|
{
|
|
"include": "#antlers-expression"
|
|
}
|
|
]
|
|
},
|
|
"5": {
|
|
"name": "punctuation.definition.string.end.statamic"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"match": "([\\S]+?)(=)(('|\")(.*?)(\\4))",
|
|
"captures": {
|
|
"1": {
|
|
"name": "entity.other.attribute-name"
|
|
},
|
|
"2": {
|
|
"name": "keyword.operator.assignment.statamic"
|
|
},
|
|
"3": {
|
|
"patterns": [
|
|
{
|
|
"include": "#string-single-quoted"
|
|
},
|
|
{
|
|
"include": "#string-double-quoted"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"antlers-constants": {
|
|
"match": "(\\G|\\s|\\b)(true|TRUE|false|FALSE|yes|YES|no|NO|null|as)\\s",
|
|
"captures": {
|
|
"2": {
|
|
"name": "constant.language.statamic"
|
|
}
|
|
}
|
|
},
|
|
"antlers-variable-modifier-name": {
|
|
"match": "(\\s)?(\\|)(\\s)?(\\w+((^:([a-zA-Z0-9-_/-@]+)){1,2})?|((-|\\+|\\*|/|\\^|\\%):(\\d*)?\\.?(\\d+)))+",
|
|
"captures": {
|
|
"2": {
|
|
"name": "keyword.operator.statamic"
|
|
},
|
|
"4": {
|
|
"name": "support.function.statamic"
|
|
}
|
|
}
|
|
},
|
|
"antlers-variable-modifiers": {
|
|
"match": "(\\s)?(\\|)(\\s)?(\\w+((:([a-zA-Z0-9-_/-@]+)){1,2})?|((-|\\+|\\*|/|\\^|\\%):(\\d*)?\\.?(\\d+)))+",
|
|
"captures": {
|
|
"2": {
|
|
"name": "keyword.operator.statamic"
|
|
},
|
|
"4": {
|
|
"name": "support.function.statamic",
|
|
"patterns": [
|
|
{
|
|
"include": "#antlers-expression"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"statamic-core-tags": {
|
|
"match": "\\G(/?\\w+)+",
|
|
"captures": {
|
|
"1": {
|
|
"name": "variable.statamic",
|
|
"patterns": [
|
|
{
|
|
"include": "#core-tag-names"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"statamic-explicit-tags": {
|
|
"match": "\\G(/?%\\w+)+",
|
|
"captures": {
|
|
"1": {
|
|
"name": "entity.name.tag.statamic"
|
|
}
|
|
}
|
|
},
|
|
"statamic-core-closing-tags": {
|
|
"match": "\\/(\\w+)+",
|
|
"captures": {
|
|
"1": {
|
|
"name": "variable.statamic",
|
|
"patterns": [
|
|
{
|
|
"include": "#core-tag-names"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"antlers-language-operators": {
|
|
"match": "(\\w+)[\\s]",
|
|
"captures": {
|
|
"1": {
|
|
"name": "variable.statamic",
|
|
"patterns": [
|
|
{
|
|
"include": "#antlers-numbers"
|
|
},
|
|
{
|
|
"include": "#language-operators"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"antlers-variable": {
|
|
"match": "(/?\\w+)(:)?(\\w+)?",
|
|
"captures": {
|
|
"1": {
|
|
"name": "variable.statamic",
|
|
"patterns": []
|
|
},
|
|
"2": {
|
|
"name": "keyword.operator.statamic"
|
|
},
|
|
"3": {
|
|
"name": "variable.statamic",
|
|
"patterns": [
|
|
{
|
|
"include": "$self"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"antlers-numbers": {
|
|
"match": "0|[1-9](?:_?[0-9]+)*",
|
|
"name": "constant.numeric.statamic"
|
|
},
|
|
"antlers-modifier-pipe": {
|
|
"match": "(\\|)",
|
|
"name": "keyword.operator.other.statamic"
|
|
},
|
|
"core-tag-names": {
|
|
"patterns": [
|
|
{
|
|
"match": "(?i)\\b(taxonomy|collection|asset|form|assets|cache|can|dd|ddd|dump|get_content|get_error|get_errors|get_files|glide|in|increment|installed|is|iterate|foreach|link|locales|markdown|member|mix|nav|not_found|404|obfuscate|parent|partial|path|query|range|loop|redirect|relate|rotate|route|scope|section|session|set|structure|svg|theme|trans|trans_choice|user|users|widont|yields|yield|slot|once|noparse|view)\\b",
|
|
"name": "entity.name.tag.statamic"
|
|
}
|
|
]
|
|
},
|
|
"language-operators": {
|
|
"patterns": [
|
|
{
|
|
"match": "(?i)\\b(pluck|take|skip|arr|orderby|groupby|merge|where|switch|bwa|bwo|bxor|bnot|bsl|bsr|if|elseif|else|void)(\\b)",
|
|
"name": "support.function.array.statamic"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
} |