1" Vim syntax file 2" Language: Radiance Scene Description 3" Maintainer: Georg Mischler <[email protected]> 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" quit when a syntax file was already loaded 22if exists("b:current_syntax") 23 finish 24endif 25 26" all printing characters except '#' and '!' are valid in names. 27setlocal iskeyword=\",$-~ 28 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. 126" Only when an item doesn't have highlighting yet 127hi def link radianceKeyword Keyword 128hi def link radianceExtraType Type 129hi def link radianceSurfType Type 130hi def link radianceLightType Type 131hi def link radianceMatType Type 132hi def link radiancePatType Type 133hi def link radianceTexType Type 134hi def link radianceMixType Type 135hi def link radianceComment Comment 136hi def link radianceCommand Function 137hi def link radianceID String 138hi def link radianceTodo Todo 139 140let b:current_syntax = "radiance" 141 142" vim: ts=8 sw=2 143