summaryrefslogtreecommitdiff
path: root/runtime/syntax/radiance.vim
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/syntax/radiance.vim')
-rw-r--r--runtime/syntax/radiance.vim159
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