Broken overlong line.
[jinja2.git] / ext / Jinja Templates.tmbundle / Commands / Validate Syntax.tmCommand
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3 <plist version="1.0">
4 <dict>
5         <key>beforeRunningCommand</key>
6         <string>nop</string>
7         <key>command</key>
8         <string>. "$TM_SUPPORT_PATH/lib/webpreview.sh"
9 html_header "Jinja Syntax Validation" "Jinja Templates"
10
11 export TMPFILE="$(mktemp -t tm_jinja_test__)"
12 cat /dev/stdin &gt; $TMPFILE
13
14 python &lt;&lt;'END'
15 try:
16     from jinja import Environment
17     from jinja.exceptions import TemplateSyntaxError
18     e = Environment()
19 except ImportError, e:
20     print "&lt;h2&gt;Error&lt;/h2&gt;"
21     print "&lt;p&gt;Jinja is not installed on this system, cannot perform syntax check.&lt;/p&gt;"
22 else:
23     import sys, os
24     from cgi import escape
25
26     f = file(os.environ['TMPFILE'])
27     try:
28         source = f.read()
29     finally:
30         f.close()
31     try:
32         e.parse(source, os.environ['TM_FILEPATH'])
33     except TemplateSyntaxError, err:
34         print e.from_string('''
35           &lt;h2&gt;Syntax Error in Line {{ err.lineno or '?' }}&lt;/h2&gt;
36           &lt;p&gt;{{ err.message|e }}&lt;/p&gt;
37           &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;
38         ''').render(err=err)
39     else:
40         print '&lt;h2&gt;Success&lt;/h2&gt;'
41         print '&lt;p&gt;no syntax errors found!&lt;/p&gt;'
42 END
43
44 html_footer
45 rm $TMPFILE</string>
46         <key>input</key>
47         <string>document</string>
48         <key>keyEquivalent</key>
49         <string>^V</string>
50         <key>name</key>
51         <string>Validate Syntax</string>
52         <key>output</key>
53         <string>showAsHTML</string>
54         <key>scope</key>
55         <string>source.jinja, text.html.jinja</string>
56         <key>uuid</key>
57         <string>07198D95-F344-47EB-B1F2-69F2DC10BA1F</string>
58 </dict>
59 </plist>