| <?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>(==|<=|=>|<|>|!=)</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> |