xref: /vim-8.2.3635/runtime/syntax/radiance.vim (revision f37506f6)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Language:     Radiance Scene Description
3071d4279SBram Moolenaar" Maintainer:   Georg Mischler <[email protected]>
4071d4279SBram Moolenaar" Last change:  26. April. 2001
5071d4279SBram Moolenaar
6071d4279SBram Moolenaar" Radiance is a lighting simulation software package written
7071d4279SBram Moolenaar" by Gregory Ward-Larson ("the computer artist formerly known
8071d4279SBram Moolenaar" as Greg Ward"), then at LBNL.
9071d4279SBram Moolenaar"
10071d4279SBram Moolenaar" http://radsite.lbl.gov/radiance/HOME.html
11071d4279SBram Moolenaar"
12071d4279SBram Moolenaar" Of course, there is also information available about it
13071d4279SBram Moolenaar" from http://www.schorsch.com/
14071d4279SBram Moolenaar
15071d4279SBram Moolenaar
16071d4279SBram Moolenaar" We take a minimalist approach here, highlighting just the
17071d4279SBram Moolenaar" essential properties of each object, its type and ID, as well as
18071d4279SBram Moolenaar" comments, external command names and the null-modifier "void".
19071d4279SBram Moolenaar
20071d4279SBram Moolenaar
2189bcfda6SBram Moolenaar" quit when a syntax file was already loaded
2289bcfda6SBram Moolenaarif exists("b:current_syntax")
23071d4279SBram Moolenaar  finish
24071d4279SBram Moolenaarendif
25071d4279SBram Moolenaar
26071d4279SBram Moolenaar" all printing characters except '#' and '!' are valid in names.
27071d4279SBram Moolenaarsetlocal iskeyword=\",$-~
28071d4279SBram Moolenaar
29071d4279SBram Moolenaar" The null-modifier
30071d4279SBram Moolenaarsyn keyword radianceKeyword void
31071d4279SBram Moolenaar
32071d4279SBram Moolenaar" The different kinds of scene description object types
33071d4279SBram Moolenaar" Reference types
34071d4279SBram Moolenaarsyn keyword radianceExtraType contained alias instance
35071d4279SBram Moolenaar" Surface types
36071d4279SBram Moolenaarsyn keyword radianceSurfType contained ring polygon sphere bubble
37071d4279SBram Moolenaarsyn keyword radianceSurfType contained cone cup cylinder tube source
38071d4279SBram Moolenaar" Emitting material types
39071d4279SBram Moolenaarsyn keyword radianceLightType contained light glow illum spotlight
40071d4279SBram Moolenaar" Material types
41071d4279SBram Moolenaarsyn keyword radianceMatType contained mirror mist prism1 prism2
42071d4279SBram Moolenaarsyn keyword radianceMatType contained metal plastic trans
43071d4279SBram Moolenaarsyn keyword radianceMatType contained metal2 plastic2 trans2
44071d4279SBram Moolenaarsyn keyword radianceMatType contained metfunc plasfunc transfunc
45071d4279SBram Moolenaarsyn keyword radianceMatType contained metdata plasdata transdata
46071d4279SBram Moolenaarsyn keyword radianceMatType contained dielectric interface glass
47071d4279SBram Moolenaarsyn keyword radianceMatType contained BRTDfunc antimatter
48071d4279SBram Moolenaar" Pattern modifier types
49071d4279SBram Moolenaarsyn keyword radiancePatType contained colorfunc brightfunc
50071d4279SBram Moolenaarsyn keyword radiancePatType contained colordata colorpict brightdata
51071d4279SBram Moolenaarsyn keyword radiancePatType contained colortext brighttext
52071d4279SBram Moolenaar" Texture modifier types
53071d4279SBram Moolenaarsyn keyword radianceTexType contained texfunc texdata
54071d4279SBram Moolenaar" Mixture types
55071d4279SBram Moolenaarsyn keyword radianceMixType contained mixfunc mixdata mixpict mixtext
56071d4279SBram Moolenaar
57071d4279SBram Moolenaar
58071d4279SBram Moolenaar" Each type name is followed by an ID.
59071d4279SBram Moolenaar" This doesn't work correctly if the id is one of the type names of the
60071d4279SBram Moolenaar" same class (which is legal for radiance), in which case the id will get
61071d4279SBram Moolenaar" type color as well, and the int count (or alias reference) gets id color.
62071d4279SBram Moolenaar
63071d4279SBram Moolenaarsyn region radianceID start="\<alias\>"      end="\<\k*\>" contains=radianceExtraType
64071d4279SBram Moolenaarsyn region radianceID start="\<instance\>"   end="\<\k*\>" contains=radianceExtraType
65071d4279SBram Moolenaar
66071d4279SBram Moolenaarsyn region radianceID start="\<source\>"     end="\<\k*\>" contains=radianceSurfType
67071d4279SBram Moolenaarsyn region radianceID start="\<ring\>"	     end="\<\k*\>" contains=radianceSurfType
68071d4279SBram Moolenaarsyn region radianceID start="\<polygon\>"    end="\<\k*\>" contains=radianceSurfType
69071d4279SBram Moolenaarsyn region radianceID start="\<sphere\>"     end="\<\k*\>" contains=radianceSurfType
70071d4279SBram Moolenaarsyn region radianceID start="\<bubble\>"     end="\<\k*\>" contains=radianceSurfType
71071d4279SBram Moolenaarsyn region radianceID start="\<cone\>"	     end="\<\k*\>" contains=radianceSurfType
72071d4279SBram Moolenaarsyn region radianceID start="\<cup\>"	     end="\<\k*\>" contains=radianceSurfType
73071d4279SBram Moolenaarsyn region radianceID start="\<cylinder\>"   end="\<\k*\>" contains=radianceSurfType
74071d4279SBram Moolenaarsyn region radianceID start="\<tube\>"	     end="\<\k*\>" contains=radianceSurfType
75071d4279SBram Moolenaar
76071d4279SBram Moolenaarsyn region radianceID start="\<light\>"      end="\<\k*\>" contains=radianceLightType
77071d4279SBram Moolenaarsyn region radianceID start="\<glow\>"	     end="\<\k*\>" contains=radianceLightType
78071d4279SBram Moolenaarsyn region radianceID start="\<illum\>"      end="\<\k*\>" contains=radianceLightType
79071d4279SBram Moolenaarsyn region radianceID start="\<spotlight\>"  end="\<\k*\>" contains=radianceLightType
80071d4279SBram Moolenaar
81071d4279SBram Moolenaarsyn region radianceID start="\<mirror\>"     end="\<\k*\>" contains=radianceMatType
82071d4279SBram Moolenaarsyn region radianceID start="\<mist\>"	     end="\<\k*\>" contains=radianceMatType
83071d4279SBram Moolenaarsyn region radianceID start="\<prism1\>"     end="\<\k*\>" contains=radianceMatType
84071d4279SBram Moolenaarsyn region radianceID start="\<prism2\>"     end="\<\k*\>" contains=radianceMatType
85071d4279SBram Moolenaarsyn region radianceID start="\<metal\>"      end="\<\k*\>" contains=radianceMatType
86071d4279SBram Moolenaarsyn region radianceID start="\<plastic\>"    end="\<\k*\>" contains=radianceMatType
87071d4279SBram Moolenaarsyn region radianceID start="\<trans\>"      end="\<\k*\>" contains=radianceMatType
88071d4279SBram Moolenaarsyn region radianceID start="\<metal2\>"     end="\<\k*\>" contains=radianceMatType
89071d4279SBram Moolenaarsyn region radianceID start="\<plastic2\>"   end="\<\k*\>" contains=radianceMatType
90071d4279SBram Moolenaarsyn region radianceID start="\<trans2\>"     end="\<\k*\>" contains=radianceMatType
91071d4279SBram Moolenaarsyn region radianceID start="\<metfunc\>"    end="\<\k*\>" contains=radianceMatType
92071d4279SBram Moolenaarsyn region radianceID start="\<plasfunc\>"   end="\<\k*\>" contains=radianceMatType
93071d4279SBram Moolenaarsyn region radianceID start="\<transfunc\>"  end="\<\k*\>" contains=radianceMatType
94071d4279SBram Moolenaarsyn region radianceID start="\<metdata\>"    end="\<\k*\>" contains=radianceMatType
95071d4279SBram Moolenaarsyn region radianceID start="\<plasdata\>"   end="\<\k*\>" contains=radianceMatType
96071d4279SBram Moolenaarsyn region radianceID start="\<transdata\>"  end="\<\k*\>" contains=radianceMatType
97071d4279SBram Moolenaarsyn region radianceID start="\<dielectric\>" end="\<\k*\>" contains=radianceMatType
98071d4279SBram Moolenaarsyn region radianceID start="\<interface\>"  end="\<\k*\>" contains=radianceMatType
99071d4279SBram Moolenaarsyn region radianceID start="\<glass\>"      end="\<\k*\>" contains=radianceMatType
100071d4279SBram Moolenaarsyn region radianceID start="\<BRTDfunc\>"   end="\<\k*\>" contains=radianceMatType
101071d4279SBram Moolenaarsyn region radianceID start="\<antimatter\>" end="\<\k*\>" contains=radianceMatType
102071d4279SBram Moolenaar
103071d4279SBram Moolenaarsyn region radianceID start="\<colorfunc\>"  end="\<\k*\>" contains=radiancePatType
104071d4279SBram Moolenaarsyn region radianceID start="\<brightfunc\>" end="\<\k*\>" contains=radiancePatType
105071d4279SBram Moolenaarsyn region radianceID start="\<colordata\>"  end="\<\k*\>" contains=radiancePatType
106071d4279SBram Moolenaarsyn region radianceID start="\<brightdata\>" end="\<\k*\>" contains=radiancePatType
107071d4279SBram Moolenaarsyn region radianceID start="\<colorpict\>"  end="\<\k*\>" contains=radiancePatType
108071d4279SBram Moolenaarsyn region radianceID start="\<colortext\>"  end="\<\k*\>" contains=radiancePatType
109071d4279SBram Moolenaarsyn region radianceID start="\<brighttext\>" end="\<\k*\>" contains=radiancePatType
110071d4279SBram Moolenaar
111071d4279SBram Moolenaarsyn region radianceID start="\<texfunc\>"    end="\<\k*\>" contains=radianceTexType
112071d4279SBram Moolenaarsyn region radianceID start="\<texdata\>"    end="\<\k*\>" contains=radianceTexType
113071d4279SBram Moolenaar
114071d4279SBram Moolenaarsyn region radianceID start="\<mixfunc\>"    end="\<\k*\>" contains=radianceMixType
115071d4279SBram Moolenaarsyn region radianceID start="\<mixdata\>"    end="\<\k*\>" contains=radianceMixType
116071d4279SBram Moolenaarsyn region radianceID start="\<mixtext\>"    end="\<\k*\>" contains=radianceMixType
117071d4279SBram Moolenaar
118071d4279SBram Moolenaar" external commands (generators, xform et al.)
119071d4279SBram Moolenaarsyn match radianceCommand "^\s*!\s*[^\s]\+\>"
120071d4279SBram Moolenaar
121071d4279SBram Moolenaar" The usual suspects
122071d4279SBram Moolenaarsyn keyword radianceTodo contained TODO XXX
123071d4279SBram Moolenaarsyn match radianceComment "#.*$" contains=radianceTodo
124071d4279SBram Moolenaar
125071d4279SBram Moolenaar" Define the default highlighting.
12689bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet
127*f37506f6SBram Moolenaarhi def link radianceKeyword	Keyword
128*f37506f6SBram Moolenaarhi def link radianceExtraType	Type
129*f37506f6SBram Moolenaarhi def link radianceSurfType	Type
130*f37506f6SBram Moolenaarhi def link radianceLightType	Type
131*f37506f6SBram Moolenaarhi def link radianceMatType	Type
132*f37506f6SBram Moolenaarhi def link radiancePatType	Type
133*f37506f6SBram Moolenaarhi def link radianceTexType	Type
134*f37506f6SBram Moolenaarhi def link radianceMixType	Type
135*f37506f6SBram Moolenaarhi def link radianceComment	Comment
136*f37506f6SBram Moolenaarhi def link radianceCommand	Function
137*f37506f6SBram Moolenaarhi def link radianceID		String
138*f37506f6SBram Moolenaarhi def link radianceTodo		Todo
139071d4279SBram Moolenaar
140071d4279SBram Moolenaarlet b:current_syntax = "radiance"
141071d4279SBram Moolenaar
142071d4279SBram Moolenaar" vim: ts=8 sw=2
143