updated for version 7.1a
diff --git a/runtime/syntax/django.vim b/runtime/syntax/django.vim
index fc48d26..d8250d2 100644
--- a/runtime/syntax/django.vim
+++ b/runtime/syntax/django.vim
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: Django template
" Maintainer: Dave Hodder <dmh@dmh.org.uk>
-" Last Change: 2006 Mar 23
+" Last Change: 2007 Jan 26
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
@@ -13,9 +13,12 @@
syntax case match
+" Mark illegal characters
+syn match djangoError "%}\|}}\|#}"
+
" Django template built-in tags and parameters
" 'comment' doesn't appear here because it gets special treatment
-syn keyword djangoStatement contained as block endblock by cycle debug else
+syn keyword djangoStatement contained and as block endblock by cycle debug else
syn keyword djangoStatement contained extends filter endfilter firstof for
syn keyword djangoStatement contained endfor if endif ifchanged endifchanged
syn keyword djangoStatement contained ifequal endifequal ifnotequal
@@ -23,7 +26,11 @@
syn keyword djangoStatement contained parsed regroup reversed spaceless
syn keyword djangoStatement contained endspaceless ssi templatetag openblock
syn keyword djangoStatement contained closeblock openvariable closevariable
-syn keyword djangoStatement contained widthratio with
+syn keyword djangoStatement contained openbrace closebrace opencomment
+syn keyword djangoStatement contained closecomment widthratio with
+syn keyword djangoStatement contained get_current_language trans noop blocktrans
+syn keyword djangoStatement contained endblocktrans get_available_languages
+syn keyword djangoStatement contained get_current_language_bidi plural
" Django templete built-in filters
syn keyword djangoFilter contained add addslashes capfirst center cut date
@@ -34,19 +41,28 @@
syn keyword djangoFilter contained linebreaks linebreaksbr linenumbers ljust
syn keyword djangoFilter contained lower make_list phone2numeric pluralize
syn keyword djangoFilter contained pprint random removetags rjust slice slugify
-syn keyword djangoFilter contained stringformat striptags time timesince title
+syn keyword djangoFilter contained stringformat striptags
+syn keyword djangoFilter contained time timesince timeuntil title
syn keyword djangoFilter contained truncatewords unordered_list upper urlencode
syn keyword djangoFilter contained urlize urlizetrunc wordcount wordwrap yesno
+" Keywords to highlight within comments
+syn keyword djangoTodo contained TODO FIXME XXX
+
" Django template constants (always surrounded by double quotes)
syn region djangoArgument contained start=/"/ skip=/\\"/ end=/"/
-" Django template tag and variable blocks
-syn region djangoTagBlock start="{%" end="%}" contains=djangoStatement,djangoFilter,djangoArgument display
-syn region djangoVarBlock start="{{" end="}}" contains=djangoFilter,djangoArgument display
+" Mark illegal characters within tag and variables blocks
+syn match djangoTagError contained "#}\|{{\|[^%]}}\|[<>!=&#]"
+syn match djangoVarError contained "#}\|{%\|%}\|[<>!=&#%]"
-" Django template 'comment' tag
-syn region djangoComment start="{%\s*comment\s*%}" end="{%\s*endcomment\s*%}"
+" Django template tag and variable blocks
+syn region djangoTagBlock start="{%" end="%}" contains=djangoStatement,djangoFilter,djangoArgument,djangoTagError display
+syn region djangoVarBlock start="{{" end="}}" contains=djangoFilter,djangoArgument,djangoVarError display
+
+" Django template 'comment' tag and comment block
+syn region djangoComment start="{%\s*comment\s*%}" end="{%\s*endcomment\s*%}" contains=djangoTodo
+syn region djangoComBlock start="{#" end="#}" contains=djangoTodo
" Define the default highlighting.
" For version 5.7 and earlier: only when not done already
@@ -64,7 +80,12 @@
HiLink djangoStatement Statement
HiLink djangoFilter Identifier
HiLink djangoArgument Constant
+ HiLink djangoTagError Error
+ HiLink djangoVarError Error
+ HiLink djangoError Error
HiLink djangoComment Comment
+ HiLink djangoComBlock Comment
+ HiLink djangoTodo Todo
delcommand HiLink
endif