mirror of
https://github.com/sharkdp/bat
synced 2024-11-16 21:25:56 +00:00
663 lines
22 KiB
YAML
Vendored
663 lines
22 KiB
YAML
Vendored
%YAML 1.2
|
|
---
|
|
# http://www.sublimetext.com/docs/3/syntax.html
|
|
name: HTML (Twig)
|
|
file_extensions:
|
|
- twig
|
|
- html.twig
|
|
scope: text.html.twig
|
|
contexts:
|
|
main:
|
|
- match: '(<)([a-zA-Z0-9:]++)(?=[^>]*></\2>)'
|
|
captures:
|
|
1: punctuation.definition.tag.html
|
|
2: entity.name.tag.html
|
|
push:
|
|
- meta_scope: meta.tag.any.html
|
|
- match: (>(<)/)(\2)(>)
|
|
captures:
|
|
1: punctuation.definition.tag.html
|
|
2: meta.scope.between-tag-pair.html
|
|
3: entity.name.tag.html
|
|
4: punctuation.definition.tag.html
|
|
pop: true
|
|
- include: tag-stuff
|
|
- match: (<\?)(xml)
|
|
captures:
|
|
1: punctuation.definition.tag.html
|
|
2: entity.name.tag.xml.html
|
|
push:
|
|
- meta_scope: meta.tag.preprocessor.xml.html
|
|
- match: (\?>)
|
|
captures:
|
|
1: punctuation.definition.tag.html
|
|
2: entity.name.tag.xml.html
|
|
pop: true
|
|
- include: tag-generic-attribute
|
|
- include: string-double-quoted
|
|
- include: string-single-quoted
|
|
- match: <!--
|
|
captures:
|
|
0: punctuation.definition.comment.html
|
|
push:
|
|
- meta_scope: comment.block.html
|
|
- match: '--\s*>'
|
|
captures:
|
|
0: punctuation.definition.comment.html
|
|
pop: true
|
|
- match: "--"
|
|
scope: invalid.illegal.bad-comments-or-CDATA.html
|
|
- include: embedded-code
|
|
- match: <!
|
|
captures:
|
|
0: punctuation.definition.tag.html
|
|
push:
|
|
- meta_scope: meta.tag.sgml.html
|
|
- match: ">"
|
|
captures:
|
|
0: punctuation.definition.tag.html
|
|
pop: true
|
|
- match: (?i:DOCTYPE)
|
|
captures:
|
|
1: entity.name.tag.doctype.html
|
|
push:
|
|
- meta_scope: meta.tag.sgml.doctype.html
|
|
- match: (?=>)
|
|
captures:
|
|
1: entity.name.tag.doctype.html
|
|
pop: true
|
|
- match: '"[^">]*"'
|
|
scope: string.quoted.double.doctype.identifiers-and-DTDs.html
|
|
- match: '\[CDATA\['
|
|
push:
|
|
- meta_scope: constant.other.inline-data.html
|
|
- match: "]](?=>)"
|
|
pop: true
|
|
- match: (\s*)(?!--|>)\S(\s*)
|
|
scope: invalid.illegal.bad-comments-or-CDATA.html
|
|
- include: embedded-code
|
|
- match: '(?:^\s+)?(<)((?i:style))\b(?![^>]*/>)'
|
|
captures:
|
|
1: punctuation.definition.tag.html
|
|
2: entity.name.tag.style.html
|
|
3: punctuation.definition.tag.html
|
|
push:
|
|
- meta_scope: source.css.embedded.html
|
|
- match: (</)((?i:style))(>)(?:\s*\n)?
|
|
captures:
|
|
1: punctuation.definition.tag.html
|
|
2: entity.name.tag.style.html
|
|
3: punctuation.definition.tag.html
|
|
pop: true
|
|
- include: tag-stuff
|
|
- match: (>)
|
|
captures:
|
|
1: punctuation.definition.tag.html
|
|
push:
|
|
- match: (?=</(?i:style))
|
|
pop: true
|
|
- include: embedded-code
|
|
- include: scope:source.css
|
|
- match: '(?:^\s+)?(<)((?i:script))\b(?![^>]*/>)'
|
|
captures:
|
|
1: punctuation.definition.tag.html
|
|
2: entity.name.tag.script.html
|
|
push:
|
|
- meta_scope: source.js.embedded.html
|
|
- match: (?<=</(script|SCRIPT))(>)(?:\s*\n)?
|
|
captures:
|
|
2: punctuation.definition.tag.html
|
|
pop: true
|
|
- include: tag-stuff
|
|
- match: (?<!</(?:script|SCRIPT))(>)
|
|
captures:
|
|
1: punctuation.definition.tag.html
|
|
2: entity.name.tag.script.html
|
|
push:
|
|
- match: (</)((?i:script))
|
|
captures:
|
|
1: punctuation.definition.tag.html
|
|
2: entity.name.tag.script.html
|
|
pop: true
|
|
- match: (//).*?((?=</script)|$\n?)
|
|
scope: comment.line.double-slash.js
|
|
captures:
|
|
1: punctuation.definition.comment.js
|
|
- match: /\*
|
|
captures:
|
|
0: punctuation.definition.comment.js
|
|
push:
|
|
- meta_scope: comment.block.js
|
|
- match: \*/|(?=</script)
|
|
captures:
|
|
0: punctuation.definition.comment.js
|
|
pop: true
|
|
- include: php
|
|
- include: twig-print-tag
|
|
- include: twig-statement-tag
|
|
- include: twig-comment-tag
|
|
- include: scope:source.js
|
|
- match: (</?)((?i:body|head|html)\b)
|
|
captures:
|
|
1: punctuation.definition.tag.html
|
|
2: entity.name.tag.structure.any.html
|
|
push:
|
|
- meta_scope: meta.tag.structure.any.html
|
|
- match: (>)
|
|
captures:
|
|
1: punctuation.definition.tag.html
|
|
2: entity.name.tag.structure.any.html
|
|
pop: true
|
|
- include: tag-stuff
|
|
- match: (</?)((?i:address|blockquote|dd|div|dl|dt|fieldset|form|frame|frameset|h1|h2|h3|h4|h5|h6|iframe|noframes|object|ol|p|ul|applet|center|dir|hr|menu|pre)\b)
|
|
captures:
|
|
1: punctuation.definition.tag.begin.html
|
|
2: entity.name.tag.block.any.html
|
|
push:
|
|
- meta_scope: meta.tag.block.any.html
|
|
- match: (>)
|
|
captures:
|
|
1: punctuation.definition.tag.end.html
|
|
pop: true
|
|
- include: tag-stuff
|
|
- match: (</?)((?i:a|abbr|acronym|area|b|base|basefont|bdo|big|br|button|caption|cite|code|col|colgroup|del|dfn|em|font|head|html|i|img|input|ins|isindex|kbd|label|legend|li|link|map|meta|noscript|optgroup|option|param|q|s|samp|script|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|var)\b)
|
|
captures:
|
|
1: punctuation.definition.tag.begin.html
|
|
2: entity.name.tag.inline.any.html
|
|
push:
|
|
- meta_scope: meta.tag.inline.any.html
|
|
- match: "((?: ?/)?>)"
|
|
captures:
|
|
1: punctuation.definition.tag.end.html
|
|
pop: true
|
|
- include: tag-stuff
|
|
- match: "(</?)([a-zA-Z0-9:]+)"
|
|
captures:
|
|
1: punctuation.definition.tag.begin.html
|
|
2: entity.name.tag.other.html
|
|
push:
|
|
- meta_scope: meta.tag.other.html
|
|
- match: (>)
|
|
captures:
|
|
1: punctuation.definition.tag.end.html
|
|
pop: true
|
|
- include: tag-stuff
|
|
- include: entities
|
|
- match: <>
|
|
scope: invalid.illegal.incomplete.html
|
|
- match: <
|
|
scope: invalid.illegal.bad-angle-bracket.html
|
|
- include: twig-print-tag
|
|
- include: twig-statement-tag
|
|
- include: twig-comment-tag
|
|
embedded-code:
|
|
- include: ruby
|
|
- include: php
|
|
- include: twig-print-tag
|
|
- include: twig-statement-tag
|
|
- include: twig-comment-tag
|
|
- include: python
|
|
entities:
|
|
- match: "(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)"
|
|
scope: constant.character.entity.html
|
|
captures:
|
|
1: punctuation.definition.entity.html
|
|
3: punctuation.definition.entity.html
|
|
- match: "&"
|
|
scope: invalid.illegal.bad-ampersand.html
|
|
php:
|
|
- match: (?=(^\s*)?<\?)
|
|
push:
|
|
- match: (?!(^\s*)?<\?)
|
|
pop: true
|
|
- include: scope:text.html.php
|
|
python:
|
|
- match: (?:^\s*)<\?python(?!.*\?>)
|
|
push:
|
|
- meta_scope: source.python.embedded.html
|
|
- match: \?>(?:\s*$\n)?
|
|
pop: true
|
|
- include: scope:source.python
|
|
ruby:
|
|
- match: "<%+#"
|
|
captures:
|
|
0: punctuation.definition.comment.erb
|
|
push:
|
|
- meta_scope: comment.block.erb
|
|
- match: "%>"
|
|
captures:
|
|
0: punctuation.definition.comment.erb
|
|
pop: true
|
|
- match: <%+(?!>)=?
|
|
captures:
|
|
0: punctuation.section.embedded.ruby
|
|
push:
|
|
- meta_scope: source.ruby.embedded.html
|
|
- match: "-?%>"
|
|
captures:
|
|
0: punctuation.section.embedded.ruby
|
|
pop: true
|
|
- match: (#).*?(?=-?%>)
|
|
scope: comment.line.number-sign.ruby
|
|
captures:
|
|
1: punctuation.definition.comment.ruby
|
|
- include: scope:source.ruby
|
|
- match: <\?r(?!>)=?
|
|
captures:
|
|
0: punctuation.section.embedded.ruby.nitro
|
|
push:
|
|
- meta_scope: source.ruby.nitro.embedded.html
|
|
- match: '-?\?>'
|
|
captures:
|
|
0: punctuation.section.embedded.ruby.nitro
|
|
pop: true
|
|
- match: (#).*?(?=-?\?>)
|
|
scope: comment.line.number-sign.ruby.nitro
|
|
captures:
|
|
1: punctuation.definition.comment.ruby.nitro
|
|
- include: scope:source.ruby
|
|
string-double-quoted:
|
|
- match: '"'
|
|
captures:
|
|
0: punctuation.definition.string.begin.html
|
|
push:
|
|
- meta_scope: string.quoted.double.html
|
|
- match: '"'
|
|
captures:
|
|
0: punctuation.definition.string.end.html
|
|
pop: true
|
|
- include: embedded-code
|
|
- include: entities
|
|
string-single-quoted:
|
|
- match: "'"
|
|
captures:
|
|
0: punctuation.definition.string.begin.html
|
|
push:
|
|
- meta_scope: string.quoted.single.html
|
|
- match: "'"
|
|
captures:
|
|
0: punctuation.definition.string.end.html
|
|
pop: true
|
|
- include: embedded-code
|
|
- include: entities
|
|
tag-generic-attribute:
|
|
- match: '\b([a-zA-Z\-:]+)'
|
|
scope: entity.other.attribute-name.html
|
|
tag-id-attribute:
|
|
- match: \b(id)\b\s*(=)
|
|
captures:
|
|
1: entity.other.attribute-name.id.html
|
|
2: punctuation.separator.key-value.html
|
|
push:
|
|
- meta_scope: meta.attribute-with-value.id.html
|
|
- match: (?<='|")
|
|
captures:
|
|
1: entity.other.attribute-name.id.html
|
|
2: punctuation.separator.key-value.html
|
|
pop: true
|
|
- match: '"'
|
|
captures:
|
|
0: punctuation.definition.string.begin.html
|
|
push:
|
|
- meta_scope: string.quoted.double.html
|
|
- meta_content_scope: meta.toc-list.id.html
|
|
- match: '"'
|
|
captures:
|
|
0: punctuation.definition.string.end.html
|
|
pop: true
|
|
- include: embedded-code
|
|
- include: entities
|
|
- match: "'"
|
|
captures:
|
|
0: punctuation.definition.string.begin.html
|
|
push:
|
|
- meta_scope: string.quoted.single.html
|
|
- meta_content_scope: meta.toc-list.id.html
|
|
- match: "'"
|
|
captures:
|
|
0: punctuation.definition.string.end.html
|
|
pop: true
|
|
- include: embedded-code
|
|
- include: entities
|
|
tag-stuff:
|
|
- include: tag-id-attribute
|
|
- include: tag-generic-attribute
|
|
- include: string-double-quoted
|
|
- include: string-single-quoted
|
|
- include: embedded-code
|
|
twig-arrays:
|
|
- match: '(?<=[\s\(\{\[:,])\['
|
|
captures:
|
|
0: punctuation.section.array.begin.twig
|
|
push:
|
|
- meta_scope: meta.array.twig
|
|
- match: '\]'
|
|
captures:
|
|
0: punctuation.section.array.end.twig
|
|
pop: true
|
|
- include: twig-arrays
|
|
- include: twig-hashes
|
|
- include: twig-constants
|
|
- include: twig-strings
|
|
- include: twig-functions-warg
|
|
- include: twig-functions
|
|
- include: twig-macros
|
|
- include: twig-objects
|
|
- include: twig-properties
|
|
- include: twig-filters-warg
|
|
- include: twig-filters
|
|
- include: twig-filters-warg-ud
|
|
- include: twig-filters-ud
|
|
- match: ","
|
|
scope: punctuation.separator.object.twig
|
|
twig-comment-tag:
|
|
- match: '\{#-?'
|
|
captures:
|
|
0: punctuation.definition.comment.begin.twig
|
|
push:
|
|
- meta_scope: comment.block.twig
|
|
- match: '-?#\}'
|
|
captures:
|
|
0: punctuation.definition.comment.end.twig
|
|
pop: true
|
|
twig-constants:
|
|
- match: '(?i)(?<=[\s\[\(\{:,])(?:true|false|null|none)(?=[\s\)\]\}\,])'
|
|
scope: constant.language.twig
|
|
- match: '(?<=[\s\[\(\{:,]|\.\.|\*\*)[0-9]+(?:\.[0-9]+)?(?=[\s\)\]\}\,]|\.\.|\*\*)'
|
|
scope: constant.numeric.twig
|
|
twig-filters:
|
|
- match: '(?<=(?:[a-zA-Z0-9_\x{7f}-\x{ff}\]\)\''\"]\|)|\{%\sfilter\s)(abs|capitalize|e(?:scape)?|first|join|(?:json|url)_encode|keys|last|length|lower|nl2br|number_format|raw|reverse|round|sort|striptags|title|trim|upper)(?=[\s\|\]\}\):,]|\.\.|\*\*)'
|
|
captures:
|
|
1: support.function.twig
|
|
twig-filters-ud:
|
|
- match: '(?<=(?:[a-zA-Z0-9_\x{7f}-\x{ff}\]\)\''\"]\|)|\{%\sfilter\s)([a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)'
|
|
captures:
|
|
1: meta.function-call.other.twig
|
|
twig-filters-warg:
|
|
- match: '(?<=(?:[a-zA-Z0-9_\x{7f}-\x{ff}\]\)\''\"]\|)|\{%\sfilter\s)(batch|convert_encoding|date|date_modify|default|e(?:scape)?|format|join|merge|number_format|replace|round|slice|split|trim)(\()'
|
|
captures:
|
|
1: support.function.twig
|
|
2: punctuation.definition.parameters.begin.twig
|
|
push:
|
|
- meta_content_scope: meta.function.arguments.twig
|
|
- match: \)
|
|
captures:
|
|
0: punctuation.definition.parameters.end.twig
|
|
pop: true
|
|
- include: twig-constants
|
|
- include: twig-functions-warg
|
|
- include: twig-functions
|
|
- include: twig-macros
|
|
- include: twig-objects
|
|
- include: twig-properties
|
|
- include: twig-filters-warg
|
|
- include: twig-filters
|
|
- include: twig-filters-warg-ud
|
|
- include: twig-filters-ud
|
|
- include: twig-strings
|
|
- include: twig-arrays
|
|
- include: twig-hashes
|
|
twig-filters-warg-ud:
|
|
- match: '(?<=(?:[a-zA-Z0-9_\x{7f}-\x{ff}\]\)\''\"]\|)|\{%\sfilter\s)([a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)(\()'
|
|
captures:
|
|
1: meta.function-call.other.twig
|
|
2: punctuation.definition.parameters.begin.twig
|
|
push:
|
|
- meta_content_scope: meta.function.arguments.twig
|
|
- match: \)
|
|
captures:
|
|
0: punctuation.definition.parameters.end.twig
|
|
pop: true
|
|
- include: twig-constants
|
|
- include: twig-functions-warg
|
|
- include: twig-functions
|
|
- include: twig-macros
|
|
- include: twig-objects
|
|
- include: twig-properties
|
|
- include: twig-filters-warg
|
|
- include: twig-filters
|
|
- include: twig-filters-warg-ud
|
|
- include: twig-filters-ud
|
|
- include: twig-strings
|
|
- include: twig-arrays
|
|
- include: twig-hashes
|
|
twig-functions:
|
|
- match: (?<=is\s)(defined|empty|even|iterable|odd)
|
|
captures:
|
|
1: support.function.twig
|
|
twig-functions-warg:
|
|
- match: '(?<=[\s\(\[\{:,])(attribute|block|constant|cycle|date|divisible by|dump|include|max|min|parent|random|range|same as|source|template_from_string)(\()'
|
|
captures:
|
|
1: support.function.twig
|
|
2: punctuation.definition.parameters.begin.twig
|
|
push:
|
|
- meta_content_scope: meta.function.arguments.twig
|
|
- match: \)
|
|
captures:
|
|
0: punctuation.definition.parameters.end.twig
|
|
pop: true
|
|
- include: twig-constants
|
|
- include: twig-functions-warg
|
|
- include: twig-functions
|
|
- include: twig-macros
|
|
- include: twig-objects
|
|
- include: twig-properties
|
|
- include: twig-filters-warg
|
|
- include: twig-filters
|
|
- include: twig-filters-warg-ud
|
|
- include: twig-filters-ud
|
|
- include: twig-strings
|
|
- include: twig-arrays
|
|
twig-hashes:
|
|
- match: '(?<=[\s\(\{\[:,])\{'
|
|
captures:
|
|
0: punctuation.section.hash.begin.twig
|
|
push:
|
|
- meta_scope: meta.hash.twig
|
|
- match: '\}'
|
|
captures:
|
|
0: punctuation.section.hash.end.twig
|
|
pop: true
|
|
- include: twig-hashes
|
|
- include: twig-arrays
|
|
- include: twig-constants
|
|
- include: twig-strings
|
|
- include: twig-functions-warg
|
|
- include: twig-functions
|
|
- include: twig-macros
|
|
- include: twig-objects
|
|
- include: twig-properties
|
|
- include: twig-filters-warg
|
|
- include: twig-filters
|
|
- include: twig-filters-warg-ud
|
|
- include: twig-filters-ud
|
|
- match: ":"
|
|
scope: punctuation.separator.key-value.twig
|
|
- match: ","
|
|
scope: punctuation.separator.object.twig
|
|
twig-keywords:
|
|
- match: (?<=\s)((?:end)?(?:autoescape|block|embed|filter|for|if|macro|raw|sandbox|set|spaceless|trans|verbatim)|as|do|else|elseif|extends|flush|from|ignore missing|import|include|only|use|with)(?=\s)
|
|
scope: keyword.control.twig
|
|
twig-macros:
|
|
- match: |-
|
|
(?x)
|
|
(?<=[\s\(\[\{:,])
|
|
([a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)
|
|
(?:
|
|
(\.)([a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)
|
|
)?
|
|
(\()
|
|
captures:
|
|
1: meta.function-call.twig
|
|
2: punctuation.separator.property.twig
|
|
3: variable.other.property.twig
|
|
4: punctuation.definition.parameters.begin.twig
|
|
push:
|
|
- meta_content_scope: meta.function.arguments.twig
|
|
- match: \)
|
|
captures:
|
|
0: punctuation.definition.parameters.end.twig
|
|
pop: true
|
|
- include: twig-constants
|
|
- include: twig-operators
|
|
- include: twig-functions-warg
|
|
- include: twig-functions
|
|
- include: twig-macros
|
|
- include: twig-objects
|
|
- include: twig-properties
|
|
- include: twig-filters-warg
|
|
- include: twig-filters
|
|
- include: twig-filters-warg-ud
|
|
- include: twig-filters-ud
|
|
- include: twig-strings
|
|
- include: twig-arrays
|
|
- include: twig-hashes
|
|
twig-objects:
|
|
- match: '(?<=[\s\{\[\(:,])([a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)(?=[\s\}\[\]\(\)\.\|,:])'
|
|
captures:
|
|
1: variable.other.twig
|
|
twig-operators:
|
|
- match: (?<=\s)(\+|-|//?|%|\*\*?)(?=\s)
|
|
captures:
|
|
1: keyword.operator.arithmetic.twig
|
|
- match: (?<=\s)(=|~)(?=\s)
|
|
captures:
|
|
1: keyword.operator.assignment.twig
|
|
- match: (?<=\s)(b-(?:and|or|xor))(?=\s)
|
|
captures:
|
|
1: keyword.operator.bitwise.twig
|
|
- match: '(?<=\s)((?:!|=)=|<=?|>=?|(?:not )?in|is(?: not)?|(?:ends|starts) with|matches)(?=\s)'
|
|
captures:
|
|
1: keyword.operator.comparison.twig
|
|
- match: (?<=\s)(\?|:|and|not|or)(?=\s)
|
|
captures:
|
|
1: keyword.operator.logical.twig
|
|
- match: '(?<=[a-zA-Z0-9_\x{7f}-\x{ff}\]\)''"])\.\.(?=[a-zA-Z0-9_\x{7f}-\x{ff}''"])'
|
|
captures:
|
|
0: keyword.operator.other.twig
|
|
- match: '(?<=[a-zA-Z0-9_\x{7f}-\x{ff}\]\}\)''"])\|(?=[a-zA-Z_\x{7f}-\x{ff}])'
|
|
captures:
|
|
0: keyword.operator.other.twig
|
|
twig-print-tag:
|
|
- match: '\{\{-?'
|
|
captures:
|
|
0: punctuation.section.tag.twig
|
|
push:
|
|
- meta_scope: meta.tag.template.value.twig
|
|
- match: '-?\}\}'
|
|
captures:
|
|
0: punctuation.section.tag.twig
|
|
pop: true
|
|
- include: twig-constants
|
|
- include: twig-operators
|
|
- include: twig-functions-warg
|
|
- include: twig-functions
|
|
- include: twig-macros
|
|
- include: twig-objects
|
|
- include: twig-properties
|
|
- include: twig-filters-warg
|
|
- include: twig-filters
|
|
- include: twig-filters-warg-ud
|
|
- include: twig-filters-ud
|
|
- include: twig-strings
|
|
- include: twig-arrays
|
|
- include: twig-hashes
|
|
twig-properties:
|
|
- match: |-
|
|
(?x)
|
|
(?<=[a-zA-Z0-9_\x{7f}-\x{ff}])
|
|
(\.)([a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)
|
|
(?=[\.\s\|\[\)\]\}:,])
|
|
captures:
|
|
1: punctuation.separator.property.twig
|
|
2: variable.other.property.twig
|
|
- match: |-
|
|
(?x)
|
|
(?<=[a-zA-Z0-9_\x{7f}-\x{ff}])
|
|
(\.)([a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)
|
|
(\()
|
|
captures:
|
|
1: punctuation.separator.property.twig
|
|
2: variable.other.property.twig
|
|
3: punctuation.definition.parameters.begin.twig
|
|
push:
|
|
- meta_content_scope: meta.function.arguments.twig
|
|
- match: \)
|
|
captures:
|
|
0: punctuation.definition.parameters.end.twig
|
|
pop: true
|
|
- include: twig-constants
|
|
- include: twig-functions-warg
|
|
- include: twig-functions
|
|
- include: twig-macros
|
|
- include: twig-objects
|
|
- include: twig-properties
|
|
- include: twig-filters-warg
|
|
- include: twig-filters
|
|
- include: twig-filters-warg-ud
|
|
- include: twig-filters-ud
|
|
- include: twig-strings
|
|
- include: twig-arrays
|
|
- match: |-
|
|
(?x)
|
|
(?<=[a-zA-Z0-9_\x{7f}-\x{ff}\]])
|
|
(?:
|
|
(\[)('[a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*')(\])
|
|
|(\[)("[a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*")(\])
|
|
|(\[)([a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)(\])
|
|
)
|
|
captures:
|
|
1: punctuation.section.array.begin.twig
|
|
2: variable.other.property.twig
|
|
3: punctuation.section.array.end.twig
|
|
4: punctuation.section.array.begin.twig
|
|
5: variable.other.property.twig
|
|
6: punctuation.section.array.end.twig
|
|
7: punctuation.section.array.begin.twig
|
|
8: variable.other.property.twig
|
|
9: punctuation.section.array.end.twig
|
|
twig-statement-tag:
|
|
- match: '\{%-?'
|
|
captures:
|
|
0: punctuation.section.tag.twig
|
|
push:
|
|
- meta_scope: meta.tag.template.block.twig
|
|
- match: '-?%\}'
|
|
captures:
|
|
0: punctuation.section.tag.twig
|
|
pop: true
|
|
- include: twig-constants
|
|
- include: twig-keywords
|
|
- include: twig-operators
|
|
- include: twig-functions-warg
|
|
- include: twig-functions
|
|
- include: twig-macros
|
|
- include: twig-filters-warg
|
|
- include: twig-filters
|
|
- include: twig-filters-warg-ud
|
|
- include: twig-filters-ud
|
|
- include: twig-objects
|
|
- include: twig-properties
|
|
- include: twig-strings
|
|
- include: twig-arrays
|
|
- include: twig-hashes
|
|
twig-strings:
|
|
- match: (?:(?<!\\)|(?<=\\\\))'
|
|
captures:
|
|
0: punctuation.definition.string.begin.twig
|
|
push:
|
|
- meta_scope: string.quoted.single.twig
|
|
- match: (?:(?<!\\)|(?<=\\\\))'
|
|
captures:
|
|
0: punctuation.definition.string.end.twig
|
|
pop: true
|
|
- match: (?:(?<!\\)|(?<=\\\\))"
|
|
captures:
|
|
0: punctuation.definition.string.begin.twig
|
|
push:
|
|
- meta_scope: string.quoted.double.twig
|
|
- match: (?:(?<!\\)|(?<=\\\\))"
|
|
captures:
|
|
0: punctuation.definition.string.end.twig
|
|
pop: true
|