added jinja tm bundle
authorArmin Ronacher <armin.ronacher@active-4.com>
Thu, 29 Nov 2007 18:42:40 +0000 (19:42 +0100)
committerArmin Ronacher <armin.ronacher@active-4.com>
Thu, 29 Nov 2007 18:42:40 +0000 (19:42 +0100)
--HG--
branch : trunk

57 files changed:
ext/Commands/Help.tmCommand [new file with mode: 0644]
ext/Commands/Validate Syntax.tmCommand [new file with mode: 0644]
ext/Commands/Wrap in Tag.tmCommand [new file with mode: 0644]
ext/Commands/Wrap in Variable Tag.tmCommand [new file with mode: 0644]
ext/Preferences/Symbol List: Blocks.tmPreferences [new file with mode: 0644]
ext/Snippets/abs.tmSnippet [new file with mode: 0644]
ext/Snippets/batch.tmSnippet [new file with mode: 0644]
ext/Snippets/block.tmSnippet [new file with mode: 0644]
ext/Snippets/capitalize.tmSnippet [new file with mode: 0644]
ext/Snippets/capture.tmSnippet [new file with mode: 0644]
ext/Snippets/center.tmSnippet [new file with mode: 0644]
ext/Snippets/default.tmSnippet [new file with mode: 0644]
ext/Snippets/dformat.tmSnippet [new file with mode: 0644]
ext/Snippets/dictsort.tmSnippet [new file with mode: 0644]
ext/Snippets/escape.tmSnippet [new file with mode: 0644]
ext/Snippets/extends.tmSnippet [new file with mode: 0644]
ext/Snippets/filesizeformat.tmSnippet [new file with mode: 0644]
ext/Snippets/filter.tmSnippet [new file with mode: 0644]
ext/Snippets/first.tmSnippet [new file with mode: 0644]
ext/Snippets/float.tmSnippet [new file with mode: 0644]
ext/Snippets/for ___ in ___.tmSnippet [new file with mode: 0644]
ext/Snippets/format.tmSnippet [new file with mode: 0644]
ext/Snippets/if.tmSnippet [new file with mode: 0644]
ext/Snippets/indent.tmSnippet [new file with mode: 0644]
ext/Snippets/int.tmSnippet [new file with mode: 0644]
ext/Snippets/join.tmSnippet [new file with mode: 0644]
ext/Snippets/jsonencode.tmSnippet [new file with mode: 0644]
ext/Snippets/last.tmSnippet [new file with mode: 0644]
ext/Snippets/length.tmSnippet [new file with mode: 0644]
ext/Snippets/lower.tmSnippet [new file with mode: 0644]
ext/Snippets/macro.tmSnippet [new file with mode: 0644]
ext/Snippets/markdown.tmSnippet [new file with mode: 0644]
ext/Snippets/pprint.tmSnippet [new file with mode: 0644]
ext/Snippets/random.tmSnippet [new file with mode: 0644]
ext/Snippets/raw.tmSnippet [new file with mode: 0644]
ext/Snippets/replace.tmSnippet [new file with mode: 0644]
ext/Snippets/reverse.tmSnippet [new file with mode: 0644]
ext/Snippets/round.tmSnippet [new file with mode: 0644]
ext/Snippets/rst.tmSnippet [new file with mode: 0644]
ext/Snippets/slice.tmSnippet [new file with mode: 0644]
ext/Snippets/sort.tmSnippet [new file with mode: 0644]
ext/Snippets/string.tmSnippet [new file with mode: 0644]
ext/Snippets/striptags.tmSnippet [new file with mode: 0644]
ext/Snippets/sum.tmSnippet [new file with mode: 0644]
ext/Snippets/textile.tmSnippet [new file with mode: 0644]
ext/Snippets/title.tmSnippet [new file with mode: 0644]
ext/Snippets/trim.tmSnippet [new file with mode: 0644]
ext/Snippets/truncate.tmSnippet [new file with mode: 0644]
ext/Snippets/upper.tmSnippet [new file with mode: 0644]
ext/Snippets/urlencode.tmSnippet [new file with mode: 0644]
ext/Snippets/urlize.tmSnippet [new file with mode: 0644]
ext/Snippets/wordcount.tmSnippet [new file with mode: 0644]
ext/Snippets/wordwrap.tmSnippet [new file with mode: 0644]
ext/Snippets/xmlattr.tmSnippet [new file with mode: 0644]
ext/Syntaxes/HTML (Jinja Templates).tmLanguage [new file with mode: 0644]
ext/Syntaxes/Jinja Templates.tmLanguage [new file with mode: 0644]
ext/info.plist [new file with mode: 0644]

diff --git a/ext/Commands/Help.tmCommand b/ext/Commands/Help.tmCommand
new file mode 100644 (file)
index 0000000..d106dec
--- /dev/null
@@ -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 (file)
index 0000000..804906f
--- /dev/null
@@ -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 (file)
index 0000000..6343d2e
--- /dev/null
@@ -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 (file)
index 0000000..c488ee9
--- /dev/null
@@ -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 (file)
index 0000000..1ea7d49
--- /dev/null
@@ -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 (file)
index 0000000..c6acdf8
--- /dev/null
@@ -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 (file)
index 0000000..0702e87
--- /dev/null
@@ -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 (file)
index 0000000..5d6396c
--- /dev/null
@@ -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 (file)
index 0000000..48d924e
--- /dev/null
@@ -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 (file)
index 0000000..a117d6b
--- /dev/null
@@ -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 (file)
index 0000000..f6d057d
--- /dev/null
@@ -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 (file)
index 0000000..6dd704c
--- /dev/null
@@ -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 (file)
index 0000000..53f8965
--- /dev/null
@@ -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 (file)
index 0000000..a3e9f7c
--- /dev/null
@@ -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 (file)
index 0000000..5d026e4
--- /dev/null
@@ -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 (file)
index 0000000..7af79ca
--- /dev/null
@@ -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 (file)
index 0000000..cd47158
--- /dev/null
@@ -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 (file)
index 0000000..973e4bb
--- /dev/null
@@ -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 (file)
index 0000000..81f4fb9
--- /dev/null
@@ -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 (file)
index 0000000..d310ecb
--- /dev/null
@@ -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 (file)
index 0000000..25989e7
--- /dev/null
@@ -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 (file)
index 0000000..6be669d
--- /dev/null
@@ -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 (file)
index 0000000..2391083
--- /dev/null
@@ -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 (file)
index 0000000..2aa765c
--- /dev/null
@@ -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 (file)
index 0000000..79455af
--- /dev/null
@@ -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 (file)
index 0000000..85f54a1
--- /dev/null
@@ -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 (file)
index 0000000..25c2c65
--- /dev/null
@@ -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 (file)
index 0000000..29bd222
--- /dev/null
@@ -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 (file)
index 0000000..104ddeb
--- /dev/null
@@ -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 (file)
index 0000000..b720579
--- /dev/null
@@ -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 (file)
index 0000000..d064eeb
--- /dev/null
@@ -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 (file)
index 0000000..adba556
--- /dev/null
@@ -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 (file)
index 0000000..6adfe95
--- /dev/null
@@ -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 (file)
index 0000000..4a769c5
--- /dev/null
@@ -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 (file)
index 0000000..45e5e53
--- /dev/null
@@ -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 (file)
index 0000000..b06b40f
--- /dev/null
@@ -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 (file)
index 0000000..51913c6
--- /dev/null
@@ -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 (file)
index 0000000..d5ae782
--- /dev/null
@@ -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 (file)
index 0000000..ad07034
--- /dev/null
@@ -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 (file)
index 0000000..4550ac0
--- /dev/null
@@ -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 (file)
index 0000000..f6e2dcd
--- /dev/null
@@ -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 (file)
index 0000000..8593ffb
--- /dev/null
@@ -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 (file)
index 0000000..665fa3c
--- /dev/null
@@ -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 (file)
index 0000000..c937a63
--- /dev/null
@@ -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 (file)
index 0000000..64be825
--- /dev/null
@@ -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 (file)
index 0000000..319f08f
--- /dev/null
@@ -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 (file)
index 0000000..fed7c1c
--- /dev/null
@@ -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 (file)
index 0000000..29dfe28
--- /dev/null
@@ -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 (file)
index 0000000..dd0dfab
--- /dev/null
@@ -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 (file)
index 0000000..b09b40c
--- /dev/null
@@ -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 (file)
index 0000000..f1524b0
--- /dev/null
@@ -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 (file)
index 0000000..fe86aec
--- /dev/null
@@ -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 (file)
index 0000000..0065f25
--- /dev/null
@@ -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 (file)
index 0000000..5e8fbeb
--- /dev/null
@@ -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 (file)
index 0000000..3ef69f6
--- /dev/null
@@ -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 (file)
index 0000000..57e20ac
--- /dev/null
@@ -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 (file)
index 0000000..196f5f0
--- /dev/null
@@ -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>