blob: 461b708f0eed2d41b0bbed7a34a450205f425b30 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: Radiance Scene Description
3" Maintainer: Georg Mischler <schorsch@schorsch.com>
4" Last change: 26. April. 2001
5
6" Radiance is a lighting simulation software package written
7" by Gregory Ward-Larson ("the computer artist formerly known
8" as Greg Ward"), then at LBNL.
9"
10" http://radsite.lbl.gov/radiance/HOME.html
11"
12" Of course, there is also information available about it
13" from http://www.schorsch.com/
14
15
16" We take a minimalist approach here, highlighting just the
17" essential properties of each object, its type and ID, as well as
18" comments, external command names and the null-modifier "void".
19
20
21" For version 5.x: Clear all syntax items
22" For version 6.x: Quit when a syntax file was already loaded
23if version < 600
24 syntax clear
25elseif exists("b:current_syntax")
26 finish
27endif
28
29" all printing characters except '#' and '!' are valid in names.
30if version >= 600
31 setlocal iskeyword=\",$-~
32else
33 set iskeyword=\",$-~
34endif
35
36" The null-modifier
37syn keyword radianceKeyword void
38
39" The different kinds of scene description object types
40" Reference types
41syn keyword radianceExtraType contained alias instance
42" Surface types
43syn keyword radianceSurfType contained ring polygon sphere bubble
44syn keyword radianceSurfType contained cone cup cylinder tube source
45" Emitting material types
46syn keyword radianceLightType contained light glow illum spotlight
47" Material types
48syn keyword radianceMatType contained mirror mist prism1 prism2
49syn keyword radianceMatType contained metal plastic trans
50syn keyword radianceMatType contained metal2 plastic2 trans2
51syn keyword radianceMatType contained metfunc plasfunc transfunc
52syn keyword radianceMatType contained metdata plasdata transdata
53syn keyword radianceMatType contained dielectric interface glass
54syn keyword radianceMatType contained BRTDfunc antimatter
55" Pattern modifier types
56syn keyword radiancePatType contained colorfunc brightfunc
57syn keyword radiancePatType contained colordata colorpict brightdata
58syn keyword radiancePatType contained colortext brighttext
59" Texture modifier types
60syn keyword radianceTexType contained texfunc texdata
61" Mixture types
62syn keyword radianceMixType contained mixfunc mixdata mixpict mixtext
63
64
65" Each type name is followed by an ID.
66" This doesn't work correctly if the id is one of the type names of the
67" same class (which is legal for radiance), in which case the id will get
68" type color as well, and the int count (or alias reference) gets id color.
69
70syn region radianceID start="\<alias\>" end="\<\k*\>" contains=radianceExtraType
71syn region radianceID start="\<instance\>" end="\<\k*\>" contains=radianceExtraType
72
73syn region radianceID start="\<source\>" end="\<\k*\>" contains=radianceSurfType
74syn region radianceID start="\<ring\>" end="\<\k*\>" contains=radianceSurfType
75syn region radianceID start="\<polygon\>" end="\<\k*\>" contains=radianceSurfType
76syn region radianceID start="\<sphere\>" end="\<\k*\>" contains=radianceSurfType
77syn region radianceID start="\<bubble\>" end="\<\k*\>" contains=radianceSurfType
78syn region radianceID start="\<cone\>" end="\<\k*\>" contains=radianceSurfType
79syn region radianceID start="\<cup\>" end="\<\k*\>" contains=radianceSurfType
80syn region radianceID start="\<cylinder\>" end="\<\k*\>" contains=radianceSurfType
81syn region radianceID start="\<tube\>" end="\<\k*\>" contains=radianceSurfType
82
83syn region radianceID start="\<light\>" end="\<\k*\>" contains=radianceLightType
84syn region radianceID start="\<glow\>" end="\<\k*\>" contains=radianceLightType
85syn region radianceID start="\<illum\>" end="\<\k*\>" contains=radianceLightType
86syn region radianceID start="\<spotlight\>" end="\<\k*\>" contains=radianceLightType
87
88syn region radianceID start="\<mirror\>" end="\<\k*\>" contains=radianceMatType
89syn region radianceID start="\<mist\>" end="\<\k*\>" contains=radianceMatType
90syn region radianceID start="\<prism1\>" end="\<\k*\>" contains=radianceMatType
91syn region radianceID start="\<prism2\>" end="\<\k*\>" contains=radianceMatType
92syn region radianceID start="\<metal\>" end="\<\k*\>" contains=radianceMatType
93syn region radianceID start="\<plastic\>" end="\<\k*\>" contains=radianceMatType
94syn region radianceID start="\<trans\>" end="\<\k*\>" contains=radianceMatType
95syn region radianceID start="\<metal2\>" end="\<\k*\>" contains=radianceMatType
96syn region radianceID start="\<plastic2\>" end="\<\k*\>" contains=radianceMatType
97syn region radianceID start="\<trans2\>" end="\<\k*\>" contains=radianceMatType
98syn region radianceID start="\<metfunc\>" end="\<\k*\>" contains=radianceMatType
99syn region radianceID start="\<plasfunc\>" end="\<\k*\>" contains=radianceMatType
100syn region radianceID start="\<transfunc\>" end="\<\k*\>" contains=radianceMatType
101syn region radianceID start="\<metdata\>" end="\<\k*\>" contains=radianceMatType
102syn region radianceID start="\<plasdata\>" end="\<\k*\>" contains=radianceMatType
103syn region radianceID start="\<transdata\>" end="\<\k*\>" contains=radianceMatType
104syn region radianceID start="\<dielectric\>" end="\<\k*\>" contains=radianceMatType
105syn region radianceID start="\<interface\>" end="\<\k*\>" contains=radianceMatType
106syn region radianceID start="\<glass\>" end="\<\k*\>" contains=radianceMatType
107syn region radianceID start="\<BRTDfunc\>" end="\<\k*\>" contains=radianceMatType
108syn region radianceID start="\<antimatter\>" end="\<\k*\>" contains=radianceMatType
109
110syn region radianceID start="\<colorfunc\>" end="\<\k*\>" contains=radiancePatType
111syn region radianceID start="\<brightfunc\>" end="\<\k*\>" contains=radiancePatType
112syn region radianceID start="\<colordata\>" end="\<\k*\>" contains=radiancePatType
113syn region radianceID start="\<brightdata\>" end="\<\k*\>" contains=radiancePatType
114syn region radianceID start="\<colorpict\>" end="\<\k*\>" contains=radiancePatType
115syn region radianceID start="\<colortext\>" end="\<\k*\>" contains=radiancePatType
116syn region radianceID start="\<brighttext\>" end="\<\k*\>" contains=radiancePatType
117
118syn region radianceID start="\<texfunc\>" end="\<\k*\>" contains=radianceTexType
119syn region radianceID start="\<texdata\>" end="\<\k*\>" contains=radianceTexType
120
121syn region radianceID start="\<mixfunc\>" end="\<\k*\>" contains=radianceMixType
122syn region radianceID start="\<mixdata\>" end="\<\k*\>" contains=radianceMixType
123syn region radianceID start="\<mixtext\>" end="\<\k*\>" contains=radianceMixType
124
125" external commands (generators, xform et al.)
126syn match radianceCommand "^\s*!\s*[^\s]\+\>"
127
128" The usual suspects
129syn keyword radianceTodo contained TODO XXX
130syn match radianceComment "#.*$" contains=radianceTodo
131
132" Define the default highlighting.
133" For version 5.7 and earlier: only when not done already
134" For version 5.8 and later: only when an item doesn't have highlighting yet
135if version >= 508 || !exists("did_radiance_syn_inits")
136 if version < 508
137 let did_radiance_syn_inits = 1
138 command -nargs=+ HiLink hi link <args>
139 else
140 command -nargs=+ HiLink hi def link <args>
141 endif
142 HiLink radianceKeyword Keyword
143 HiLink radianceExtraType Type
144 HiLink radianceSurfType Type
145 HiLink radianceLightType Type
146 HiLink radianceMatType Type
147 HiLink radiancePatType Type
148 HiLink radianceTexType Type
149 HiLink radianceMixType Type
150 HiLink radianceComment Comment
151 HiLink radianceCommand Function
152 HiLink radianceID String
153 HiLink radianceTodo Todo
154 delcommand HiLink
155endif
156
157let b:current_syntax = "radiance"
158
159" vim: ts=8 sw=2