Created
September 13, 2012 22:29
-
-
Save chrisgeo/3718188 to your computer and use it in GitHub Desktop.
jinja2 textmate
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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> | |
<string>htm.j2</string> | |
<string>html.j2</string> | |
<string>xhtml.j2</string> | |
<string>xml.j2</string> | |
</array> | |
<key>firstLineMatch</key> | |
<string>^{% extends ["'][^"']+["'] %}</string> | |
<key>foldingStartMarker</key> | |
<string>(<(?i:(head|table|tr|div|style|script|ul|ol|form|dl))\b.*?>|{%\s*(block|filter|for|if|macro|raw))</string> | |
<key>foldingStopMarker</key> | |
<string>(</(?i:(head|table|tr|div|style|script|ul|ol|form|dl))\b.*?>|{%\s*(endblock|endfilter|endfor|endif|endmacro|endraw)\s*%})</string> | |
<key>name</key> | |
<string>HTML (Jinja2)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>name</key> | |
<string>meta.scope.jinja2.variable.nested.html</string> | |
<key>match</key> | |
<string>(?<=\{\{)\s*[A-Za-z0-9_\.]+\s*(?=\}\})</string> | |
</dict> | |
<dict> | |
<key>include</key> | |
<string>source.jinja2</string> | |
</dict> | |
<dict> | |
<key>include</key> | |
<string>text.html.basic</string> | |
</dict> | |
</array> | |
<key>scopeName</key> | |
<string>text.html.jinja2</string> | |
<key>uuid</key> | |
<string>488399C0-5D29-4704-BE85-E03A461C34E7</string> | |
</dict> | |
</plist> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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> | |
<string>j2</string> | |
</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>Jinja2</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.jinja2.delimiter.tag</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.control.jinja2</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>entity.other.jinja2.delimiter.tag</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string>({%)\s*(endraw)\s*(%})</string> | |
<key>name</key> | |
<string>comment.block.jinja2.raw</string> | |
</dict> | |
<!--<dict> | |
<key>begin</key> | |
<string>[\"\']{{-?</string> | |
<key>captures</key> | |
<dict> | |
<key>0</key> | |
<dict> | |
<key>name</key> | |
<string>entity.other.jinja2.delimiter.variable.between.html</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string>-?}}.*</string> | |
<key>name</key> | |
<string>meta.scope.jinja2.variable.between.html</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.jinja2.delimiter.comment</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string>-?#}</string> | |
<key>name</key> | |
<string>comment.block.jinja2</string> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>{{-?</string> | |
<key>captures</key> | |
<dict> | |
<key>0</key> | |
<dict> | |
<key>name</key> | |
<string>entity.other.jinja2.delimiter.variable</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string>-?}}</string> | |
<key>name</key> | |
<string>meta.scope.jinja2.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.jinja2.delimiter.tag</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string>-?%}</string> | |
<key>name</key> | |
<string>meta.scope.jinja2.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.jinja2</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.jinja2</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.unicode.32-bit-hex.jinja2</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.unicode.name.jinja2</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.jinja2</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>variable.other.jinja2.block</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>\s*\b(block)\s+([a-zA-Z_][a-zA-Z0-9_]*)\b</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.control.jinja2</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>variable.other.jinja2.filter</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>\s*\b(filter)\s+([a-zA-Z_][a-zA-Z0-9_]*)\b</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.control.jinja2</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>variable.other.jinja2.test</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>\s*\b(is)\s+([a-zA-Z_][a-zA-Z0-9_]*)\b</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.control.jinja2</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(?<=\{\%-|\{\%)\s*\b([a-zA-Z_][a-zA-Z0-9_]*)\b(?!\s*[,=])</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>\b(and|else|if|in|import|not|or|recursive|with(out)?\s+context)\b</string> | |
<key>name</key> | |
<string>keyword.control.jinja2</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>\b(true|false|none)\b</string> | |
<key>name</key> | |
<string>constant.language.jinja2</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>\b(loop|super|self|varargs|kwargs)\b</string> | |
<key>name</key> | |
<string>variable.language.jinja2</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>[a-zA-Z_][a-zA-Z0-9_]*</string> | |
<key>name</key> | |
<string>variable.other.jinja2</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(\+|\-|\*\*|\*|//|/|%)</string> | |
<key>name</key> | |
<string>keyword.operator.arithmetic.jinja2</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.other.jinja2</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>variable.other.jinja2.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.jinja2</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>variable.other.jinja2.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.jinja2</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.jinja2</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.jinja2</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.jinja2</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(==|<=|=>|<|>|!=)</string> | |
<key>name</key> | |
<string>keyword.operator.comparison.jinja2</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>=</string> | |
<key>name</key> | |
<string>keyword.operator.assignment.jinja2</string> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>"</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>0</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.jinja2</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string>"</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>0</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.jinja2</string> | |
</dict> | |
</dict> | |
<key>name</key> | |
<string>string.quoted.double.jinja2</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.jinja2</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string>'</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>0</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.jinja2</string> | |
</dict> | |
</dict> | |
<key>name</key> | |
<string>string.quoted.single.jinja2</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.jinja2</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string>/</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>0</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.regexp.end.jinja2</string> | |
</dict> | |
</dict> | |
<key>name</key> | |
<string>string.regexp.jinja2</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.jinja2</string> | |
</dict> | |
<key>10</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.tab.jinja2</string> | |
</dict> | |
<key>11</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.vertical-tab.jinja2</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.backlash.jinja2</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.double-quote.jinja2</string> | |
</dict> | |
<key>4</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.single-quote.jinja2</string> | |
</dict> | |
<key>5</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.bell.jinja2</string> | |
</dict> | |
<key>6</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.backspace.jinja2</string> | |
</dict> | |
<key>7</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.formfeed.jinja2</string> | |
</dict> | |
<key>8</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.linefeed.jinja2</string> | |
</dict> | |
<key>9</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.return.jinja2</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.jinja2</string> | |
<key>uuid</key> | |
<string>CB0F3F8E-6062-4610-85B3-8905C61AD85A</string> | |
</dict> | |
</plist> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<input type="hidden" name="foo" value="{{foo}}" /> | |
<input type="hidden" name="foo" value="{{ foo }}" /> | |
<input type="hidden" name="foo" value="{{foo)}}" /> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment