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