home *** CD-ROM | disk | FTP | other *** search
/ vim.ftp.fu-berlin.de / 2015-02-03.vim.ftp.fu-berlin.de.tar / vim.ftp.fu-berlin.de / runtime / syntax / django.vim < prev    next >
Encoding:
Text File  |  2012-05-31  |  4.2 KB  |  97 lines

  1. " Vim syntax file
  2. " Language:    Django template
  3. " Maintainer:    Dave Hodder <dmh@dmh.org.uk>
  4. " Last Change:    2012 Apr 09
  5.  
  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
  13.  
  14. syntax case match
  15.  
  16. " Mark illegal characters
  17. syn match djangoError "%}\|}}\|#}"
  18.  
  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 elif
  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
  37.  
  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 truncatechars
  49. syn keyword djangoFilter contained truncatewords truncatewords_html unordered_list upper urlencode
  50. syn keyword djangoFilter contained urlize urlizetrunc wordcount wordwrap yesno
  51.  
  52. " Keywords to highlight within comments
  53. syn keyword djangoTodo contained TODO FIXME XXX
  54.  
  55. " Django template constants (always surrounded by double quotes)
  56. syn region djangoArgument contained start=/"/ skip=/\\"/ end=/"/
  57.  
  58. " Mark illegal characters within tag and variables blocks
  59. syn match djangoTagError contained "#}\|{{\|[^%]}}\|[&#]"
  60. syn match djangoVarError contained "#}\|{%\|%}\|[<>!&#%]"
  61.  
  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
  65.  
  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
  69.  
  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
  80.  
  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
  92.  
  93.   delcommand HiLink
  94. endif
  95.  
  96. let b:current_syntax = "django"
  97.