blob: fc48d2608c68da3728c436814cda549c639b1128 [file] [log] [blame]
Bram Moolenaardb552d602006-03-23 22:59:57 +00001" Vim syntax file
2" Language: Django template
3" Maintainer: Dave Hodder <dmh@dmh.org.uk>
4" Last Change: 2006 Mar 23
5
6" For version 5.x: Clear all syntax items
7" For version 6.x: Quit when a syntax file was already loaded
8if version < 600
9 syntax clear
10elseif exists("b:current_syntax")
11 finish
12endif
13
14syntax case match
15
16" Django template built-in tags and parameters
17" 'comment' doesn't appear here because it gets special treatment
18syn keyword djangoStatement contained as block endblock by cycle debug else
19syn keyword djangoStatement contained extends filter endfilter firstof for
20syn keyword djangoStatement contained endfor if endif ifchanged endifchanged
21syn keyword djangoStatement contained ifequal endifequal ifnotequal
22syn keyword djangoStatement contained endifnotequal in include load not now or
23syn keyword djangoStatement contained parsed regroup reversed spaceless
24syn keyword djangoStatement contained endspaceless ssi templatetag openblock
25syn keyword djangoStatement contained closeblock openvariable closevariable
26syn keyword djangoStatement contained widthratio with
27
28" Django templete built-in filters
29syn keyword djangoFilter contained add addslashes capfirst center cut date
30syn keyword djangoFilter contained default default_if_none dictsort
31syn keyword djangoFilter contained dictsortreversed divisibleby escape
32syn keyword djangoFilter contained filesizeformat first fix_ampersands
33syn keyword djangoFilter contained floatformat get_digit join length length_is
34syn keyword djangoFilter contained linebreaks linebreaksbr linenumbers ljust
35syn keyword djangoFilter contained lower make_list phone2numeric pluralize
36syn keyword djangoFilter contained pprint random removetags rjust slice slugify
37syn keyword djangoFilter contained stringformat striptags time timesince title
38syn keyword djangoFilter contained truncatewords unordered_list upper urlencode
39syn keyword djangoFilter contained urlize urlizetrunc wordcount wordwrap yesno
40
41" Django template constants (always surrounded by double quotes)
42syn region djangoArgument contained start=/"/ skip=/\\"/ end=/"/
43
44" Django template tag and variable blocks
45syn region djangoTagBlock start="{%" end="%}" contains=djangoStatement,djangoFilter,djangoArgument display
46syn region djangoVarBlock start="{{" end="}}" contains=djangoFilter,djangoArgument display
47
48" Django template 'comment' tag
49syn region djangoComment start="{%\s*comment\s*%}" end="{%\s*endcomment\s*%}"
50
51" Define the default highlighting.
52" For version 5.7 and earlier: only when not done already
53" For version 5.8 and later: only when an item doesn't have highlighting yet
54if version >= 508 || !exists("did_django_syn_inits")
55 if version < 508
56 let did_django_syn_inits = 1
57 command -nargs=+ HiLink hi link <args>
58 else
59 command -nargs=+ HiLink hi def link <args>
60 endif
61
62 HiLink djangoTagBlock PreProc
63 HiLink djangoVarBlock PreProc
64 HiLink djangoStatement Statement
65 HiLink djangoFilter Identifier
66 HiLink djangoArgument Constant
67 HiLink djangoComment Comment
68
69 delcommand HiLink
70endif
71
72let b:current_syntax = "django"