update vim to 7.4
[msysgit.git] / share / vim / vim73 / syntax / django.vim
blob67c46b7260ef72cc80ff939675e424a923af7d0d
1 " Vim syntax file
2 " Language:     Django template
3 " Maintainer:   Dave Hodder <dmh@dmh.org.uk>
4 " Last Change:  2010 May 19
6 " For version 5.x: Clear all syntax items
7 " For version 6.x: Quit when a syntax file was already loaded
8 if version < 600
9   syntax clear
10 elseif exists("b:current_syntax")
11   finish
12 endif
14 syntax case match
16 " Mark illegal characters
17 syn match djangoError "%}\|}}\|#}"
19 " Django template built-in tags and parameters
20 " 'comment' doesn't appear here because it gets special treatment
21 syn keyword djangoStatement contained autoescape csrf_token empty
22 " FIXME ==, !=, <, >, <=, and >= should be djangoStatements:
23 " syn keyword djangoStatement contained == != < > <= >=
24 syn keyword djangoStatement contained and as block endblock by cycle debug else
25 syn keyword djangoStatement contained extends filter endfilter firstof for
26 syn keyword djangoStatement contained endfor if endif ifchanged endifchanged
27 syn keyword djangoStatement contained ifequal endifequal ifnotequal
28 syn keyword djangoStatement contained endifnotequal in include load not now or
29 syn keyword djangoStatement contained parsed regroup reversed spaceless
30 syn keyword djangoStatement contained endspaceless ssi templatetag openblock
31 syn keyword djangoStatement contained closeblock openvariable closevariable
32 syn keyword djangoStatement contained openbrace closebrace opencomment
33 syn keyword djangoStatement contained closecomment widthratio url with endwith
34 syn keyword djangoStatement contained get_current_language trans noop blocktrans
35 syn keyword djangoStatement contained endblocktrans get_available_languages
36 syn keyword djangoStatement contained get_current_language_bidi plural
38 " Django templete built-in filters
39 syn keyword djangoFilter contained add addslashes capfirst center cut date
40 syn keyword djangoFilter contained default default_if_none dictsort
41 syn keyword djangoFilter contained dictsortreversed divisibleby escape escapejs
42 syn keyword djangoFilter contained filesizeformat first fix_ampersands
43 syn keyword djangoFilter contained floatformat get_digit join last length length_is
44 syn keyword djangoFilter contained linebreaks linebreaksbr linenumbers ljust
45 syn keyword djangoFilter contained lower make_list phone2numeric pluralize
46 syn keyword djangoFilter contained pprint random removetags rjust slice slugify
47 syn keyword djangoFilter contained safe safeseq stringformat striptags
48 syn keyword djangoFilter contained time timesince timeuntil title
49 syn keyword djangoFilter contained truncatewords truncatewords_html unordered_list upper urlencode
50 syn keyword djangoFilter contained urlize urlizetrunc wordcount wordwrap yesno
52 " Keywords to highlight within comments
53 syn keyword djangoTodo contained TODO FIXME XXX
55 " Django template constants (always surrounded by double quotes)
56 syn region djangoArgument contained start=/"/ skip=/\\"/ end=/"/
58 " Mark illegal characters within tag and variables blocks
59 syn match djangoTagError contained "#}\|{{\|[^%]}}\|[&#]"
60 syn match djangoVarError contained "#}\|{%\|%}\|[<>!&#%]"
62 " Django template tag and variable blocks
63 syn region djangoTagBlock start="{%" end="%}" contains=djangoStatement,djangoFilter,djangoArgument,djangoTagError display
64 syn region djangoVarBlock start="{{" end="}}" contains=djangoFilter,djangoArgument,djangoVarError display
66 " Django template 'comment' tag and comment block
67 syn region djangoComment start="{%\s*comment\s*%}" end="{%\s*endcomment\s*%}" contains=djangoTodo
68 syn region djangoComBlock start="{#" end="#}" contains=djangoTodo
70 " Define the default highlighting.
71 " For version 5.7 and earlier: only when not done already
72 " For version 5.8 and later: only when an item doesn't have highlighting yet
73 if version >= 508 || !exists("did_django_syn_inits")
74   if version < 508
75     let did_django_syn_inits = 1
76     command -nargs=+ HiLink hi link <args>
77   else
78     command -nargs=+ HiLink hi def link <args>
79   endif
81   HiLink djangoTagBlock PreProc
82   HiLink djangoVarBlock PreProc
83   HiLink djangoStatement Statement
84   HiLink djangoFilter Identifier
85   HiLink djangoArgument Constant
86   HiLink djangoTagError Error
87   HiLink djangoVarError Error
88   HiLink djangoError Error
89   HiLink djangoComment Comment
90   HiLink djangoComBlock Comment
91   HiLink djangoTodo Todo
93   delcommand HiLink
94 endif
96 let b:current_syntax = "django"