blob: e30ae42e38fdd2f2b51690cd9629d7818b65180c [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" 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
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020010" quit when a syntax file was already loaded
11if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +000012 finish
13endif
14
15syn match latteError "[{}\\]"
16syn match latteOther "\\{"
17syn match latteOther "\\}"
18syn match latteOther "\\\\"
19
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020020setlocal iskeyword=33,43,45,48-57,63,65-90,95,97-122,_
Bram Moolenaar071d4272004-06-13 20:20:40 +000021
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.
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020066" Only when an item doesn't have highlighting yet
Bram Moolenaar071d4272004-06-13 20:20:40 +000067
Bram Moolenaarf37506f2016-08-31 22:22:10 +020068hi def link latteSyntax Statement
69hi def link latteVar Function
Bram Moolenaar071d4272004-06-13 20:20:40 +000070
Bram Moolenaarf37506f2016-08-31 22:22:10 +020071hi def link latteString String
72hi def link latteQuote String
Bram Moolenaar071d4272004-06-13 20:20:40 +000073
Bram Moolenaarf37506f2016-08-31 22:22:10 +020074hi def link latteDelimiter Delimiter
75hi def link latteOperator Operator
Bram Moolenaar071d4272004-06-13 20:20:40 +000076
Bram Moolenaarf37506f2016-08-31 22:22:10 +020077hi def link latteComment Comment
78hi def link latteError Error
Bram Moolenaar071d4272004-06-13 20:20:40 +000079
Bram Moolenaar071d4272004-06-13 20:20:40 +000080
81let b:current_syntax = "latte"