{ "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", "name": "Testium TUM", "scopeName": "source.tum", "patterns": [ { "include": "#tum-tokens" }, { "include": "source.yaml" } ], "repository": { "tum-tokens": { "patterns": [ { "include": "#globaldict-reference" }, { "include": "#eval-expression" }, { "include": "#jinja-statement" }, { "include": "#jinja-expression" } ] }, "globaldict-reference": { "name": "variable.other.tum.globaldict", "begin": "\\$\\(", "end": "\\)", "beginCaptures": { "0": { "name": "punctuation.definition.variable.begin.tum" } }, "endCaptures": { "0": { "name": "punctuation.definition.variable.end.tum" } }, "patterns": [ { "name": "entity.name.variable.tum", "match": "[A-Za-z_][A-Za-z0-9_]*" } ] }, "eval-expression": { "name": "meta.embedded.expression.tum", "begin": "<\\|", "end": "\\|>", "beginCaptures": { "0": { "name": "punctuation.definition.expression.begin.tum" } }, "endCaptures": { "0": { "name": "punctuation.definition.expression.end.tum" } }, "patterns": [ { "include": "source.python" } ] }, "jinja-statement": { "name": "meta.embedded.block.jinja.tum", "begin": "\\{%-?", "end": "-?%\\}", "beginCaptures": { "0": { "name": "punctuation.definition.template-statement.begin.tum" } }, "endCaptures": { "0": { "name": "punctuation.definition.template-statement.end.tum" } }, "patterns": [ { "name": "keyword.control.jinja.tum", "match": "\\b(for|endfor|if|elif|else|endif|set|include|extends|block|endblock|macro|endmacro|in|and|or|not|is|with|without|context)\\b" }, { "name": "string.quoted.double.jinja.tum", "match": "\"(?:[^\"\\\\]|\\\\.)*\"" }, { "name": "string.quoted.single.jinja.tum", "match": "'(?:[^'\\\\]|\\\\.)*'" }, { "name": "constant.numeric.jinja.tum", "match": "\\b[0-9]+(?:\\.[0-9]+)?\\b" } ] }, "jinja-expression": { "name": "meta.embedded.expression.jinja.tum", "begin": "\\{\\{-?", "end": "-?\\}\\}", "beginCaptures": { "0": { "name": "punctuation.definition.template-expression.begin.tum" } }, "endCaptures": { "0": { "name": "punctuation.definition.template-expression.end.tum" } }, "patterns": [ { "name": "string.quoted.double.jinja.tum", "match": "\"(?:[^\"\\\\]|\\\\.)*\"" }, { "name": "string.quoted.single.jinja.tum", "match": "'(?:[^'\\\\]|\\\\.)*'" }, { "name": "variable.other.jinja.tum", "match": "[A-Za-z_][A-Za-z0-9_]*" } ] } } }