blob: 134792ac1127e0f4e411f3da7b9c48a4a5c6175d [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
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020021" quit when a syntax file was already loaded
22if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +000023 finish
24endif
25
26" all printing characters except '#' and '!' are valid in names.
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020027setlocal iskeyword=\",$-~
Bram Moolenaar071d4272004-06-13 20:20:40 +000028
29" The null-modifier
30syn keyword radianceKeyword void
31
32" The different kinds of scene description object types
33" Reference types
34syn keyword radianceExtraType contained alias instance
35" Surface types
36syn keyword radianceSurfType contained ring polygon sphere bubble
37syn keyword radianceSurfType contained cone cup cylinder tube source
38" Emitting material types
39syn keyword radianceLightType contained light glow illum spotlight
40" Material types
41syn keyword radianceMatType contained mirror mist prism1 prism2
42syn keyword radianceMatType contained metal plastic trans
43syn keyword radianceMatType contained metal2 plastic2 trans2
44syn keyword radianceMatType contained metfunc plasfunc transfunc
45syn keyword radianceMatType contained metdata plasdata transdata
46syn keyword radianceMatType contained dielectric interface glass
47syn keyword radianceMatType contained BRTDfunc antimatter
48" Pattern modifier types
49syn keyword radiancePatType contained colorfunc brightfunc
50syn keyword radiancePatType contained colordata colorpict brightdata
51syn keyword radiancePatType contained colortext brighttext
52" Texture modifier types
53syn keyword radianceTexType contained texfunc texdata
54" Mixture types
55syn keyword radianceMixType contained mixfunc mixdata mixpict mixtext
56
57
58" Each type name is followed by an ID.
59" This doesn't work correctly if the id is one of the type names of the
60" same class (which is legal for radiance), in which case the id will get
61" type color as well, and the int count (or alias reference) gets id color.
62
63syn region radianceID start="\<alias\>" end="\<\k*\>" contains=radianceExtraType
64syn region radianceID start="\<instance\>" end="\<\k*\>" contains=radianceExtraType
65
66syn region radianceID start="\<source\>" end="\<\k*\>" contains=radianceSurfType
67syn region radianceID start="\<ring\>" end="\<\k*\>" contains=radianceSurfType
68syn region radianceID start="\<polygon\>" end="\<\k*\>" contains=radianceSurfType
69syn region radianceID start="\<sphere\>" end="\<\k*\>" contains=radianceSurfType
70syn region radianceID start="\<bubble\>" end="\<\k*\>" contains=radianceSurfType
71syn region radianceID start="\<cone\>" end="\<\k*\>" contains=radianceSurfType
72syn region radianceID start="\<cup\>" end="\<\k*\>" contains=radianceSurfType
73syn region radianceID start="\<cylinder\>" end="\<\k*\>" contains=radianceSurfType
74syn region radianceID start="\<tube\>" end="\<\k*\>" contains=radianceSurfType
75
76syn region radianceID start="\<light\>" end="\<\k*\>" contains=radianceLightType
77syn region radianceID start="\<glow\>" end="\<\k*\>" contains=radianceLightType
78syn region radianceID start="\<illum\>" end="\<\k*\>" contains=radianceLightType
79syn region radianceID start="\<spotlight\>" end="\<\k*\>" contains=radianceLightType
80
81syn region radianceID start="\<mirror\>" end="\<\k*\>" contains=radianceMatType
82syn region radianceID start="\<mist\>" end="\<\k*\>" contains=radianceMatType
83syn region radianceID start="\<prism1\>" end="\<\k*\>" contains=radianceMatType
84syn region radianceID start="\<prism2\>" end="\<\k*\>" contains=radianceMatType
85syn region radianceID start="\<metal\>" end="\<\k*\>" contains=radianceMatType
86syn region radianceID start="\<plastic\>" end="\<\k*\>" contains=radianceMatType
87syn region radianceID start="\<trans\>" end="\<\k*\>" contains=radianceMatType
88syn region radianceID start="\<metal2\>" end="\<\k*\>" contains=radianceMatType
89syn region radianceID start="\<plastic2\>" end="\<\k*\>" contains=radianceMatType
90syn region radianceID start="\<trans2\>" end="\<\k*\>" contains=radianceMatType
91syn region radianceID start="\<metfunc\>" end="\<\k*\>" contains=radianceMatType
92syn region radianceID start="\<plasfunc\>" end="\<\k*\>" contains=radianceMatType
93syn region radianceID start="\<transfunc\>" end="\<\k*\>" contains=radianceMatType
94syn region radianceID start="\<metdata\>" end="\<\k*\>" contains=radianceMatType
95syn region radianceID start="\<plasdata\>" end="\<\k*\>" contains=radianceMatType
96syn region radianceID start="\<transdata\>" end="\<\k*\>" contains=radianceMatType
97syn region radianceID start="\<dielectric\>" end="\<\k*\>" contains=radianceMatType
98syn region radianceID start="\<interface\>" end="\<\k*\>" contains=radianceMatType
99syn region radianceID start="\<glass\>" end="\<\k*\>" contains=radianceMatType
100syn region radianceID start="\<BRTDfunc\>" end="\<\k*\>" contains=radianceMatType
101syn region radianceID start="\<antimatter\>" end="\<\k*\>" contains=radianceMatType
102
103syn region radianceID start="\<colorfunc\>" end="\<\k*\>" contains=radiancePatType
104syn region radianceID start="\<brightfunc\>" end="\<\k*\>" contains=radiancePatType
105syn region radianceID start="\<colordata\>" end="\<\k*\>" contains=radiancePatType
106syn region radianceID start="\<brightdata\>" end="\<\k*\>" contains=radiancePatType
107syn region radianceID start="\<colorpict\>" end="\<\k*\>" contains=radiancePatType
108syn region radianceID start="\<colortext\>" end="\<\k*\>" contains=radiancePatType
109syn region radianceID start="\<brighttext\>" end="\<\k*\>" contains=radiancePatType
110
111syn region radianceID start="\<texfunc\>" end="\<\k*\>" contains=radianceTexType
112syn region radianceID start="\<texdata\>" end="\<\k*\>" contains=radianceTexType
113
114syn region radianceID start="\<mixfunc\>" end="\<\k*\>" contains=radianceMixType
115syn region radianceID start="\<mixdata\>" end="\<\k*\>" contains=radianceMixType
116syn region radianceID start="\<mixtext\>" end="\<\k*\>" contains=radianceMixType
117
118" external commands (generators, xform et al.)
119syn match radianceCommand "^\s*!\s*[^\s]\+\>"
120
121" The usual suspects
122syn keyword radianceTodo contained TODO XXX
123syn match radianceComment "#.*$" contains=radianceTodo
124
125" Define the default highlighting.
Bram Moolenaar89bcfda2016-08-30 23:26:57 +0200126" Only when an item doesn't have highlighting yet
127command -nargs=+ HiLink hi def link <args>
128HiLink radianceKeyword Keyword
129HiLink radianceExtraType Type
130HiLink radianceSurfType Type
131HiLink radianceLightType Type
132HiLink radianceMatType Type
133HiLink radiancePatType Type
134HiLink radianceTexType Type
135HiLink radianceMixType Type
136HiLink radianceComment Comment
137HiLink radianceCommand Function
138HiLink radianceID String
139HiLink radianceTodo Todo
140delcommand HiLink
Bram Moolenaar071d4272004-06-13 20:20:40 +0000141
142let b:current_syntax = "radiance"
143
144" vim: ts=8 sw=2