<?xml version = '1.0' encoding = 'UTF-8'?>
<!DOCTYPE language SYSTEM "language.dtd">
<language extensions="*.ts" mimetype="" section="Configuration" author="Thomas Hempel (thomas@work.de)" version="1.0" name="TypoScript" license="LGPL" >
	<highlighting>
		<list name="keywords">
			<item>typeNum</item>
			<item>admPanel</item>
			<item>index_enable</item>
			<item>index_externals</item>
			<item>doctype</item>
			<item>xhtml_cleaning</item>
			<item>inlineStyle2TempFile</item>
			<item>spamProtectEmailAddresses</item>
			<item>spamProtectEmailAddresses_atSubst</item>
			<item>simulateStaticDocuments</item>
			<item>simulateStaticDocuments_noTypeIfNoTitle</item>
			<item>table</item>
			<item>select</item>
			<item>pidInList</item>
			<item>uidInList</item>
			<item>userFunc</item>
			<item>value</item>
			<item>template</item>
			<item>file</item>
			<item>workOnSubpart</item>
			<item>marks</item>
			<item>subparts</item>
			<item>headerData</item>
		</list>
		<list name="TLO">
			<item>PAGE</item>
			<item>CONFIG</item>
			<item>CONSTANTS</item>
			<item>FE_DATA</item>
			<item>FE_TABLE</item>
			<item>FRAMESET</item>
			<item>FRAME</item>
			<item>META</item>
			
			<!-- content types -->
			<item>COA</item>
			<item>COA_INT</item>
			<item>COBJ_ARRAY</item>
			<item>CARRAY</item>
			<item>CONTENT</item>
			
			<!-- content objects -->
			<item>TEXT</item>
			<item>HTML</item>
			<item>FILE</item>
			<item>IMAGE</item>
			<item>IMG_RESOURCE</item>
			<item>CLEARGIF</item>
			<item>RECORDS</item>
			<item>CTABLE</item>
			<item>OTABLE</item>
			<item>COLUMNS</item>
			<item>HRULER</item>
			<item>IMGTEXT</item>
			<item>CASE</item>
			<item>LOAD_REGISTER</item>
			<item>RESTORE_REGISTER</item>
			<item>FORM</item>
			<item>SEARCHRESULT</item>
			<item>USER</item>
			<item>USER_INT</item>
			<item>PHP_SCRIPT</item>
			<item>PHP_SCRIPT_INT</item>
			<item>PHP_SCRIPT_EXT</item>
			<item>TEMPLATE</item>
			<item>MULTIMEDIA</item>
			<item>EDITPANEL</item>
			<item>GIFBUILDER</item>
				
			<!-- menus -->
			<item>HMENU</item>
			<item>GMENU</item>
			<item>GMENU_LAYERS</item>
			<item>GMENU_FOLDOUT</item>
			<item>TMENU</item>
			<item>TMENU_LAYERS</item>
			<item>IMGMENU</item>
			<item>JSMENU</item>
			
			<!-- default options -->
			<item>_LOCAL_LANG</item>
			<item>_CSS_DEFAULT_STYLE</item>
			<item>_DEFAULT_PI_VARS</item>
		</list>
		<list name="objects">
			<!-- general -->
			<item>lib</item>
			<item>config</item>
			<item>plugin</item>
			
			<!-- content -->
			<item>styles</item>
			<item>content</item>
			<item>get</item>
			<item>getLeft</item>
			<item>getRight</item>
			<item>getBorder</item>
			
			<!-- menus -->
			<item>NO</item>
			<item>RO</item>
			<item>ACT</item>
			<item>NOSUB</item>
		</list>
		<list name="stdwrap">
			<item>setContentToCurrent</item>
			<item>setCurrent</item>
			<item>lang</item>
			<item>parseFunc</item>
			<item>data</item>
			<item>field</item>
			<item>current</item>
			<item>cObject</item>
			<item>numRows</item>
			<item>filelist</item>
			<item>preUserFunc</item>
			<item>override</item>
			<item>preIfEmptyListNum</item>
			<item>ifEmpty</item>
			<item>listNum</item>
			<item>trim</item>
			<item>required</item>
			<item>if</item>
			<item>fieldRequired</item>
			<item>csConf</item>
			<item>HTMLparser</item>
			<item>prioriCalc</item>
			<item>char</item>
			<item>intval</item>
			<item>date</item>
			<item>strftime</item>
			<item>age</item>
			<item>case</item>
			<item>bytes</item>
			<item>substring</item>
			<item>removeBadHTML</item>
			<item>stripHtml</item>
			<item>crop</item>
			<item>rawUrlEncode</item>
			<item>htmlSpecialChars</item>
			<item>doubleBrTag</item>
			<item>br</item>
			<item>brTag</item>
			<item>encapsLines</item>
			<item>keywords</item>
			<item>innerWrap</item>
			<item>innerWrap2</item>
			<item>fontTag</item>
			<item>addParams</item>
			<item>textStyle</item>
			<item>filelink</item>
			<item>preCObject</item>
			<item>postCObject</item>
			<item>wrapAlign</item>
			<item>spaceBefore</item>
			<item>spaceAfter</item>
			<item>space</item>
			<item>noTrimWrap</item>
			<item>wrap2</item>
			<item>dataWrap</item>
			<item>prepend</item>
			<item>append</item>
			<item>wrap3</item>
			<item>outerWrap</item>
			<item>insertData</item>
			<item>offsetWrap</item>
			<item>postUserFunc</item>
			<item>prefixComment</item>
			<item>editIcons</item>
			<item>editPanel</item>
			<item>debug</item>
			<item>debugFunc</item>
			<item>debugData</item>
			<item>stdWrap</item>
			<item>allWrap</item><!-- hab ich in TSRef nicht gefunden ????-->
			<item>wrap</item>
			<item>parseFunc</item>
			<item>tags</item><!-- hab ich in TSRef nicht gefunden ????-->
			<item>link</item><!-- hab ich in TSRef nicht gefunden ????-->
			<item>typolink</item>
			<item>stdheader</item><!-- hab ich in TSRef nicht gefunden ????-->
			<item>target</item><!-- hab ich in TSRef nicht gefunden ????-->
			<item>split</item>
			<item>typolist</item><!-- hab ich in TSRef nicht gefunden ????-->
		</list>
		
		<list name="imgResource">
			<item>ext</item>
			<item>width</item>
			<item>height</item>
			<item>params</item>
			<item>sample</item>
			<item>alternativeTempPath</item>
			<item>frame</item>
			<item>import</item>
			<item>maxW</item>
			<item>maxH</item>
			<item>minW</item>
			<item>minH</item>
			<item>m.mask</item>
			<item>m.bgImg</item>
			<item>m.bottomImg</item>
			<item>m.bottomImg_mask</item>
		</list>
		
		<list name="imageLinkWrap">
			<item>width</item>
			<item>height</item>
			<item>effects</item>
			<item>sample</item>
			<item>alternativeTempPath</item>
			<item>title</item>
			<item>bodyTag</item>
			<item>wrap</item>
			<item>target</item>
			<item>JSwindow</item>
			<item>JSwindow.expand</item>
			<item>JSwindow.newWindow</item>
			<item>JSwindow.altUrl</item>
			<item>typolink</item>
			<item>enable</item>
		</list>
		
		<list name="textStyle">
			<item>align.field</item>
			<item>face.field</item>
			<item>face.default</item>
			<item>size.field</item>
			<item>size.default</item>
			<item>color.field</item>
			<item>color.default</item>
			<item>color</item>
			<item>properties.field</item>
			<item>properties.default</item>
			<item>altWrap</item>
		</list>
		
		<list name="encapseLines">
			<item>encapsTagList</item>
			<item>remap.Tag</item>
			<item>addAttributes</item>
			<item>removeWrapping</item>
			<item>wrapNonWrappedLines</item>
			<item>innerStdWrap_all</item>
			<item>defaultAlign</item>
			<item>encapsLinesStdWrap</item>
			<item>nonWrappedTag</item>
		</list>
		
		<list name="filelink">
			<item>path</item>
			<item>icon</item>
			<item>icon_image_ext_list</item>
			<item>iconCObject</item>
			<item>icon_link</item>
			<item>labelStdWrap</item>
			<item>wrap</item>
			<item>ATagBeforeWrap</item>
			<item>file</item>
			<item>size</item>
			<item>jumpurl</item>
			<item>target</item>
			<item>stdWrap</item>
			<item>ATagParams</item>
			<item>removePrependedNumbers</item>
			<item>altText</item>
			<item>titleText</item>
			<item>longdescURL</item>
		</list>
		
		<list name="conditionkeywords">
			<item>end</item>
			<item>else</item>
			<item>global</item>
			<item>browser</item>
			<item>version</item>
			<item>system</item>
			<item>device</item>
			<item>useragent</item>
			<item>language</item>
			<item>IP</item>
			<item>hostname</item>
			<item>hour</item>
			<item>minute</item>
			<item>dayofweek</item>
			<item>dayofmonth</item>
			<item>month</item>
			<item>usergroup</item>
			<item>loginUser</item>
			<item>treeLevel</item>
			<item>PIDinRootline</item>
			<item>PIDupinRootline</item>
			<item>globalVar</item>
			<item>globalString</item>
			<item>userFunc</item>
		</list>
		<contexts>
			
			<context attribute="Normal Text" lineEndContext="#stay" name="ts" >
				<DetectChar attribute="Normal Text" context="#stay" char="{" beginRegion="Brace1" />
				<DetectChar attribute="Normal Text" context="#stay" char="}" endRegion="Brace1" />
				
				<DetectChar attribute="Condition" context="condition" char="[" beginRegion="Condition" />
				
				<!-- detect special chars (=, ., <, >) -->
				<DetectChar char="=" context="Value" attribute="Assignment" />
				<DetectChar char="." context="#pop" attribute="Assignment" />
				<DetectChar char="&gt;" context="Value" attribute="Assignment" />
				<DetectChar char="&lt;" context="Value" attribute="Assignment" />
				
				<DetectChar char="#" firstNonSpace="true" context="Comment" attribute="Comment" />
				<Detect2Chars attribute="Comment" context="Comment" char="/" char1="/" />
				<Detect2Chars attribute="Comment" context="twolinecomment" char="/" char1="&#42;" beginRegion="Comment"/>
				
				<!-- detect keywords -->
				<keyword attribute="Keyword" context="#stay" String="keywords" />
				
				<!-- detect objects -->
				<keyword attribute="Object" context="#stay" String="objects" />
				
				<!-- detect top level objects -->
				<keyword attribute="TLO" context="#stay" String="TLO" />

				<!-- detect stdWrap keywords -->
				<keyword attribute="stdWrap" context="#stay" String="stdwrap" />
				
				<!-- detect imgResource keywords -->
				<keyword attribute="imgResource" context="#stay" String="imgresource" />
				
				<!-- detect imgLinkWrap keywords -->
				<keyword attribute="imgLinkWrap" context="#stay" String="imglinkwrap" />
				
				<!-- detect textStyle keywords -->
				<keyword attribute="textStyle" context="#stay" String="imglinkwrap" />
				
				<!-- detect encapsLines keywords -->
				<keyword attribute="encapsLines" context="#stay" String="encapselines" />
				
				<!-- detect filelink keywords -->
				<keyword attribute="filelink" context="#stay" String="filelink" />				
				
				<!-- detect plugins (starts with tx_ or tt_ -->
				<RegExpr attribute="Plugin" context="#stay" String="(tx_|tt_)[A-Za-z0-9_]*" />
				
				<!-- detect numbers (something like tt_content.menu.20.2.1.) -->
				<Int attribute="Order" />
			</context>
			
			<context attribute="Value" lineEndContext="#pop" name="Value">
				<Int attribute="Int" />
				
				<DetectChar char="." context="Value" attribute="Assignment" />
				<DetectChar char="," context="Value" attribute="Assignment" />
				
				<keyword attribute="Keyword" String="keywords" />
				<keyword attribute="Object" String="objects" />
				<keyword attribute="TLO" String="TLO" />
				<keyword attribute="stdWrap" context="#stay" String="stdwrap" />
				<keyword attribute="imgResource" context="#stay" String="imgresource" />
				<keyword attribute="imgLinkWrap" context="#stay" String="imglinkwrap" />
				<keyword attribute="textStyle" context="#stay" String="textstyle" />
				<keyword attribute="encapseLines" context="#stay" String="encapselines" />
				<keyword attribute="filelink" context="#stay" String="filelink" />
				
				<RegExpr attribute="Plugin" context="#stay" String="(tx_|tt_)[A-Za-z0-9_]*" />
				
				<DetectChar char="|" context="#stay" attribute="Assignment" />
			</context>
			
			<context attribute="Condition" name="condition" lineEndContext="#pop">
				<DetectChar attribute="Condition" context="#pop" char="]" endRegion="Condition" />
				
				<keyword attribute="TLO" context="#stay" String="conditionkeywords" />
				
				<RegExpr attribute="Value" context="#stay" String="[A-Za-z0-9_]*" />
				
				<DetectChar char="=" context="#stay" attribute="Assignment" />
				<DetectChar char="," context="#stay" attribute="Assignment" />
			</context>
			
			<context attribute="Comment" lineEndContext="#pop" name="Comment" >
				<DetectSpaces />
				<IncludeRules context="##Alerts" />
				<DetectIdentifier />
			</context>
			
			<context name="twolinecomment" attribute="Comment" lineEndContext="#stay">
				<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment" />
			</context>
			
		</contexts>
		<itemDatas>
			<itemData name="Normal Text" defStyleNum="dsNormal" color="#ff0000" />
			<itemData name="Comment" defStyleNum="dsComment" />
			<itemData name="Assignment" defStyleNum="dsOthers" bold="1" />
			<itemData name="Value" defStyleNum="dsString" color="#202020" />
			<itemData name="Int" defStyleNum="dsDecVal" />
			<itemData name="Keyword" defStyleNum="dsKeyword" color="#0000ff" />
			<itemData name="Object" defStyleNum="dsKeyword" color="#0066ff" />
			<itemData name="Plugin" defStyleNum="dsKeyword" color="#0066ff" bold="0" />
			<itemData name="stdWrap" defStyleNum="dsKeyword" color="#606000" bold="0" />
			<itemData name="imgResource" defStyleNum="dsKeyword" color="#606000" bold="0" />
			<itemData name="imgLinkWrap" defStyleNum="dsKeyword" color="#606000" bold="0" />
			<itemData name="textStyle" defStyleNum="dsKeyword" color="#606000" bold="0" />
			<itemData name="encapseLines" defStyleNum="dsKeyword" color="#606000" bold="0" />
			<itemData name="filelink" defStyleNum="dsKeyword" color="#606000" bold="0" />
			<itemData name="TLO" defStyleNum="dsKeyword" color="#00f0ff" bold="1" />
			<itemData name="Order" defStyleNum="dsKeyWord" color="#ff6600" bold="1" />
			<itemData name="Condition" defStyleNum="dsNormal" color="#008000" />
		</itemDatas>
	</highlighting>
	
	<general>
		<comments>
			<comment name="singleLine" start="#" />
			<comment name="singleLine" start="//" />
			<comment name="multiLine" start="/*" end="*/" />
		</comments>	
		<keywords casesensitive="1" />
	</general>

</language>
