forked from aniani/vim
		
	
		
			
	
	
		
			160 lines
		
	
	
		
			7.4 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
		
		
			
		
	
	
			160 lines
		
	
	
		
			7.4 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
|   | " 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 |