blob: 57e20aca797e899c2d838d7a7e864ce584a5aeed [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>fileTypes</key>
<array/>
<key>foldingStartMarker</key>
<string>({%\s*(block|filter|for|if|macro|raw))</string>
<key>foldingStopMarker</key>
<string>({%\s*(endblock|endfilter|endfor|endif|endmacro|endraw)\s*%})</string>
<key>name</key>
<string>Jinja Templates</string>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>({%)\s*(raw)\s*(%})</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>entity.other.jinja.delimiter.tag</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>keyword.control.jinja</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>entity.other.jinja.delimiter.tag</string>
</dict>
</dict>
<key>end</key>
<string>({%)\s*(endraw)\s*(%})</string>
<key>name</key>
<string>comment.block.jinja.raw</string>
</dict>
<dict>
<key>begin</key>
<string>{#-?</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>entity.other.jinja.delimiter.comment</string>
</dict>
</dict>
<key>end</key>
<string>-?#}</string>
<key>name</key>
<string>comment.block.jinja</string>
</dict>
<dict>
<key>begin</key>
<string>{{-?</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>entity.other.jinja.delimiter.variable</string>
</dict>
</dict>
<key>end</key>
<string>-?}}</string>
<key>name</key>
<string>meta.scope.jinja.variable</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#expression</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>{%-?</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>entity.other.jinja.delimiter.tag</string>
</dict>
</dict>
<key>end</key>
<string>-?%}</string>
<key>name</key>
<string>meta.scope.jinja.tag</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#expression</string>
</dict>
</array>
</dict>
</array>
<key>repository</key>
<dict>
<key>escaped_char</key>
<dict>
<key>match</key>
<string>\\x[0-9A-F]{2}</string>
<key>name</key>
<string>constant.character.escape.hex.jinja</string>
</dict>
<key>escaped_unicode_char</key>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>constant.character.escape.unicode.16-bit-hex.jinja</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>constant.character.escape.unicode.32-bit-hex.jinja</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>constant.character.escape.unicode.name.jinja</string>
</dict>
</dict>
<key>match</key>
<string>(\\U[0-9A-Fa-f]{8})|(\\u[0-9A-Fa-f]{4})|(\\N\{[a-zA-Z ]+\})</string>
</dict>
<key>expression</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.control.jinja</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>variable.other.jinja.block</string>
</dict>
</dict>
<key>match</key>
<string>\b(block)\s+([a-zA-Z_][a-zA-Z0-9_]*)</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.control.jinja</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>variable.other.jinja.filter</string>
</dict>
</dict>
<key>match</key>
<string>\b(filter)\s+([a-zA-Z_][a-zA-Z0-9_]*)</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.control.jinja</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>variable.other.jinja.test</string>
</dict>
</dict>
<key>match</key>
<string>\b(is)\s+([a-zA-Z_][a-zA-Z0-9_]*)</string>
</dict>
<dict>
<key>match</key>
<string>\b(and|block|call|cycle|elif|else|endblock|endcall|endfilter|endfor|endif|endmacro|endraw|endtrans|extends|filter|for|if|in|include|is|macro|not|or|pluralize|print|raw|recursive|set|trans)\b</string>
<key>name</key>
<string>keyword.control.jinja</string>
</dict>
<dict>
<key>match</key>
<string>\b(true|false|undefined|none|_)\b</string>
<key>name</key>
<string>constant.language.jinja</string>
</dict>
<dict>
<key>match</key>
<string>\b(loop|super)\b</string>
<key>name</key>
<string>variable.language.jinja</string>
</dict>
<dict>
<key>match</key>
<string>[a-zA-Z_][a-zA-Z0-9_]*</string>
<key>name</key>
<string>variable.other.jinja</string>
</dict>
<dict>
<key>match</key>
<string>(\+|\-|\*\*|\*|//|/|%)</string>
<key>name</key>
<string>keyword.operator.arithmetic.jinja</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.other.jinja</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>variable.other.jinja.filter</string>
</dict>
</dict>
<key>match</key>
<string>(\|)([a-zA-Z_][a-zA-Z0-9_]*)</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.other.jinja</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>variable.other.jinja.attribute</string>
</dict>
</dict>
<key>match</key>
<string>(\.)([a-zA-Z_][a-zA-Z0-9_]*)</string>
</dict>
<dict>
<key>begin</key>
<string>\[</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.other.jinja</string>
</dict>
</dict>
<key>end</key>
<string>\]</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#expression</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>\(</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.other.jinja</string>
</dict>
</dict>
<key>end</key>
<string>\)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#expression</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>\{</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.other.jinja</string>
</dict>
</dict>
<key>end</key>
<string>\}</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#expression</string>
</dict>
</array>
</dict>
<dict>
<key>match</key>
<string>(\.|:|\||,)</string>
<key>name</key>
<string>punctuation.other.jinja</string>
</dict>
<dict>
<key>match</key>
<string>(==|&lt;=|=&gt;|&lt;|&gt;|!=)</string>
<key>name</key>
<string>keyword.operator.comparison.jinja</string>
</dict>
<dict>
<key>match</key>
<string>=</string>
<key>name</key>
<string>keyword.operator.assignment.jinja</string>
</dict>
<dict>
<key>begin</key>
<string>"</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.jinja</string>
</dict>
</dict>
<key>end</key>
<string>"</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.jinja</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.double.jinja</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#string</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>'</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.jinja</string>
</dict>
</dict>
<key>end</key>
<string>'</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.jinja</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.single.jinja</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#string</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>@/</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.regexp.begin.jinja</string>
</dict>
</dict>
<key>end</key>
<string>/</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.regexp.end.jinja</string>
</dict>
</dict>
<key>name</key>
<string>string.regexp.jinja</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#simple_escapes</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>simple_escapes</key>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>constant.character.escape.newline.jinja</string>
</dict>
<key>10</key>
<dict>
<key>name</key>
<string>constant.character.escape.tab.jinja</string>
</dict>
<key>11</key>
<dict>
<key>name</key>
<string>constant.character.escape.vertical-tab.jinja</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>constant.character.escape.backlash.jinja</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>constant.character.escape.double-quote.jinja</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>constant.character.escape.single-quote.jinja</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>constant.character.escape.bell.jinja</string>
</dict>
<key>6</key>
<dict>
<key>name</key>
<string>constant.character.escape.backspace.jinja</string>
</dict>
<key>7</key>
<dict>
<key>name</key>
<string>constant.character.escape.formfeed.jinja</string>
</dict>
<key>8</key>
<dict>
<key>name</key>
<string>constant.character.escape.linefeed.jinja</string>
</dict>
<key>9</key>
<dict>
<key>name</key>
<string>constant.character.escape.return.jinja</string>
</dict>
</dict>
<key>match</key>
<string>(\\\n)|(\\\\)|(\\\")|(\\')|(\\a)|(\\b)|(\\f)|(\\n)|(\\r)|(\\t)|(\\v)</string>
</dict>
<key>string</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#simple_escapes</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_unicode_char</string>
</dict>
</array>
</dict>
</dict>
<key>scopeName</key>
<string>source.jinja</string>
<key>uuid</key>
<string>CB0F3F8E-6062-4610-85B3-8905C61AD85A</string>
</dict>
</plist>