1" 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 160