latte.vim 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. " Vim syntax file
  2. " Language: Latte
  3. " Maintainer: Nick Moffitt, <nick@zork.net>
  4. " Last Change: 14 June, 2000
  5. "
  6. " Notes:
  7. " I based this on the TeX and Scheme syntax files (but mostly scheme).
  8. " See http://www.latte.org for info on the language.
  9. " quit when a syntax file was already loaded
  10. if exists("b:current_syntax")
  11. finish
  12. endif
  13. syn match latteError "[{}\\]"
  14. syn match latteOther "\\{"
  15. syn match latteOther "\\}"
  16. syn match latteOther "\\\\"
  17. setlocal iskeyword=33,43,45,48-57,63,65-90,95,97-122,_
  18. syn region latteVar matchgroup=SpecialChar start=!\\[A-Za-z_]!rs=s+1 end=![^A-Za-z0-9?!+_-]!me=e-1 contains=ALLBUT,latteNumber,latteOther
  19. syn region latteVar matchgroup=SpecialChar start=!\\[=\&][A-Za-z_]!rs=s+2 end=![^A-Za-z0-9?!+_-]!me=e-1 contains=ALLBUT,latteNumber,latteOther
  20. syn region latteString start=+\\"+ skip=+\\\\"+ end=+\\"+
  21. syn region latteGroup matchgroup=Delimiter start="{" skip="\\[{}]" matchgroup=Delimiter end="}" contains=ALLBUT,latteSyntax
  22. syn region latteUnquote matchgroup=Delimiter start="\\,{" skip="\\[{}]" matchgroup=Delimiter end="}" contains=ALLBUT,latteSyntax
  23. syn region latteSplice matchgroup=Delimiter start="\\,@{" skip="\\[{}]" matchgroup=Delimiter end="}" contains=ALLBUT,latteSyntax
  24. syn region latteQuote matchgroup=Delimiter start="\\'{" skip="\\[{}]" matchgroup=Delimiter end="}"
  25. syn region latteQuote matchgroup=Delimiter start="\\`{" skip="\\[{}]" matchgroup=Delimiter end="}" contains=latteUnquote,latteSplice
  26. syn match latteOperator '\\/'
  27. syn match latteOperator '='
  28. syn match latteComment "\\;.*$"
  29. " This was gathered by slurping in the index.
  30. syn keyword latteSyntax __FILE__ __latte-version__ contained
  31. syn keyword latteSyntax _bal-tag _pre _tag add and append apply back contained
  32. syn keyword latteSyntax caar cadr car cdar cddr cdr ceil compose contained
  33. syn keyword latteSyntax concat cons def defmacro divide downcase contained
  34. syn keyword latteSyntax empty? equal? error explode file-contents contained
  35. syn keyword latteSyntax floor foreach front funcall ge? getenv contained
  36. syn keyword latteSyntax greater-equal? greater? group group? gt? html contained
  37. syn keyword latteSyntax if include lambda le? length less-equal? contained
  38. syn keyword latteSyntax less? let lmap load-file load-library lt? macro contained
  39. syn keyword latteSyntax member? modulo multiply not nth operator? contained
  40. syn keyword latteSyntax or ordinary quote process-output push-back contained
  41. syn keyword latteSyntax push-front quasiquote quote random rdc reverse contained
  42. syn keyword latteSyntax set! snoc splicing unquote strict-html4 contained
  43. syn keyword latteSyntax string-append string-ge? string-greater-equal? contained
  44. syn keyword latteSyntax string-greater? string-gt? string-le? contained
  45. syn keyword latteSyntax string-less-equal? string-less? string-lt? contained
  46. syn keyword latteSyntax string? subseq substr subtract contained
  47. syn keyword latteSyntax upcase useless warn while zero? contained
  48. " If it's good enough for scheme...
  49. syn sync match matchPlace grouphere NONE "^[^ \t]"
  50. " ... i.e. synchronize on a line that starts at the left margin
  51. " Define the default highlighting.
  52. " Only when an item doesn't have highlighting yet
  53. hi def link latteSyntax Statement
  54. hi def link latteVar Function
  55. hi def link latteString String
  56. hi def link latteQuote String
  57. hi def link latteDelimiter Delimiter
  58. hi def link latteOperator Operator
  59. hi def link latteComment Comment
  60. hi def link latteError Error
  61. let b:current_syntax = "latte"