85 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| " Vim syntax file
 | |
| " Language:	Django template
 | |
| " Maintainer:	Dave Hodder <dmh@dmh.org.uk>
 | |
| " Last Change:	2021 Nov 29
 | |
| 
 | |
| " quit when a syntax file was already loaded
 | |
| if exists("b:current_syntax")
 | |
|   finish
 | |
| endif
 | |
| 
 | |
| 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 autoescape csrf_token empty
 | |
| " FIXME ==, !=, <, >, <=, and >= should be djangoStatements:
 | |
| " syn keyword djangoStatement contained == != < > <= >=
 | |
| syn keyword djangoStatement contained and as block endblock by cycle debug else elif
 | |
| 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
 | |
| syn keyword djangoStatement contained openbrace closebrace opencomment
 | |
| syn keyword djangoStatement contained closecomment widthratio url with endwith
 | |
| 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
 | |
| syn keyword djangoStatement contained translate blocktranslate endblocktranslate
 | |
| 
 | |
| " 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 escapejs
 | |
| syn keyword djangoFilter contained filesizeformat first fix_ampersands
 | |
| syn keyword djangoFilter contained floatformat get_digit join last 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
 | |
| syn keyword djangoFilter contained safe safeseq stringformat striptags
 | |
| syn keyword djangoFilter contained time timesince timeuntil title truncatechars
 | |
| syn keyword djangoFilter contained truncatewords truncatewords_html 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=/"/
 | |
| 
 | |
| " Mark illegal characters within tag and variables blocks
 | |
| syn match djangoTagError contained "#}\|{{\|[^%]}}\|[&#]"
 | |
| syn match djangoVarError contained "#}\|{%\|%}\|[<>!&#%]"
 | |
| 
 | |
| " 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.
 | |
| " Only when an item doesn't have highlighting yet
 | |
| 
 | |
| hi def link djangoTagBlock PreProc
 | |
| hi def link djangoVarBlock PreProc
 | |
| hi def link djangoStatement Statement
 | |
| hi def link djangoFilter Identifier
 | |
| hi def link djangoArgument Constant
 | |
| hi def link djangoTagError Error
 | |
| hi def link djangoVarError Error
 | |
| hi def link djangoError Error
 | |
| hi def link djangoComment Comment
 | |
| hi def link djangoComBlock Comment
 | |
| hi def link djangoTodo Todo
 | |
| 
 | |
| 
 | |
| let b:current_syntax = "django"
 |