blob: f95c7b5c73908d7779f0ac91ec0e37ab42ec3427 [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
67command -nargs=+ HiLink hi def link <args>
Bram Moolenaar071d4272004-06-13 20:20:40 +000068
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020069HiLink latteSyntax Statement
70HiLink latteVar Function
Bram Moolenaar071d4272004-06-13 20:20:40 +000071
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020072HiLink latteString String
73HiLink latteQuote String
Bram Moolenaar071d4272004-06-13 20:20:40 +000074
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020075HiLink latteDelimiter Delimiter
76HiLink latteOperator Operator
Bram Moolenaar071d4272004-06-13 20:20:40 +000077
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020078HiLink latteComment Comment
79HiLink latteError Error
Bram Moolenaar071d4272004-06-13 20:20:40 +000080
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020081delcommand HiLink
Bram Moolenaar071d4272004-06-13 20:20:40 +000082
83let b:current_syntax = "latte"