diff options
Diffstat (limited to 'runtime/syntax/radiance.vim')
-rw-r--r-- | runtime/syntax/radiance.vim | 159 |
1 files changed, 159 insertions, 0 deletions
diff --git a/runtime/syntax/radiance.vim b/runtime/syntax/radiance.vim new file mode 100644 index 000000000..461b708f0 --- /dev/null +++ b/runtime/syntax/radiance.vim @@ -0,0 +1,159 @@ +" Vim syntax file +" Language: Radiance Scene Description +" Maintainer: Georg Mischler <schorsch@schorsch.com> +" Last change: 26. April. 2001 + +" Radiance is a lighting simulation software package written +" by Gregory Ward-Larson ("the computer artist formerly known +" as Greg Ward"), then at LBNL. +" +" http://radsite.lbl.gov/radiance/HOME.html +" +" Of course, there is also information available about it +" from http://www.schorsch.com/ + + +" We take a minimalist approach here, highlighting just the +" essential properties of each object, its type and ID, as well as +" comments, external command names and the null-modifier "void". + + +" For version 5.x: Clear all syntax items +" For version 6.x: Quit when a syntax file was already loaded +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +" all printing characters except '#' and '!' are valid in names. +if version >= 600 + setlocal iskeyword=\",$-~ +else + set iskeyword=\",$-~ +endif + +" The null-modifier +syn keyword radianceKeyword void + +" The different kinds of scene description object types +" Reference types +syn keyword radianceExtraType contained alias instance +" Surface types +syn keyword radianceSurfType contained ring polygon sphere bubble +syn keyword radianceSurfType contained cone cup cylinder tube source +" Emitting material types +syn keyword radianceLightType contained light glow illum spotlight +" Material types +syn keyword radianceMatType contained mirror mist prism1 prism2 +syn keyword radianceMatType contained metal plastic trans +syn keyword radianceMatType contained metal2 plastic2 trans2 +syn keyword radianceMatType contained metfunc plasfunc transfunc +syn keyword radianceMatType contained metdata plasdata transdata +syn keyword radianceMatType contained dielectric interface glass +syn keyword radianceMatType contained BRTDfunc antimatter +" Pattern modifier types +syn keyword radiancePatType contained colorfunc brightfunc +syn keyword radiancePatType contained colordata colorpict brightdata +syn keyword radiancePatType contained colortext brighttext +" Texture modifier types +syn keyword radianceTexType contained texfunc texdata +" Mixture types +syn keyword radianceMixType contained mixfunc mixdata mixpict mixtext + + +" Each type name is followed by an ID. +" This doesn't work correctly if the id is one of the type names of the +" same class (which is legal for radiance), in which case the id will get +" type color as well, and the int count (or alias reference) gets id color. + +syn region radianceID start="\<alias\>" end="\<\k*\>" contains=radianceExtraType +syn region radianceID start="\<instance\>" end="\<\k*\>" contains=radianceExtraType + +syn region radianceID start="\<source\>" end="\<\k*\>" contains=radianceSurfType +syn region radianceID start="\<ring\>" end="\<\k*\>" contains=radianceSurfType +syn region radianceID start="\<polygon\>" end="\<\k*\>" contains=radianceSurfType +syn region radianceID start="\<sphere\>" end="\<\k*\>" contains=radianceSurfType +syn region radianceID start="\<bubble\>" end="\<\k*\>" contains=radianceSurfType +syn region radianceID start="\<cone\>" end="\<\k*\>" contains=radianceSurfType +syn region radianceID start="\<cup\>" end="\<\k*\>" contains=radianceSurfType +syn region radianceID start="\<cylinder\>" end="\<\k*\>" contains=radianceSurfType +syn region radianceID start="\<tube\>" end="\<\k*\>" contains=radianceSurfType + +syn region radianceID start="\<light\>" end="\<\k*\>" contains=radianceLightType +syn region radianceID start="\<glow\>" end="\<\k*\>" contains=radianceLightType +syn region radianceID start="\<illum\>" end="\<\k*\>" contains=radianceLightType +syn region radianceID start="\<spotlight\>" end="\<\k*\>" contains=radianceLightType + +syn region radianceID start="\<mirror\>" end="\<\k*\>" contains=radianceMatType +syn region radianceID start="\<mist\>" end="\<\k*\>" contains=radianceMatType +syn region radianceID start="\<prism1\>" end="\<\k*\>" contains=radianceMatType +syn region radianceID start="\<prism2\>" end="\<\k*\>" contains=radianceMatType +syn region radianceID start="\<metal\>" end="\<\k*\>" contains=radianceMatType +syn region radianceID start="\<plastic\>" end="\<\k*\>" contains=radianceMatType +syn region radianceID start="\<trans\>" end="\<\k*\>" contains=radianceMatType +syn region radianceID start="\<metal2\>" end="\<\k*\>" contains=radianceMatType +syn region radianceID start="\<plastic2\>" end="\<\k*\>" contains=radianceMatType +syn region radianceID start="\<trans2\>" end="\<\k*\>" contains=radianceMatType +syn region radianceID start="\<metfunc\>" end="\<\k*\>" contains=radianceMatType +syn region radianceID start="\<plasfunc\>" end="\<\k*\>" contains=radianceMatType +syn region radianceID start="\<transfunc\>" end="\<\k*\>" contains=radianceMatType +syn region radianceID start="\<metdata\>" end="\<\k*\>" contains=radianceMatType +syn region radianceID start="\<plasdata\>" end="\<\k*\>" contains=radianceMatType +syn region radianceID start="\<transdata\>" end="\<\k*\>" contains=radianceMatType +syn region radianceID start="\<dielectric\>" end="\<\k*\>" contains=radianceMatType +syn region radianceID start="\<interface\>" end="\<\k*\>" contains=radianceMatType +syn region radianceID start="\<glass\>" end="\<\k*\>" contains=radianceMatType +syn region radianceID start="\<BRTDfunc\>" end="\<\k*\>" contains=radianceMatType +syn region radianceID start="\<antimatter\>" end="\<\k*\>" contains=radianceMatType + +syn region radianceID start="\<colorfunc\>" end="\<\k*\>" contains=radiancePatType +syn region radianceID start="\<brightfunc\>" end="\<\k*\>" contains=radiancePatType +syn region radianceID start="\<colordata\>" end="\<\k*\>" contains=radiancePatType +syn region radianceID start="\<brightdata\>" end="\<\k*\>" contains=radiancePatType +syn region radianceID start="\<colorpict\>" end="\<\k*\>" contains=radiancePatType +syn region radianceID start="\<colortext\>" end="\<\k*\>" contains=radiancePatType +syn region radianceID start="\<brighttext\>" end="\<\k*\>" contains=radiancePatType + +syn region radianceID start="\<texfunc\>" end="\<\k*\>" contains=radianceTexType +syn region radianceID start="\<texdata\>" end="\<\k*\>" contains=radianceTexType + +syn region radianceID start="\<mixfunc\>" end="\<\k*\>" contains=radianceMixType +syn region radianceID start="\<mixdata\>" end="\<\k*\>" contains=radianceMixType +syn region radianceID start="\<mixtext\>" end="\<\k*\>" contains=radianceMixType + +" external commands (generators, xform et al.) +syn match radianceCommand "^\s*!\s*[^\s]\+\>" + +" The usual suspects +syn keyword radianceTodo contained TODO XXX +syn match radianceComment "#.*$" contains=radianceTodo + +" Define the default highlighting. +" For version 5.7 and earlier: only when not done already +" For version 5.8 and later: only when an item doesn't have highlighting yet +if version >= 508 || !exists("did_radiance_syn_inits") + if version < 508 + let did_radiance_syn_inits = 1 + command -nargs=+ HiLink hi link <args> + else + command -nargs=+ HiLink hi def link <args> + endif + HiLink radianceKeyword Keyword + HiLink radianceExtraType Type + HiLink radianceSurfType Type + HiLink radianceLightType Type + HiLink radianceMatType Type + HiLink radiancePatType Type + HiLink radianceTexType Type + HiLink radianceMixType Type + HiLink radianceComment Comment + HiLink radianceCommand Function + HiLink radianceID String + HiLink radianceTodo Todo + delcommand HiLink +endif + +let b:current_syntax = "radiance" + +" vim: ts=8 sw=2 |