Update runtime files
[MacVim.git] / runtime / syntax / django.vim
blobda35406e884f34e4aee7a2585bd93e9b1c016bac
1 " Vim syntax file
2 " Language:     Django template
3 " Maintainer:   Dave Hodder <dmh@dmh.org.uk>
4 " Last Change:  2008 Dec 18
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 on off endautoescape
22 syn keyword djangoStatement contained and as block endblock by cycle debug else
23 syn keyword djangoStatement contained extends filter endfilter firstof for empty
24 syn keyword djangoStatement contained endfor if endif ifchanged endifchanged
25 syn keyword djangoStatement contained ifequal endifequal ifnotequal
26 syn keyword djangoStatement contained endifnotequal in include load not now or
27 syn keyword djangoStatement contained parsed regroup reversed spaceless
28 syn keyword djangoStatement contained endspaceless ssi templatetag openblock
29 syn keyword djangoStatement contained closeblock openvariable closevariable
30 syn keyword djangoStatement contained openbrace closebrace opencomment
31 syn keyword djangoStatement contained closecomment widthratio url with endwith
32 syn keyword djangoStatement contained get_current_language trans noop blocktrans
33 syn keyword djangoStatement contained endblocktrans get_available_languages
34 syn keyword djangoStatement contained get_current_language_bidi plural
36 " Django templete built-in filters
37 syn keyword djangoFilter contained add addslashes capfirst center cut date
38 syn keyword djangoFilter contained default default_if_none dictsort
39 syn keyword djangoFilter contained dictsortreversed divisibleby escape escapejs
40 syn keyword djangoFilter contained filesizeformat first fix_ampersands
41 syn keyword djangoFilter contained floatformat force_escape get_digit iriencode join last length length_is
42 syn keyword djangoFilter contained linebreaks linebreaksbr linenumbers ljust
43 syn keyword djangoFilter contained lower make_list phone2numeric pluralize
44 syn keyword djangoFilter contained pprint random removetags rjust safe slice slugify
45 syn keyword djangoFilter contained stringformat striptags
46 syn keyword djangoFilter contained time timesince timeuntil title
47 syn keyword djangoFilter contained truncatewords truncatewords_html unordered_list upper urlencode
48 syn keyword djangoFilter contained urlize urlizetrunc wordcount wordwrap yesno
50 " Keywords to highlight within comments
51 syn keyword djangoTodo contained TODO FIXME XXX
53 " Django template constants (always surrounded by double quotes)
54 syn region djangoArgument contained start=/"/ skip=/\\"/ end=/"/
56 " Mark illegal characters within tag and variables blocks
57 syn match djangoTagError contained "#}\|{{\|[^%]}}\|[<>!&#]"
58 syn match djangoVarError contained "#}\|{%\|%}\|[<>!&#%]"
60 " Django template tag and variable blocks
61 syn region djangoTagBlock start="{%" end="%}" contains=djangoStatement,djangoFilter,djangoArgument,djangoTagError display
62 syn region djangoVarBlock start="{{" end="}}" contains=djangoFilter,djangoArgument,djangoVarError display
64 " Django template 'comment' tag and comment block
65 syn region djangoComment start="{%\s*comment\s*%}" end="{%\s*endcomment\s*%}" contains=djangoTodo
66 syn region djangoComBlock start="{#" end="#}" contains=djangoTodo
68 " Define the default highlighting.
69 " For version 5.7 and earlier: only when not done already
70 " For version 5.8 and later: only when an item doesn't have highlighting yet
71 if version >= 508 || !exists("did_django_syn_inits")
72   if version < 508
73     let did_django_syn_inits = 1
74     command -nargs=+ HiLink hi link <args>
75   else
76     command -nargs=+ HiLink hi def link <args>
77   endif
79   HiLink djangoTagBlock PreProc
80   HiLink djangoVarBlock PreProc
81   HiLink djangoStatement Statement
82   HiLink djangoFilter Identifier
83   HiLink djangoArgument Constant
84   HiLink djangoTagError Error
85   HiLink djangoVarError Error
86   HiLink djangoError Error
87   HiLink djangoComment Comment
88   HiLink djangoComBlock Comment
89   HiLink djangoTodo Todo
91   delcommand HiLink
92 endif
94 let b:current_syntax = "django"