Merge branch 'hack/autopaste'
[vim-kana.git] / runtime / syntax / radiance.vim
blob461b708f0eed2d41b0bbed7a34a450205f425b30
1 " Vim syntax file
2 " Language:     Radiance Scene Description
3 " Maintainer:   Georg Mischler <schorsch@schorsch.com>
4 " Last change:  26. April. 2001
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.
10 " http://radsite.lbl.gov/radiance/HOME.html
12 " Of course, there is also information available about it
13 " from http://www.schorsch.com/
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".
21 " For version 5.x: Clear all syntax items
22 " For version 6.x: Quit when a syntax file was already loaded
23 if version < 600
24   syntax clear
25 elseif exists("b:current_syntax")
26   finish
27 endif
29 " all printing characters except '#' and '!' are valid in names.
30 if version >= 600
31   setlocal iskeyword=\",$-~
32 else
33   set iskeyword=\",$-~
34 endif
36 " The null-modifier
37 syn keyword radianceKeyword void
39 " The different kinds of scene description object types
40 " Reference types
41 syn keyword radianceExtraType contained alias instance
42 " Surface types
43 syn keyword radianceSurfType contained ring polygon sphere bubble
44 syn keyword radianceSurfType contained cone cup cylinder tube source
45 " Emitting material types
46 syn keyword radianceLightType contained light glow illum spotlight
47 " Material types
48 syn keyword radianceMatType contained mirror mist prism1 prism2
49 syn keyword radianceMatType contained metal plastic trans
50 syn keyword radianceMatType contained metal2 plastic2 trans2
51 syn keyword radianceMatType contained metfunc plasfunc transfunc
52 syn keyword radianceMatType contained metdata plasdata transdata
53 syn keyword radianceMatType contained dielectric interface glass
54 syn keyword radianceMatType contained BRTDfunc antimatter
55 " Pattern modifier types
56 syn keyword radiancePatType contained colorfunc brightfunc
57 syn keyword radiancePatType contained colordata colorpict brightdata
58 syn keyword radiancePatType contained colortext brighttext
59 " Texture modifier types
60 syn keyword radianceTexType contained texfunc texdata
61 " Mixture types
62 syn keyword radianceMixType contained mixfunc mixdata mixpict mixtext
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.
70 syn region radianceID start="\<alias\>"      end="\<\k*\>" contains=radianceExtraType
71 syn region radianceID start="\<instance\>"   end="\<\k*\>" contains=radianceExtraType
73 syn region radianceID start="\<source\>"     end="\<\k*\>" contains=radianceSurfType
74 syn region radianceID start="\<ring\>"       end="\<\k*\>" contains=radianceSurfType
75 syn region radianceID start="\<polygon\>"    end="\<\k*\>" contains=radianceSurfType
76 syn region radianceID start="\<sphere\>"     end="\<\k*\>" contains=radianceSurfType
77 syn region radianceID start="\<bubble\>"     end="\<\k*\>" contains=radianceSurfType
78 syn region radianceID start="\<cone\>"       end="\<\k*\>" contains=radianceSurfType
79 syn region radianceID start="\<cup\>"        end="\<\k*\>" contains=radianceSurfType
80 syn region radianceID start="\<cylinder\>"   end="\<\k*\>" contains=radianceSurfType
81 syn region radianceID start="\<tube\>"       end="\<\k*\>" contains=radianceSurfType
83 syn region radianceID start="\<light\>"      end="\<\k*\>" contains=radianceLightType
84 syn region radianceID start="\<glow\>"       end="\<\k*\>" contains=radianceLightType
85 syn region radianceID start="\<illum\>"      end="\<\k*\>" contains=radianceLightType
86 syn region radianceID start="\<spotlight\>"  end="\<\k*\>" contains=radianceLightType
88 syn region radianceID start="\<mirror\>"     end="\<\k*\>" contains=radianceMatType
89 syn region radianceID start="\<mist\>"       end="\<\k*\>" contains=radianceMatType
90 syn region radianceID start="\<prism1\>"     end="\<\k*\>" contains=radianceMatType
91 syn region radianceID start="\<prism2\>"     end="\<\k*\>" contains=radianceMatType
92 syn region radianceID start="\<metal\>"      end="\<\k*\>" contains=radianceMatType
93 syn region radianceID start="\<plastic\>"    end="\<\k*\>" contains=radianceMatType
94 syn region radianceID start="\<trans\>"      end="\<\k*\>" contains=radianceMatType
95 syn region radianceID start="\<metal2\>"     end="\<\k*\>" contains=radianceMatType
96 syn region radianceID start="\<plastic2\>"   end="\<\k*\>" contains=radianceMatType
97 syn region radianceID start="\<trans2\>"     end="\<\k*\>" contains=radianceMatType
98 syn region radianceID start="\<metfunc\>"    end="\<\k*\>" contains=radianceMatType
99 syn region radianceID start="\<plasfunc\>"   end="\<\k*\>" contains=radianceMatType
100 syn region radianceID start="\<transfunc\>"  end="\<\k*\>" contains=radianceMatType
101 syn region radianceID start="\<metdata\>"    end="\<\k*\>" contains=radianceMatType
102 syn region radianceID start="\<plasdata\>"   end="\<\k*\>" contains=radianceMatType
103 syn region radianceID start="\<transdata\>"  end="\<\k*\>" contains=radianceMatType
104 syn region radianceID start="\<dielectric\>" end="\<\k*\>" contains=radianceMatType
105 syn region radianceID start="\<interface\>"  end="\<\k*\>" contains=radianceMatType
106 syn region radianceID start="\<glass\>"      end="\<\k*\>" contains=radianceMatType
107 syn region radianceID start="\<BRTDfunc\>"   end="\<\k*\>" contains=radianceMatType
108 syn region radianceID start="\<antimatter\>" end="\<\k*\>" contains=radianceMatType
110 syn region radianceID start="\<colorfunc\>"  end="\<\k*\>" contains=radiancePatType
111 syn region radianceID start="\<brightfunc\>" end="\<\k*\>" contains=radiancePatType
112 syn region radianceID start="\<colordata\>"  end="\<\k*\>" contains=radiancePatType
113 syn region radianceID start="\<brightdata\>" end="\<\k*\>" contains=radiancePatType
114 syn region radianceID start="\<colorpict\>"  end="\<\k*\>" contains=radiancePatType
115 syn region radianceID start="\<colortext\>"  end="\<\k*\>" contains=radiancePatType
116 syn region radianceID start="\<brighttext\>" end="\<\k*\>" contains=radiancePatType
118 syn region radianceID start="\<texfunc\>"    end="\<\k*\>" contains=radianceTexType
119 syn region radianceID start="\<texdata\>"    end="\<\k*\>" contains=radianceTexType
121 syn region radianceID start="\<mixfunc\>"    end="\<\k*\>" contains=radianceMixType
122 syn region radianceID start="\<mixdata\>"    end="\<\k*\>" contains=radianceMixType
123 syn region radianceID start="\<mixtext\>"    end="\<\k*\>" contains=radianceMixType
125 " external commands (generators, xform et al.)
126 syn match radianceCommand "^\s*!\s*[^\s]\+\>"
128 " The usual suspects
129 syn keyword radianceTodo contained TODO XXX
130 syn match radianceComment "#.*$" contains=radianceTodo
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
135 if 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
155 endif
157 let b:current_syntax = "radiance"
159 " vim: ts=8 sw=2