xref: /vim-8.2.3635/runtime/syntax/latte.vim (revision bb76f24a)
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