summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorArmin Ronacher <armin.ronacher@active-4.com>2007-11-29 19:42:40 +0100
committerArmin Ronacher <armin.ronacher@active-4.com>2007-11-29 19:42:40 +0100
commit86fa78e9d290c4d488a2bfdcfc573bc8bf7b4ded (patch)
treeb10cb1a18a0bbe257fa5734f38ca8832f70432b5 /ext
parent21dce512e1447abe56fad31cac79d6d00ae133c3 (diff)
downloadjinja2-86fa78e9d290c4d488a2bfdcfc573bc8bf7b4ded.tar.gz
added jinja tm bundle
--HG-- branch : trunk
Diffstat (limited to 'ext')
-rw-r--r--ext/Commands/Help.tmCommand32
-rw-r--r--ext/Commands/Validate Syntax.tmCommand59
-rw-r--r--ext/Commands/Wrap in Tag.tmCommand26
-rw-r--r--ext/Commands/Wrap in Variable Tag.tmCommand26
-rw-r--r--ext/Preferences/Symbol List: Blocks.tmPreferences19
-rw-r--r--ext/Snippets/abs.tmSnippet16
-rw-r--r--ext/Snippets/batch.tmSnippet16
-rw-r--r--ext/Snippets/block.tmSnippet18
-rw-r--r--ext/Snippets/capitalize.tmSnippet16
-rw-r--r--ext/Snippets/capture.tmSnippet16
-rw-r--r--ext/Snippets/center.tmSnippet16
-rw-r--r--ext/Snippets/default.tmSnippet16
-rw-r--r--ext/Snippets/dformat.tmSnippet16
-rw-r--r--ext/Snippets/dictsort.tmSnippet16
-rw-r--r--ext/Snippets/escape.tmSnippet16
-rw-r--r--ext/Snippets/extends.tmSnippet16
-rw-r--r--ext/Snippets/filesizeformat.tmSnippet16
-rw-r--r--ext/Snippets/filter.tmSnippet18
-rw-r--r--ext/Snippets/first.tmSnippet16
-rw-r--r--ext/Snippets/float.tmSnippet16
-rw-r--r--ext/Snippets/for ___ in ___.tmSnippet18
-rw-r--r--ext/Snippets/format.tmSnippet16
-rw-r--r--ext/Snippets/if.tmSnippet18
-rw-r--r--ext/Snippets/indent.tmSnippet16
-rw-r--r--ext/Snippets/int.tmSnippet16
-rw-r--r--ext/Snippets/join.tmSnippet16
-rw-r--r--ext/Snippets/jsonencode.tmSnippet16
-rw-r--r--ext/Snippets/last.tmSnippet16
-rw-r--r--ext/Snippets/length.tmSnippet16
-rw-r--r--ext/Snippets/lower.tmSnippet16
-rw-r--r--ext/Snippets/macro.tmSnippet18
-rw-r--r--ext/Snippets/markdown.tmSnippet16
-rw-r--r--ext/Snippets/pprint.tmSnippet16
-rw-r--r--ext/Snippets/random.tmSnippet16
-rw-r--r--ext/Snippets/raw.tmSnippet18
-rw-r--r--ext/Snippets/replace.tmSnippet16
-rw-r--r--ext/Snippets/reverse.tmSnippet16
-rw-r--r--ext/Snippets/round.tmSnippet16
-rw-r--r--ext/Snippets/rst.tmSnippet16
-rw-r--r--ext/Snippets/slice.tmSnippet16
-rw-r--r--ext/Snippets/sort.tmSnippet16
-rw-r--r--ext/Snippets/string.tmSnippet16
-rw-r--r--ext/Snippets/striptags.tmSnippet16
-rw-r--r--ext/Snippets/sum.tmSnippet16
-rw-r--r--ext/Snippets/textile.tmSnippet16
-rw-r--r--ext/Snippets/title.tmSnippet16
-rw-r--r--ext/Snippets/trim.tmSnippet16
-rw-r--r--ext/Snippets/truncate.tmSnippet16
-rw-r--r--ext/Snippets/upper.tmSnippet16
-rw-r--r--ext/Snippets/urlencode.tmSnippet16
-rw-r--r--ext/Snippets/urlize.tmSnippet16
-rw-r--r--ext/Snippets/wordcount.tmSnippet16
-rw-r--r--ext/Snippets/wordwrap.tmSnippet16
-rw-r--r--ext/Snippets/xmlattr.tmSnippet16
-rw-r--r--ext/Syntaxes/HTML (Jinja Templates).tmLanguage29
-rw-r--r--ext/Syntaxes/Jinja Templates.tmLanguage518
-rw-r--r--ext/info.plist148
57 files changed, 1653 insertions, 0 deletions
diff --git a/ext/Commands/Help.tmCommand b/ext/Commands/Help.tmCommand
new file mode 100644
index 0000000..d106dec
--- /dev/null
+++ b/ext/Commands/Help.tmCommand
@@ -0,0 +1,32 @@
+<?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>beforeRunningCommand</key>
+ <string>nop</string>
+ <key>command</key>
+ <string>. "$TM_SUPPORT_PATH/lib/webpreview.sh"
+html_header "Jinja Help" "Jinja Templates"
+
+Markdown.pl &lt;&lt;'EOF'
+
+This document describes the commands of the TextMate Jinja Templates bundle and how you can use it. For general Jinja help you should read the [Jinja Documentation](http:/jinja.pocoo.org/documentation/ "Jinja Documentation Overview").
+
+## Requirements
+The Jinja support requires Jinja to be installed in the default python interpreter the system uses. If Jinja is not installed you cannot use the syntax validator.
+
+EOF
+
+html_footer</string>
+ <key>input</key>
+ <string>document</string>
+ <key>name</key>
+ <string>Help</string>
+ <key>output</key>
+ <string>showAsHTML</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>uuid</key>
+ <string>44B1526F-5825-40A5-AB42-6433F1DD02D9</string>
+</dict>
+</plist>
diff --git a/ext/Commands/Validate Syntax.tmCommand b/ext/Commands/Validate Syntax.tmCommand
new file mode 100644
index 0000000..804906f
--- /dev/null
+++ b/ext/Commands/Validate Syntax.tmCommand
@@ -0,0 +1,59 @@
+<?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>beforeRunningCommand</key>
+ <string>nop</string>
+ <key>command</key>
+ <string>. "$TM_SUPPORT_PATH/lib/webpreview.sh"
+html_header "Jinja Syntax Validation" "Jinja Templates"
+
+export TMPFILE="$(mktemp -t tm_jinja_test__)"
+cat /dev/stdin &gt; $TMPFILE
+
+python &lt;&lt;'END'
+try:
+ from jinja import Environment
+ from jinja.exceptions import TemplateSyntaxError
+ e = Environment()
+except ImportError, e:
+ print "&lt;h2&gt;Error&lt;/h2&gt;"
+ print "&lt;p&gt;Jinja is not installed on this system, cannot perform syntax check.&lt;/p&gt;"
+else:
+ import sys, os
+ from cgi import escape
+
+ f = file(os.environ['TMPFILE'])
+ try:
+ source = f.read()
+ finally:
+ f.close()
+ try:
+ e.parse(source, os.environ['TM_FILEPATH'])
+ except TemplateSyntaxError, err:
+ print e.from_string('''
+ &lt;h2&gt;Syntax Error in Line {{ err.lineno or '?' }}&lt;/h2&gt;
+ &lt;p&gt;{{ err.message|e }}&lt;/p&gt;
+ &lt;p&gt;&lt;a href="txmt://open/?url=file://{{ err.filename|urlencode }}&amp;line={{ err.lineno }}"&gt;Go To Line&lt;/a&gt;&lt;/p&gt;
+ ''').render(err=err)
+ else:
+ print '&lt;h2&gt;Success&lt;/h2&gt;'
+ print '&lt;p&gt;no syntax errors found!&lt;/p&gt;'
+END
+
+html_footer
+rm $TMPFILE</string>
+ <key>input</key>
+ <string>document</string>
+ <key>keyEquivalent</key>
+ <string>^V</string>
+ <key>name</key>
+ <string>Validate Syntax</string>
+ <key>output</key>
+ <string>showAsHTML</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>uuid</key>
+ <string>07198D95-F344-47EB-B1F2-69F2DC10BA1F</string>
+</dict>
+</plist>
diff --git a/ext/Commands/Wrap in Tag.tmCommand b/ext/Commands/Wrap in Tag.tmCommand
new file mode 100644
index 0000000..6343d2e
--- /dev/null
+++ b/ext/Commands/Wrap in Tag.tmCommand
@@ -0,0 +1,26 @@
+<?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>beforeRunningCommand</key>
+ <string>nop</string>
+ <key>command</key>
+ <string>#!/usr/bin/env python
+import sys
+sys.stdout.write("{% ${1:%s}$2 %}$3" % sys.stdin.read().replace('}', '\\}'))</string>
+ <key>fallbackInput</key>
+ <string>word</string>
+ <key>input</key>
+ <string>selection</string>
+ <key>keyEquivalent</key>
+ <string>^@b</string>
+ <key>name</key>
+ <string>Wrap in Tag</string>
+ <key>output</key>
+ <string>insertAsSnippet</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>uuid</key>
+ <string>04309583-742D-4470-8FA7-A12EF5536215</string>
+</dict>
+</plist>
diff --git a/ext/Commands/Wrap in Variable Tag.tmCommand b/ext/Commands/Wrap in Variable Tag.tmCommand
new file mode 100644
index 0000000..c488ee9
--- /dev/null
+++ b/ext/Commands/Wrap in Variable Tag.tmCommand
@@ -0,0 +1,26 @@
+<?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>beforeRunningCommand</key>
+ <string>nop</string>
+ <key>command</key>
+ <string>#!/usr/bin/env python
+import sys
+sys.stdout.write("{{ ${1:%s}$2 }}$3" % sys.stdin.read().replace('}', '\\}'))</string>
+ <key>fallbackInput</key>
+ <string>word</string>
+ <key>input</key>
+ <string>selection</string>
+ <key>keyEquivalent</key>
+ <string>^@v</string>
+ <key>name</key>
+ <string>Wrap in Variable Tag</string>
+ <key>output</key>
+ <string>insertAsSnippet</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>uuid</key>
+ <string>BD126F84-B849-407F-BE62-EF984946EB82</string>
+</dict>
+</plist>
diff --git a/ext/Preferences/Symbol List: Blocks.tmPreferences b/ext/Preferences/Symbol List: Blocks.tmPreferences
new file mode 100644
index 0000000..1ea7d49
--- /dev/null
+++ b/ext/Preferences/Symbol List: Blocks.tmPreferences
@@ -0,0 +1,19 @@
+<?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>name</key>
+ <string>Symbol List: Blocks</string>
+ <key>scope</key>
+ <string>meta.scope.jinja.tag variable.other.jinja.block</string>
+ <key>settings</key>
+ <dict>
+ <key>showInSymbolList</key>
+ <integer>1</integer>
+ <key>symbolTransformation</key>
+ <string>s/^\s*([a-zA-Z_][a-zA-Z0-9_]*)/block $1/</string>
+ </dict>
+ <key>uuid</key>
+ <string>889E682B-196A-4424-8A87-EBFDC86BAAFC</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/abs.tmSnippet b/ext/Snippets/abs.tmSnippet
new file mode 100644
index 0000000..c6acdf8
--- /dev/null
+++ b/ext/Snippets/abs.tmSnippet
@@ -0,0 +1,16 @@
+<?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>content</key>
+ <string>|abs</string>
+ <key>name</key>
+ <string>abs</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>|</string>
+ <key>uuid</key>
+ <string>7E9487F0-B012-4735-96DA-124EF3C87B15</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/batch.tmSnippet b/ext/Snippets/batch.tmSnippet
new file mode 100644
index 0000000..0702e87
--- /dev/null
+++ b/ext/Snippets/batch.tmSnippet
@@ -0,0 +1,16 @@
+<?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>content</key>
+ <string>|batch(${1:rows})$2</string>
+ <key>name</key>
+ <string>batch</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>|</string>
+ <key>uuid</key>
+ <string>13A0482A-4EA3-406C-A74B-90131C529E25</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/block.tmSnippet b/ext/Snippets/block.tmSnippet
new file mode 100644
index 0000000..5d6396c
--- /dev/null
+++ b/ext/Snippets/block.tmSnippet
@@ -0,0 +1,18 @@
+<?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>content</key>
+ <string>{% block $1 %}
+ $2
+{% endblock %}</string>
+ <key>name</key>
+ <string>block</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>block</string>
+ <key>uuid</key>
+ <string>24C0F9CE-D3F1-4677-8A2E-EFFE776098F0</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/capitalize.tmSnippet b/ext/Snippets/capitalize.tmSnippet
new file mode 100644
index 0000000..48d924e
--- /dev/null
+++ b/ext/Snippets/capitalize.tmSnippet
@@ -0,0 +1,16 @@
+<?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>content</key>
+ <string>|capitalize</string>
+ <key>name</key>
+ <string>capitalize</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>|</string>
+ <key>uuid</key>
+ <string>4CCD42F3-8E6E-4B96-9D5D-BFB81E714948</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/capture.tmSnippet b/ext/Snippets/capture.tmSnippet
new file mode 100644
index 0000000..a117d6b
--- /dev/null
+++ b/ext/Snippets/capture.tmSnippet
@@ -0,0 +1,16 @@
+<?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>content</key>
+ <string>|capture(${1:captured})$2</string>
+ <key>name</key>
+ <string>capture</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>|</string>
+ <key>uuid</key>
+ <string>21EA80D9-967D-4681-BD17-765F1688EE5A</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/center.tmSnippet b/ext/Snippets/center.tmSnippet
new file mode 100644
index 0000000..f6d057d
--- /dev/null
+++ b/ext/Snippets/center.tmSnippet
@@ -0,0 +1,16 @@
+<?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>content</key>
+ <string>|center(${1:width})$2</string>
+ <key>name</key>
+ <string>center</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>|</string>
+ <key>uuid</key>
+ <string>65CCCA35-3231-4B63-B67D-5FB596D833C7</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/default.tmSnippet b/ext/Snippets/default.tmSnippet
new file mode 100644
index 0000000..6dd704c
--- /dev/null
+++ b/ext/Snippets/default.tmSnippet
@@ -0,0 +1,16 @@
+<?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>content</key>
+ <string>|default(${1:value})$2</string>
+ <key>name</key>
+ <string>default</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>|</string>
+ <key>uuid</key>
+ <string>3D708572-4CD6-40D6-9F3B-CC96784CC069</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/dformat.tmSnippet b/ext/Snippets/dformat.tmSnippet
new file mode 100644
index 0000000..53f8965
--- /dev/null
+++ b/ext/Snippets/dformat.tmSnippet
@@ -0,0 +1,16 @@
+<?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>content</key>
+ <string>|dformat(${2:{$1\}})$3</string>
+ <key>name</key>
+ <string>dformat</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>|</string>
+ <key>uuid</key>
+ <string>3416F5A3-C0A2-4B4B-ABBA-9EA40207E2B4</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/dictsort.tmSnippet b/ext/Snippets/dictsort.tmSnippet
new file mode 100644
index 0000000..a3e9f7c
--- /dev/null
+++ b/ext/Snippets/dictsort.tmSnippet
@@ -0,0 +1,16 @@
+<?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>content</key>
+ <string>|dictsort</string>
+ <key>name</key>
+ <string>dictsort</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>|</string>
+ <key>uuid</key>
+ <string>6721CF2A-9DA7-4A7E-85C2-FE609E100DE8</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/escape.tmSnippet b/ext/Snippets/escape.tmSnippet
new file mode 100644
index 0000000..5d026e4
--- /dev/null
+++ b/ext/Snippets/escape.tmSnippet
@@ -0,0 +1,16 @@
+<?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>content</key>
+ <string>|e</string>
+ <key>name</key>
+ <string>escape</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>|</string>
+ <key>uuid</key>
+ <string>FDE05A63-E81C-474C-A1A9-47FD862F39EE</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/extends.tmSnippet b/ext/Snippets/extends.tmSnippet
new file mode 100644
index 0000000..7af79ca
--- /dev/null
+++ b/ext/Snippets/extends.tmSnippet
@@ -0,0 +1,16 @@
+<?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>content</key>
+ <string>{% extends $1 %}</string>
+ <key>name</key>
+ <string>extends</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>extends</string>
+ <key>uuid</key>
+ <string>CE75CB61-2FDA-4139-B21E-7DE143FAFA1B</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/filesizeformat.tmSnippet b/ext/Snippets/filesizeformat.tmSnippet
new file mode 100644
index 0000000..cd47158
--- /dev/null
+++ b/ext/Snippets/filesizeformat.tmSnippet
@@ -0,0 +1,16 @@
+<?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>content</key>
+ <string>|filesizeformat</string>
+ <key>name</key>
+ <string>filesizeformat</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>|</string>
+ <key>uuid</key>
+ <string>9B7F35A9-3A98-4736-9AB3-21BD9BFB5069</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/filter.tmSnippet b/ext/Snippets/filter.tmSnippet
new file mode 100644
index 0000000..973e4bb
--- /dev/null
+++ b/ext/Snippets/filter.tmSnippet
@@ -0,0 +1,18 @@
+<?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>content</key>
+ <string>{% filter ${1:filter_name} %}
+ $2
+{% endfilter %}</string>
+ <key>name</key>
+ <string>filter</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>filter</string>
+ <key>uuid</key>
+ <string>85C07823-2B9D-4631-88E7-AEF4E1BE9482</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/first.tmSnippet b/ext/Snippets/first.tmSnippet
new file mode 100644
index 0000000..81f4fb9
--- /dev/null
+++ b/ext/Snippets/first.tmSnippet
@@ -0,0 +1,16 @@
+<?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>content</key>
+ <string>|first</string>
+ <key>name</key>
+ <string>first</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>|</string>
+ <key>uuid</key>
+ <string>FDFF242A-F3FB-4A4C-BE1A-F1311158B32B</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/float.tmSnippet b/ext/Snippets/float.tmSnippet
new file mode 100644
index 0000000..d310ecb
--- /dev/null
+++ b/ext/Snippets/float.tmSnippet
@@ -0,0 +1,16 @@
+<?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>content</key>
+ <string>|float</string>
+ <key>name</key>
+ <string>float</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>|</string>
+ <key>uuid</key>
+ <string>4BA654F6-F412-4AF9-9CEA-72BD1A709AF4</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/for ___ in ___.tmSnippet b/ext/Snippets/for ___ in ___.tmSnippet
new file mode 100644
index 0000000..25989e7
--- /dev/null
+++ b/ext/Snippets/for ___ in ___.tmSnippet
@@ -0,0 +1,18 @@
+<?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>content</key>
+ <string>{% for ${1:item} in ${2:$1s} %}
+ $3
+{% endfor %}</string>
+ <key>name</key>
+ <string>for</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>for</string>
+ <key>uuid</key>
+ <string>C0C77C85-3A4E-4DAE-AEE3-533FA0DEA0C0</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/format.tmSnippet b/ext/Snippets/format.tmSnippet
new file mode 100644
index 0000000..6be669d
--- /dev/null
+++ b/ext/Snippets/format.tmSnippet
@@ -0,0 +1,16 @@
+<?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>content</key>
+ <string>|format(${1:args})$2</string>
+ <key>name</key>
+ <string>format</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>|</string>
+ <key>uuid</key>
+ <string>93EEDABE-BC52-4883-AF3D-DE4A44C3C246</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/if.tmSnippet b/ext/Snippets/if.tmSnippet
new file mode 100644
index 0000000..2391083
--- /dev/null
+++ b/ext/Snippets/if.tmSnippet
@@ -0,0 +1,18 @@
+<?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>content</key>
+ <string>{% if $1 %}
+ $1
+{% endif %}</string>
+ <key>name</key>
+ <string>if</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>if</string>
+ <key>uuid</key>
+ <string>5B95AA2C-B0E7-4886-9A55-90C1939D39C8</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/indent.tmSnippet b/ext/Snippets/indent.tmSnippet
new file mode 100644
index 0000000..2aa765c
--- /dev/null
+++ b/ext/Snippets/indent.tmSnippet
@@ -0,0 +1,16 @@
+<?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>content</key>
+ <string>|indent(${1:width})$2</string>
+ <key>name</key>
+ <string>indent</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>|</string>
+ <key>uuid</key>
+ <string>307C3853-AA0B-441C-A3D4-DE5CAE2C1673</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/int.tmSnippet b/ext/Snippets/int.tmSnippet
new file mode 100644
index 0000000..79455af
--- /dev/null
+++ b/ext/Snippets/int.tmSnippet
@@ -0,0 +1,16 @@
+<?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>content</key>
+ <string>|int</string>
+ <key>name</key>
+ <string>int</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>|</string>
+ <key>uuid</key>
+ <string>0A6ECEB6-410E-4CF5-823E-139E8769BA16</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/join.tmSnippet b/ext/Snippets/join.tmSnippet
new file mode 100644
index 0000000..85f54a1
--- /dev/null
+++ b/ext/Snippets/join.tmSnippet
@@ -0,0 +1,16 @@
+<?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>content</key>
+ <string>|join(${1:''})$2</string>
+ <key>name</key>
+ <string>join</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>|</string>
+ <key>uuid</key>
+ <string>FBD6F4B2-3206-4CA9-AE99-B2C78149A357</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/jsonencode.tmSnippet b/ext/Snippets/jsonencode.tmSnippet
new file mode 100644
index 0000000..25c2c65
--- /dev/null
+++ b/ext/Snippets/jsonencode.tmSnippet
@@ -0,0 +1,16 @@
+<?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>content</key>
+ <string>|jsonencode</string>
+ <key>name</key>
+ <string>jsonencode</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>|</string>
+ <key>uuid</key>
+ <string>93E22AC4-B2B8-426D-89C9-FB416F24F975</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/last.tmSnippet b/ext/Snippets/last.tmSnippet
new file mode 100644
index 0000000..29bd222
--- /dev/null
+++ b/ext/Snippets/last.tmSnippet
@@ -0,0 +1,16 @@
+<?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>content</key>
+ <string>|last</string>
+ <key>name</key>
+ <string>last</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>|</string>
+ <key>uuid</key>
+ <string>6B7CA02D-D6CF-4F16-9A1E-7610DAEBB43F</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/length.tmSnippet b/ext/Snippets/length.tmSnippet
new file mode 100644
index 0000000..104ddeb
--- /dev/null
+++ b/ext/Snippets/length.tmSnippet
@@ -0,0 +1,16 @@
+<?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>content</key>
+ <string>|length</string>
+ <key>name</key>
+ <string>length</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>|</string>
+ <key>uuid</key>
+ <string>7F5037F1-CCC2-4179-98CA-66D001144AC2</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/lower.tmSnippet b/ext/Snippets/lower.tmSnippet
new file mode 100644
index 0000000..b720579
--- /dev/null
+++ b/ext/Snippets/lower.tmSnippet
@@ -0,0 +1,16 @@
+<?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>content</key>
+ <string>|lower</string>
+ <key>name</key>
+ <string>lower</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>|</string>
+ <key>uuid</key>
+ <string>6F1D6BEF-3D53-4EC8-9C42-DF0D1D2E68C5</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/macro.tmSnippet b/ext/Snippets/macro.tmSnippet
new file mode 100644
index 0000000..d064eeb
--- /dev/null
+++ b/ext/Snippets/macro.tmSnippet
@@ -0,0 +1,18 @@
+<?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>content</key>
+ <string>{% macro ${1:macro_name}($2) %}
+ $3
+{% endmacro %}</string>
+ <key>name</key>
+ <string>macro</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>macro</string>
+ <key>uuid</key>
+ <string>D3BE8551-A17F-47A4-A47D-02F00124F984</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/markdown.tmSnippet b/ext/Snippets/markdown.tmSnippet
new file mode 100644
index 0000000..adba556
--- /dev/null
+++ b/ext/Snippets/markdown.tmSnippet
@@ -0,0 +1,16 @@
+<?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>content</key>
+ <string>|markdown</string>
+ <key>name</key>
+ <string>markdown</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>|</string>
+ <key>uuid</key>
+ <string>78EEA703-C74E-4D71-9DDA-5674E3AB50D7</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/pprint.tmSnippet b/ext/Snippets/pprint.tmSnippet
new file mode 100644
index 0000000..6adfe95
--- /dev/null
+++ b/ext/Snippets/pprint.tmSnippet
@@ -0,0 +1,16 @@
+<?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>content</key>
+ <string>|pprint</string>
+ <key>name</key>
+ <string>pprint</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>|</string>
+ <key>uuid</key>
+ <string>1B45C5DE-21D2-4E2A-B7C6-794C9D7ECB99</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/random.tmSnippet b/ext/Snippets/random.tmSnippet
new file mode 100644
index 0000000..4a769c5
--- /dev/null
+++ b/ext/Snippets/random.tmSnippet
@@ -0,0 +1,16 @@
+<?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>content</key>
+ <string>|random</string>
+ <key>name</key>
+ <string>random</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>|</string>
+ <key>uuid</key>
+ <string>B964A222-F305-44C9-B23C-0D2A55112C43</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/raw.tmSnippet b/ext/Snippets/raw.tmSnippet
new file mode 100644
index 0000000..45e5e53
--- /dev/null
+++ b/ext/Snippets/raw.tmSnippet
@@ -0,0 +1,18 @@
+<?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>content</key>
+ <string>{% raw %}
+ $1
+{% endraw %}</string>
+ <key>name</key>
+ <string>raw</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>raw</string>
+ <key>uuid</key>
+ <string>73F00DE1-17B0-4C8C-B495-82A3689EB6F1</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/replace.tmSnippet b/ext/Snippets/replace.tmSnippet
new file mode 100644
index 0000000..b06b40f
--- /dev/null
+++ b/ext/Snippets/replace.tmSnippet
@@ -0,0 +1,16 @@
+<?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>content</key>
+ <string>|replace</string>
+ <key>name</key>
+ <string>replace</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>|</string>
+ <key>uuid</key>
+ <string>C2DF4AC6-C586-4F6C-9A97-916558C248D7</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/reverse.tmSnippet b/ext/Snippets/reverse.tmSnippet
new file mode 100644
index 0000000..51913c6
--- /dev/null
+++ b/ext/Snippets/reverse.tmSnippet
@@ -0,0 +1,16 @@
+<?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>content</key>
+ <string>|reverse</string>
+ <key>name</key>
+ <string>reverse</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>|</string>
+ <key>uuid</key>
+ <string>7DE5D7CF-81BB-4AB3-A9B8-938D47918237</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/round.tmSnippet b/ext/Snippets/round.tmSnippet
new file mode 100644
index 0000000..d5ae782
--- /dev/null
+++ b/ext/Snippets/round.tmSnippet
@@ -0,0 +1,16 @@
+<?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>content</key>
+ <string>|round(${1:places})$2</string>
+ <key>name</key>
+ <string>round</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>|</string>
+ <key>uuid</key>
+ <string>95E641E1-CAA4-4984-B406-54FEC11D5F1B</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/rst.tmSnippet b/ext/Snippets/rst.tmSnippet
new file mode 100644
index 0000000..ad07034
--- /dev/null
+++ b/ext/Snippets/rst.tmSnippet
@@ -0,0 +1,16 @@
+<?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>content</key>
+ <string>|rst</string>
+ <key>name</key>
+ <string>rst</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>|</string>
+ <key>uuid</key>
+ <string>E0F620DA-1CDA-4913-AD04-CAC8C63089D8</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/slice.tmSnippet b/ext/Snippets/slice.tmSnippet
new file mode 100644
index 0000000..4550ac0
--- /dev/null
+++ b/ext/Snippets/slice.tmSnippet
@@ -0,0 +1,16 @@
+<?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>content</key>
+ <string>|slice(${1:columns})</string>
+ <key>name</key>
+ <string>slice</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>|</string>
+ <key>uuid</key>
+ <string>E527CC83-06C6-4B54-8FDC-61FB4554B251</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/sort.tmSnippet b/ext/Snippets/sort.tmSnippet
new file mode 100644
index 0000000..f6e2dcd
--- /dev/null
+++ b/ext/Snippets/sort.tmSnippet
@@ -0,0 +1,16 @@
+<?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>content</key>
+ <string>|sort</string>
+ <key>name</key>
+ <string>sort</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>|</string>
+ <key>uuid</key>
+ <string>27647146-46AC-4F2A-9069-178E359E55DF</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/string.tmSnippet b/ext/Snippets/string.tmSnippet
new file mode 100644
index 0000000..8593ffb
--- /dev/null
+++ b/ext/Snippets/string.tmSnippet
@@ -0,0 +1,16 @@
+<?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>content</key>
+ <string>|string</string>
+ <key>name</key>
+ <string>string</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>|</string>
+ <key>uuid</key>
+ <string>D64E1E71-A89E-4349-8178-97BC06A5B35F</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/striptags.tmSnippet b/ext/Snippets/striptags.tmSnippet
new file mode 100644
index 0000000..665fa3c
--- /dev/null
+++ b/ext/Snippets/striptags.tmSnippet
@@ -0,0 +1,16 @@
+<?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>content</key>
+ <string>|striptags</string>
+ <key>name</key>
+ <string>striptags</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>|</string>
+ <key>uuid</key>
+ <string>866F74E0-D58C-4BCB-A256-3D94CFB612D9</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/sum.tmSnippet b/ext/Snippets/sum.tmSnippet
new file mode 100644
index 0000000..c937a63
--- /dev/null
+++ b/ext/Snippets/sum.tmSnippet
@@ -0,0 +1,16 @@
+<?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>content</key>
+ <string>|sum</string>
+ <key>name</key>
+ <string>sum</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>|</string>
+ <key>uuid</key>
+ <string>AE1A2C7A-2D10-466F-9EB0-E8B540E7BA6E</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/textile.tmSnippet b/ext/Snippets/textile.tmSnippet
new file mode 100644
index 0000000..64be825
--- /dev/null
+++ b/ext/Snippets/textile.tmSnippet
@@ -0,0 +1,16 @@
+<?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>content</key>
+ <string>|textile</string>
+ <key>name</key>
+ <string>textile</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>|</string>
+ <key>uuid</key>
+ <string>2EB9BB55-E38C-4FA9-81B7-73B1A73F65C7</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/title.tmSnippet b/ext/Snippets/title.tmSnippet
new file mode 100644
index 0000000..319f08f
--- /dev/null
+++ b/ext/Snippets/title.tmSnippet
@@ -0,0 +1,16 @@
+<?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>content</key>
+ <string>|title</string>
+ <key>name</key>
+ <string>title</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>|</string>
+ <key>uuid</key>
+ <string>B99D5C37-BE6D-4397-9F32-90BD1A02E016</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/trim.tmSnippet b/ext/Snippets/trim.tmSnippet
new file mode 100644
index 0000000..fed7c1c
--- /dev/null
+++ b/ext/Snippets/trim.tmSnippet
@@ -0,0 +1,16 @@
+<?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>content</key>
+ <string>|trim</string>
+ <key>name</key>
+ <string>trim</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>|</string>
+ <key>uuid</key>
+ <string>A199B66F-5B1A-4210-9B22-1FC6738EAD76</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/truncate.tmSnippet b/ext/Snippets/truncate.tmSnippet
new file mode 100644
index 0000000..29dfe28
--- /dev/null
+++ b/ext/Snippets/truncate.tmSnippet
@@ -0,0 +1,16 @@
+<?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>content</key>
+ <string>|truncate</string>
+ <key>name</key>
+ <string>truncate</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>|</string>
+ <key>uuid</key>
+ <string>3F749711-C818-41C2-8FB0-844CD2839617</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/upper.tmSnippet b/ext/Snippets/upper.tmSnippet
new file mode 100644
index 0000000..dd0dfab
--- /dev/null
+++ b/ext/Snippets/upper.tmSnippet
@@ -0,0 +1,16 @@
+<?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>content</key>
+ <string>|upper</string>
+ <key>name</key>
+ <string>upper</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>|</string>
+ <key>uuid</key>
+ <string>823ABA67-7CA7-4F4F-ACC1-7D84AAC56469</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/urlencode.tmSnippet b/ext/Snippets/urlencode.tmSnippet
new file mode 100644
index 0000000..b09b40c
--- /dev/null
+++ b/ext/Snippets/urlencode.tmSnippet
@@ -0,0 +1,16 @@
+<?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>content</key>
+ <string>|urlencode</string>
+ <key>name</key>
+ <string>urlencode</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>|</string>
+ <key>uuid</key>
+ <string>1C0A622E-7F37-437F-95A3-5342DEA80B4E</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/urlize.tmSnippet b/ext/Snippets/urlize.tmSnippet
new file mode 100644
index 0000000..f1524b0
--- /dev/null
+++ b/ext/Snippets/urlize.tmSnippet
@@ -0,0 +1,16 @@
+<?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>content</key>
+ <string>|urlize(${1:40}, ${2:true})$3</string>
+ <key>name</key>
+ <string>urlize</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>|</string>
+ <key>uuid</key>
+ <string>DEDD7EB3-FFD2-4BFD-8D59-5DA8ED0F567F</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/wordcount.tmSnippet b/ext/Snippets/wordcount.tmSnippet
new file mode 100644
index 0000000..fe86aec
--- /dev/null
+++ b/ext/Snippets/wordcount.tmSnippet
@@ -0,0 +1,16 @@
+<?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>content</key>
+ <string>|wordcount</string>
+ <key>name</key>
+ <string>wordcount</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>|</string>
+ <key>uuid</key>
+ <string>40423A4E-9ED4-402C-A5BB-193797A73101</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/wordwrap.tmSnippet b/ext/Snippets/wordwrap.tmSnippet
new file mode 100644
index 0000000..0065f25
--- /dev/null
+++ b/ext/Snippets/wordwrap.tmSnippet
@@ -0,0 +1,16 @@
+<?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>content</key>
+ <string>|wordwrap</string>
+ <key>name</key>
+ <string>wordwrap</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>|</string>
+ <key>uuid</key>
+ <string>6000AFC3-4398-4500-B055-296D17DDAB48</string>
+</dict>
+</plist>
diff --git a/ext/Snippets/xmlattr.tmSnippet b/ext/Snippets/xmlattr.tmSnippet
new file mode 100644
index 0000000..5e8fbeb
--- /dev/null
+++ b/ext/Snippets/xmlattr.tmSnippet
@@ -0,0 +1,16 @@
+<?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>content</key>
+ <string>|xmlattr</string>
+ <key>name</key>
+ <string>xmlattr</string>
+ <key>scope</key>
+ <string>source.jinja, text.html.jinja</string>
+ <key>tabTrigger</key>
+ <string>|</string>
+ <key>uuid</key>
+ <string>CA8BCFEA-2BDB-4CB8-8E31-6388ECEF05BB</string>
+</dict>
+</plist>
diff --git a/ext/Syntaxes/HTML (Jinja Templates).tmLanguage b/ext/Syntaxes/HTML (Jinja Templates).tmLanguage
new file mode 100644
index 0000000..3ef69f6
--- /dev/null
+++ b/ext/Syntaxes/HTML (Jinja Templates).tmLanguage
@@ -0,0 +1,29 @@
+<?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>(&lt;(?i:(head|table|tr|div|style|script|ul|ol|form|dl))\b.*?&gt;|{%\s*(block|filter|for|if|macro|raw))</string>
+ <key>foldingStopMarker</key>
+ <string>(&lt;/(?i:(head|table|tr|div|style|script|ul|ol|form|dl))\b.*?&gt;|{%\s*(endblock|endfilter|endfor|endif|endmacro|endraw)\s*%})</string>
+ <key>name</key>
+ <string>HTML (Jinja Templates)</string>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>include</key>
+ <string>source.jinja</string>
+ </dict>
+ <dict>
+ <key>include</key>
+ <string>text.html.basic</string>
+ </dict>
+ </array>
+ <key>scopeName</key>
+ <string>text.html.jinja</string>
+ <key>uuid</key>
+ <string>488399C0-5D29-4704-BE85-E03A461C34E7</string>
+</dict>
+</plist>
diff --git a/ext/Syntaxes/Jinja Templates.tmLanguage b/ext/Syntaxes/Jinja Templates.tmLanguage
new file mode 100644
index 0000000..57e20ac
--- /dev/null
+++ b/ext/Syntaxes/Jinja Templates.tmLanguage
@@ -0,0 +1,518 @@
+<?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>
diff --git a/ext/info.plist b/ext/info.plist
new file mode 100644
index 0000000..196f5f0
--- /dev/null
+++ b/ext/info.plist
@@ -0,0 +1,148 @@
+<?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>mainMenu</key>
+ <dict>
+ <key>items</key>
+ <array>
+ <string>85E26B4F-795C-4380-AA26-EF994D3F1220</string>
+ <string>8AC9FEED-B1BB-49A7-94FE-EAE734A90C79</string>
+ <string>44B1526F-5825-40A5-AB42-6433F1DD02D9</string>
+ <string>------------------------------------</string>
+ <string>07198D95-F344-47EB-B1F2-69F2DC10BA1F</string>
+ </array>
+ <key>submenus</key>
+ <dict>
+ <key>85E26B4F-795C-4380-AA26-EF994D3F1220</key>
+ <dict>
+ <key>items</key>
+ <array>
+ <string>5B95AA2C-B0E7-4886-9A55-90C1939D39C8</string>
+ <string>24C0F9CE-D3F1-4677-8A2E-EFFE776098F0</string>
+ <string>D3BE8551-A17F-47A4-A47D-02F00124F984</string>
+ <string>C0C77C85-3A4E-4DAE-AEE3-533FA0DEA0C0</string>
+ <string>85C07823-2B9D-4631-88E7-AEF4E1BE9482</string>
+ <string>73F00DE1-17B0-4C8C-B495-82A3689EB6F1</string>
+ <string>CE75CB61-2FDA-4139-B21E-7DE143FAFA1B</string>
+ </array>
+ <key>name</key>
+ <string>Snippets</string>
+ </dict>
+ <key>8AC9FEED-B1BB-49A7-94FE-EAE734A90C79</key>
+ <dict>
+ <key>items</key>
+ <array>
+ <string>7E9487F0-B012-4735-96DA-124EF3C87B15</string>
+ <string>13A0482A-4EA3-406C-A74B-90131C529E25</string>
+ <string>4CCD42F3-8E6E-4B96-9D5D-BFB81E714948</string>
+ <string>21EA80D9-967D-4681-BD17-765F1688EE5A</string>
+ <string>65CCCA35-3231-4B63-B67D-5FB596D833C7</string>
+ <string>3D708572-4CD6-40D6-9F3B-CC96784CC069</string>
+ <string>3416F5A3-C0A2-4B4B-ABBA-9EA40207E2B4</string>
+ <string>6721CF2A-9DA7-4A7E-85C2-FE609E100DE8</string>
+ <string>FDE05A63-E81C-474C-A1A9-47FD862F39EE</string>
+ <string>9B7F35A9-3A98-4736-9AB3-21BD9BFB5069</string>
+ <string>FDFF242A-F3FB-4A4C-BE1A-F1311158B32B</string>
+ <string>4BA654F6-F412-4AF9-9CEA-72BD1A709AF4</string>
+ <string>93EEDABE-BC52-4883-AF3D-DE4A44C3C246</string>
+ <string>307C3853-AA0B-441C-A3D4-DE5CAE2C1673</string>
+ <string>0A6ECEB6-410E-4CF5-823E-139E8769BA16</string>
+ <string>FBD6F4B2-3206-4CA9-AE99-B2C78149A357</string>
+ <string>93E22AC4-B2B8-426D-89C9-FB416F24F975</string>
+ <string>6B7CA02D-D6CF-4F16-9A1E-7610DAEBB43F</string>
+ <string>7F5037F1-CCC2-4179-98CA-66D001144AC2</string>
+ <string>6F1D6BEF-3D53-4EC8-9C42-DF0D1D2E68C5</string>
+ <string>78EEA703-C74E-4D71-9DDA-5674E3AB50D7</string>
+ <string>1B45C5DE-21D2-4E2A-B7C6-794C9D7ECB99</string>
+ <string>B964A222-F305-44C9-B23C-0D2A55112C43</string>
+ <string>C2DF4AC6-C586-4F6C-9A97-916558C248D7</string>
+ <string>7DE5D7CF-81BB-4AB3-A9B8-938D47918237</string>
+ <string>95E641E1-CAA4-4984-B406-54FEC11D5F1B</string>
+ <string>E0F620DA-1CDA-4913-AD04-CAC8C63089D8</string>
+ <string>E527CC83-06C6-4B54-8FDC-61FB4554B251</string>
+ <string>27647146-46AC-4F2A-9069-178E359E55DF</string>
+ <string>D64E1E71-A89E-4349-8178-97BC06A5B35F</string>
+ <string>866F74E0-D58C-4BCB-A256-3D94CFB612D9</string>
+ <string>AE1A2C7A-2D10-466F-9EB0-E8B540E7BA6E</string>
+ <string>2EB9BB55-E38C-4FA9-81B7-73B1A73F65C7</string>
+ <string>B99D5C37-BE6D-4397-9F32-90BD1A02E016</string>
+ <string>A199B66F-5B1A-4210-9B22-1FC6738EAD76</string>
+ <string>3F749711-C818-41C2-8FB0-844CD2839617</string>
+ <string>823ABA67-7CA7-4F4F-ACC1-7D84AAC56469</string>
+ <string>1C0A622E-7F37-437F-95A3-5342DEA80B4E</string>
+ <string>DEDD7EB3-FFD2-4BFD-8D59-5DA8ED0F567F</string>
+ <string>40423A4E-9ED4-402C-A5BB-193797A73101</string>
+ <string>6000AFC3-4398-4500-B055-296D17DDAB48</string>
+ <string>CA8BCFEA-2BDB-4CB8-8E31-6388ECEF05BB</string>
+ </array>
+ <key>name</key>
+ <string>Filters</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>name</key>
+ <string>Jinja Templates</string>
+ <key>ordering</key>
+ <array>
+ <string>CB0F3F8E-6062-4610-85B3-8905C61AD85A</string>
+ <string>488399C0-5D29-4704-BE85-E03A461C34E7</string>
+ <string>C0C77C85-3A4E-4DAE-AEE3-533FA0DEA0C0</string>
+ <string>5B95AA2C-B0E7-4886-9A55-90C1939D39C8</string>
+ <string>24C0F9CE-D3F1-4677-8A2E-EFFE776098F0</string>
+ <string>D3BE8551-A17F-47A4-A47D-02F00124F984</string>
+ <string>85C07823-2B9D-4631-88E7-AEF4E1BE9482</string>
+ <string>73F00DE1-17B0-4C8C-B495-82A3689EB6F1</string>
+ <string>CE75CB61-2FDA-4139-B21E-7DE143FAFA1B</string>
+ <string>7E9487F0-B012-4735-96DA-124EF3C87B15</string>
+ <string>13A0482A-4EA3-406C-A74B-90131C529E25</string>
+ <string>4CCD42F3-8E6E-4B96-9D5D-BFB81E714948</string>
+ <string>21EA80D9-967D-4681-BD17-765F1688EE5A</string>
+ <string>65CCCA35-3231-4B63-B67D-5FB596D833C7</string>
+ <string>3D708572-4CD6-40D6-9F3B-CC96784CC069</string>
+ <string>3416F5A3-C0A2-4B4B-ABBA-9EA40207E2B4</string>
+ <string>6721CF2A-9DA7-4A7E-85C2-FE609E100DE8</string>
+ <string>FDE05A63-E81C-474C-A1A9-47FD862F39EE</string>
+ <string>9B7F35A9-3A98-4736-9AB3-21BD9BFB5069</string>
+ <string>FDFF242A-F3FB-4A4C-BE1A-F1311158B32B</string>
+ <string>4BA654F6-F412-4AF9-9CEA-72BD1A709AF4</string>
+ <string>93EEDABE-BC52-4883-AF3D-DE4A44C3C246</string>
+ <string>307C3853-AA0B-441C-A3D4-DE5CAE2C1673</string>
+ <string>0A6ECEB6-410E-4CF5-823E-139E8769BA16</string>
+ <string>FBD6F4B2-3206-4CA9-AE99-B2C78149A357</string>
+ <string>93E22AC4-B2B8-426D-89C9-FB416F24F975</string>
+ <string>6B7CA02D-D6CF-4F16-9A1E-7610DAEBB43F</string>
+ <string>7F5037F1-CCC2-4179-98CA-66D001144AC2</string>
+ <string>6F1D6BEF-3D53-4EC8-9C42-DF0D1D2E68C5</string>
+ <string>78EEA703-C74E-4D71-9DDA-5674E3AB50D7</string>
+ <string>1B45C5DE-21D2-4E2A-B7C6-794C9D7ECB99</string>
+ <string>B964A222-F305-44C9-B23C-0D2A55112C43</string>
+ <string>C2DF4AC6-C586-4F6C-9A97-916558C248D7</string>
+ <string>7DE5D7CF-81BB-4AB3-A9B8-938D47918237</string>
+ <string>95E641E1-CAA4-4984-B406-54FEC11D5F1B</string>
+ <string>E0F620DA-1CDA-4913-AD04-CAC8C63089D8</string>
+ <string>E527CC83-06C6-4B54-8FDC-61FB4554B251</string>
+ <string>27647146-46AC-4F2A-9069-178E359E55DF</string>
+ <string>D64E1E71-A89E-4349-8178-97BC06A5B35F</string>
+ <string>866F74E0-D58C-4BCB-A256-3D94CFB612D9</string>
+ <string>AE1A2C7A-2D10-466F-9EB0-E8B540E7BA6E</string>
+ <string>2EB9BB55-E38C-4FA9-81B7-73B1A73F65C7</string>
+ <string>B99D5C37-BE6D-4397-9F32-90BD1A02E016</string>
+ <string>A199B66F-5B1A-4210-9B22-1FC6738EAD76</string>
+ <string>3F749711-C818-41C2-8FB0-844CD2839617</string>
+ <string>823ABA67-7CA7-4F4F-ACC1-7D84AAC56469</string>
+ <string>1C0A622E-7F37-437F-95A3-5342DEA80B4E</string>
+ <string>DEDD7EB3-FFD2-4BFD-8D59-5DA8ED0F567F</string>
+ <string>40423A4E-9ED4-402C-A5BB-193797A73101</string>
+ <string>6000AFC3-4398-4500-B055-296D17DDAB48</string>
+ <string>CA8BCFEA-2BDB-4CB8-8E31-6388ECEF05BB</string>
+ <string>889E682B-196A-4424-8A87-EBFDC86BAAFC</string>
+ <string>44B1526F-5825-40A5-AB42-6433F1DD02D9</string>
+ <string>07198D95-F344-47EB-B1F2-69F2DC10BA1F</string>
+ <string>BD126F84-B849-407F-BE62-EF984946EB82</string>
+ <string>04309583-742D-4470-8FA7-A12EF5536215</string>
+ </array>
+ <key>uuid</key>
+ <string>B4E6C4DD-43DB-473D-8E0F-662C5E64C31D</string>
+</dict>
+</plist>