0
0
mirror of https://github.com/vim/vim.git synced 2025-07-04 23:07:33 -04:00
vim/runtime/syntax/django.vim

94 lines
4.0 KiB
VimL
Raw Normal View History

2006-03-23 22:59:57 +00:00
" Vim syntax file
" Language: Django template
" Maintainer: Dave Hodder <dmh@dmh.org.uk>
2007-05-10 18:29:51 +00:00
" Last Change: 2007 Apr 21
2006-03-23 22:59:57 +00:00
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
if version < 600
syntax clear
elseif exists("b:current_syntax")
finish
endif
syntax case match
2007-05-05 17:59:48 +00:00
" Mark illegal characters
syn match djangoError "%}\|}}\|#}"
2006-03-23 22:59:57 +00:00
" Django template built-in tags and parameters
" 'comment' doesn't appear here because it gets special treatment
2007-05-05 17:59:48 +00:00
syn keyword djangoStatement contained and as block endblock by cycle debug else
2006-03-23 22:59:57 +00:00
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
syn keyword djangoStatement contained endifnotequal in include load not now or
syn keyword djangoStatement contained parsed regroup reversed spaceless
syn keyword djangoStatement contained endspaceless ssi templatetag openblock
syn keyword djangoStatement contained closeblock openvariable closevariable
2007-05-05 17:59:48 +00:00
syn keyword djangoStatement contained openbrace closebrace opencomment
2007-05-10 18:29:51 +00:00
syn keyword djangoStatement contained closecomment widthratio url with endwith
2007-05-05 17:59:48 +00:00
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
2006-03-23 22:59:57 +00:00
" Django templete built-in filters
syn keyword djangoFilter contained add addslashes capfirst center cut date
syn keyword djangoFilter contained default default_if_none dictsort
syn keyword djangoFilter contained dictsortreversed divisibleby escape
syn keyword djangoFilter contained filesizeformat first fix_ampersands
syn keyword djangoFilter contained floatformat get_digit join length length_is
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
2007-05-05 17:59:48 +00:00
syn keyword djangoFilter contained stringformat striptags
syn keyword djangoFilter contained time timesince timeuntil title
2006-03-23 22:59:57 +00:00
syn keyword djangoFilter contained truncatewords unordered_list upper urlencode
syn keyword djangoFilter contained urlize urlizetrunc wordcount wordwrap yesno
2007-05-05 17:59:48 +00:00
" Keywords to highlight within comments
syn keyword djangoTodo contained TODO FIXME XXX
2006-03-23 22:59:57 +00:00
" Django template constants (always surrounded by double quotes)
syn region djangoArgument contained start=/"/ skip=/\\"/ end=/"/
2007-05-05 17:59:48 +00:00
" Mark illegal characters within tag and variables blocks
2007-05-10 18:29:51 +00:00
syn match djangoTagError contained "#}\|{{\|[^%]}}\|[<>!&#]"
syn match djangoVarError contained "#}\|{%\|%}\|[<>!&#%]"
2007-05-05 17:59:48 +00:00
2006-03-23 22:59:57 +00:00
" Django template tag and variable blocks
2007-05-05 17:59:48 +00:00
syn region djangoTagBlock start="{%" end="%}" contains=djangoStatement,djangoFilter,djangoArgument,djangoTagError display
syn region djangoVarBlock start="{{" end="}}" contains=djangoFilter,djangoArgument,djangoVarError display
2006-03-23 22:59:57 +00:00
2007-05-05 17:59:48 +00:00
" 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
2006-03-23 22:59:57 +00:00
" Define the default highlighting.
" For version 5.7 and earlier: only when not done already
" For version 5.8 and later: only when an item doesn't have highlighting yet
if version >= 508 || !exists("did_django_syn_inits")
if version < 508
let did_django_syn_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
HiLink djangoTagBlock PreProc
HiLink djangoVarBlock PreProc
HiLink djangoStatement Statement
HiLink djangoFilter Identifier
HiLink djangoArgument Constant
2007-05-05 17:59:48 +00:00
HiLink djangoTagError Error
HiLink djangoVarError Error
HiLink djangoError Error
2006-03-23 22:59:57 +00:00
HiLink djangoComment Comment
2007-05-05 17:59:48 +00:00
HiLink djangoComBlock Comment
HiLink djangoTodo Todo
2006-03-23 22:59:57 +00:00
delcommand HiLink
endif
let b:current_syntax = "django"