From 0ffae1896b79a89ba3f6ad0f7a822990c5fd3c75 Mon Sep 17 00:00:00 2001 From: bvaudour Date: Fri, 30 Jun 2017 12:31:18 +0200 Subject: [PATCH] Add twig syntax (https://twig.sensiolabs.org/) --- runtime/syntax/twig.yaml | 55 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 runtime/syntax/twig.yaml diff --git a/runtime/syntax/twig.yaml b/runtime/syntax/twig.yaml new file mode 100644 index 00000000..b5409d12 --- /dev/null +++ b/runtime/syntax/twig.yaml @@ -0,0 +1,55 @@ +filetype: twig + +detect: + filename: "\\.twig$" + +rules: + - include: "html" + - symbol.tag: + start: "\\{\\{[[:space:]]" + end: "[[:space:]]\\}\\}" + rules: + - identifier: "\\b(abs|batch|capitalize|convert|encoding|date(_modify)?|default|escape|first|format|join|json_encode|keys|last|length|lower|merge|nl2br|number_format|raw|replace|reverse|round|slice|sort|split|striptags|title|trim|upper|url_encode)\\b" + - identifier.class: "\\b(attribute|block|constant|cycle|date|dump|include|max|min|parent|random|range|source|template_from_string)\\b" + - type.keyword: "\\b(and|as|constant|defined|divisibleby|empty|even|false|in|is|iterable|not|null|odd|or|same(as)?|true|with)\\b" + - symbol.operator: "[.:;,+*?|=!\\%]|<|>|/|-|&" + - symbol.brackets: "[(){}]|\\[|\\]" + - constant.number: "\\b[0-9]+\\b|\\b0x[0-9A-Fa-f]+\\b" + - constant.string: + start: "\"" + end: "\"" + skip: "\\\\" + rules: + - constant.specialChar: "\\\\." + - constant.string: + start: "'" + end: "'" + skip: "\\\\" + rules: + - constant.specialChar: "\\\\." + - symbol.tag: + start: "\\{%[[:space:]]" + end: "[[:space:]]%\\}" + rules: + - identifier: "\\b(abs|batch|capitalize|convert|encoding|date(_modify)?|default|escape|first|format|join|json_encode|keys|last|length|lower|merge|nl2br|number_format|raw|replace|reverse|round|slice|sort|split|striptags|title|trim|upper|url_encode)\\b" + - identifier.class: "\\b(attribute|block|constant|cycle|date|dump|include|max|min|parent|random|range|source|template_from_string)\\b" + - type.keyword: "\\b(and|as|constant|defined|divisibleby|empty|even|false|in|is|iterable|not|null|odd|or|same(as)?|true|with)\\b" + - symbol.operator: "[.:;,+*?|=!\\%]|<|>|/|-|&" + - symbol.brackets: "[(){}]|\\[|\\]" + - constant.number: "\\b[0-9]+\\b|\\b0x[0-9A-Fa-f]+\\b" + - constant.string: + start: "\"" + end: "\"" + skip: "\\\\" + rules: + - constant.specialChar: "\\\\." + - constant.string: + start: "'" + end: "'" + skip: "\\\\" + rules: + - constant.specialChar: "\\\\." + - comment: + start: "\\{#" + end: "#\\}" + rules: []