jEdit BrightScript mode support (Syntax Coloring)

At the request of jbrave, I’ve created a BrightScript mode file for jEdit which gives syntax coloring for BrightScript (.brs) files.

Add the following to the “Modes” subdirectory of the jEdit install directory as a file named “BrightScript.xml”:


<?xml version="1.0"?>

<!DOCTYPE MODE SYSTEM "xmode.dtd">

<!-- BrightScript mode by Domhain Technology -->
<MODE>
	<PROPS>
		<PROPERTY NAME="lineComment" VALUE="'" />
		<PROPERTY NAME="lineComment" VALUE="rem" />
	</PROPS>

	<RULES IGNORE_CASE="TRUE" HIGHLIGHT_DIGITS="TRUE">

		<SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
			<BEGIN>"</BEGIN>
			<END>"</END>
		</SPAN>

		<EOL_SPAN TYPE="COMMENT1">'</EOL_SPAN>
		<EOL_SPAN TYPE="COMMENT1" AT_WORD_START="TRUE">rem</EOL_SPAN>

		<!-- Comparison operators -->
		<SEQ TYPE="OPERATOR"><</SEQ>
		<SEQ TYPE="OPERATOR"><=</SEQ>
		<SEQ TYPE="OPERATOR">>=</SEQ>
		<SEQ TYPE="OPERATOR">></SEQ>
		<SEQ TYPE="OPERATOR">=</SEQ>
		<SEQ TYPE="OPERATOR"><></SEQ>
		<SEQ TYPE="OPERATOR">.</SEQ>

		<!-- Arithmetic operators -->
		<SEQ TYPE="OPERATOR">+</SEQ>
		<SEQ TYPE="OPERATOR">-</SEQ>
		<SEQ TYPE="OPERATOR">*</SEQ>
		<SEQ TYPE="OPERATOR">/</SEQ>
		<SEQ TYPE="OPERATOR">^</SEQ>

	<KEYWORDS>
		<!-- Logical operators -->
		<OPERATOR>and</OPERATOR>
		<OPERATOR>or</OPERATOR>
		<OPERATOR>not</OPERATOR>	

		<KEYWORD1>dim</KEYWORD1>
		<KEYWORD1>end</KEYWORD1>			
		<KEYWORD1>stop</KEYWORD1>	
		<KEYWORD1>goto</KEYWORD1>	
		<KEYWORD1>return</KEYWORD1>	
		<KEYWORD1>for</KEYWORD1>	
		<KEYWORD1>to</KEYWORD1>
		<KEYWORD1>step</KEYWORD1>		
		<KEYWORD1>each</KEYWORD1>	
		<KEYWORD1>in</KEYWORD1>	
		<KEYWORD1>while</KEYWORD1>	
		<KEYWORD1>if</KEYWORD1>	
		<KEYWORD1>then</KEYWORD1>	
		<KEYWORD1>else</KEYWORD1>	
		<KEYWORD1>elseif</KEYWORD1>	
		<KEYWORD1>endif</KEYWORD1>	
		<KEYWORD1>print</KEYWORD1>
		<KEYWORD1>endif</KEYWORD1>
		<KEYWORD1>function</KEYWORD1>
		<KEYWORD1>sub</KEYWORD1>
		<KEYWORD1>as</KEYWORD1>

		<!-- Variable types -->
		<KEYWORD1>Integer</KEYWORD1>
		<KEYWORD1>Float</KEYWORD1>
		<KEYWORD1>Double</KEYWORD1>
		<KEYWORD1>Boolean</KEYWORD1>
		<KEYWORD1>String</KEYWORD1>
		<KEYWORD1>Object</KEYWORD1>
		<KEYWORD1>Dynamic</KEYWORD1>
		<KEYWORD1>Interface</KEYWORD1>

		<!-- Built-in Functions -->
		<KEYWORD2>rnd</KEYWORD2>
		<KEYWORD2>box</KEYWORD2>
		<KEYWORD2>run</KEYWORD2>
		<KEYWORD2>eval</KEYWORD2>
		<KEYWORD2>getlastruncompileerror</KEYWORD2>
		<KEYWORD2>getlastrunruntimeerror</KEYWORD2>
		<KEYWORD2>sleep</KEYWORD2>
		<KEYWORD2>wait</KEYWORD2>
		<KEYWORD2>createobject</KEYWORD2>
		<KEYWORD2>getinterface</KEYWORD2>
		<KEYWORD2>uptime</KEYWORD2>
		<KEYWORD2>rebootsystem</KEYWORD2>
		<KEYWORD2>lastdir</KEYWORD2>
		<KEYWORD2>readasciifile</KEYWORD2>
		<KEYWORD2>writeasciifile</KEYWORD2>
		<KEYWORD2>copyfile</KEYWORD2>
		<KEYWORD2>matchfiles</KEYWORD2>
		<KEYWORD2>deletefile</KEYWORD2>
		<KEYWORD2>deletedirectory</KEYWORD2>
		<KEYWORD2>createdirectory</KEYWORD2>
		<KEYWORD2>formatdrive</KEYWORD2>
		<KEYWORD2>deletefile</KEYWORD2>

		<!-- Global String Functions -->
		<KEYWORD2>ucase</KEYWORD2>
		<KEYWORD2>lcase</KEYWORD2>
		<KEYWORD2>asc</KEYWORD2>
		<KEYWORD2>chr</KEYWORD2>
		<KEYWORD2>instr</KEYWORD2>
		<KEYWORD2>left</KEYWORD2>
		<KEYWORD2>len</KEYWORD2>
		<KEYWORD2>mid</KEYWORD2>
		<KEYWORD2>right</KEYWORD2>
		<KEYWORD2>str</KEYWORD2>
		<KEYWORD2>string</KEYWORD2>
		<KEYWORD2>val</KEYWORD2>

		<!-- Global Math Functions -->
		<KEYWORD2>abs</KEYWORD2>
		<KEYWORD2>atn</KEYWORD2>
		<KEYWORD2>cos</KEYWORD2>
		<KEYWORD2>csng</KEYWORD2>
		<KEYWORD2>cdbl</KEYWORD2>
		<KEYWORD2>exp</KEYWORD2>
		<KEYWORD2>fix</KEYWORD2>
		<KEYWORD2>int</KEYWORD2>
		<KEYWORD2>log</KEYWORD2>
		<KEYWORD2>sgn</KEYWORD2>
		<KEYWORD2>sin</KEYWORD2>
		<KEYWORD2>sqr</KEYWORD2>
		<KEYWORD2>tan</KEYWORD2>

		<!-- Interface ifList -->
		<KEYWORD3>resetindex</KEYWORD3>
		<KEYWORD3>addtail</KEYWORD3>
		<KEYWORD3>addhead</KEYWORD3>
		<KEYWORD3>removeindex</KEYWORD3>
		<KEYWORD3>getindex</KEYWORD3>
		<KEYWORD3>removetail</KEYWORD3>
		<KEYWORD3>removehead</KEYWORD3>
		<KEYWORD3>gettail</KEYWORD3>
		<KEYWORD3>gethead</KEYWORD3>
		<KEYWORD3>count</KEYWORD3>
		<KEYWORD3>clear</KEYWORD3>

		<!-- Interface ifEnum -->
		<KEYWORD3>reset</KEYWORD3>
		<KEYWORD3>next</KEYWORD3>
		<KEYWORD3>isnext</KEYWORD3>
		<KEYWORD3>isempty</KEYWORD3>

		<!-- Interface ifMessagePort -->
		<KEYWORD3>getmessage</KEYWORD3>
		<KEYWORD3>waitmessage</KEYWORD3>

		<!-- Interface ifInt -->
		<KEYWORD3>getint</KEYWORD3>

		<!-- Interface ifIntOps -->
		<KEYWORD3>tostr</KEYWORD3>

		<!-- Interface ifFloat -->
		<KEYWORD3>getfloat</KEYWORD3>
		<KEYWORD3>setfloat</KEYWORD3>

		<!-- Interface ifString -->
		<KEYWORD3>getstring</KEYWORD3>
		<KEYWORD3>setstring</KEYWORD3>

		<!-- Interface ifStringOps -->
		<KEYWORD3>setstring</KEYWORD3>
		<KEYWORD3>appendstring</KEYWORD3>
		<KEYWORD3>len</KEYWORD3>
		<KEYWORD3>getentitycode</KEYWORD3>
		<KEYWORD3>tokenize</KEYWORD3>
		<KEYWORD3>trim</KEYWORD3>
		<KEYWORD3>toint</KEYWORD3>
		<KEYWORD3>tofloat</KEYWORD3>
		<KEYWORD3>left</KEYWORD3>
		<KEYWORD3>right</KEYWORD3>
		<KEYWORD3>mid</KEYWORD3>
		<KEYWORD3>instr</KEYWORD3>

		<!-- Interface ifFunction -->
		<KEYWORD3>getsub</KEYWORD3>
		<KEYWORD3>setsub</KEYWORD3>

		<!-- Interface ifBoolean -->
		<KEYWORD3>getboolean</KEYWORD3>
		<KEYWORD3>setboolean</KEYWORD3>

		<!-- Interface ifAssociativeArray -->
		<KEYWORD3>addreplace</KEYWORD3>
		<KEYWORD3>lookup</KEYWORD3>
		<KEYWORD3>doesexist</KEYWORD3>
		<KEYWORD3>delete</KEYWORD3>
		<KEYWORD3>clear</KEYWORD3>
		<KEYWORD3>setmodecasesensitive</KEYWORD3>

		<!-- Interface ifArray -->
		<KEYWORD3>getentry</KEYWORD3>
		<KEYWORD3>setentry</KEYWORD3>
		<KEYWORD3>peek</KEYWORD3>
		<KEYWORD3>pop</KEYWORD3>
		<KEYWORD3>push</KEYWORD3>
		<KEYWORD3>shift</KEYWORD3>
		<KEYWORD3>unshift</KEYWORD3>
		<KEYWORD3>delete</KEYWORD3>
		<KEYWORD3>count</KEYWORD3>
		<KEYWORD3>clear</KEYWORD3>
		<KEYWORD3>append</KEYWORD3>

		<!-- Interface ifByteArray -->
		<KEYWORD3>writefile</KEYWORD3>
		<KEYWORD3>readfile</KEYWORD3>
		<KEYWORD3>appendfile</KEYWORD3>
		<KEYWORD3>setresize</KEYWORD3>
		<KEYWORD3>tohexstring</KEYWORD3>
		<KEYWORD3>fromhexstring</KEYWORD3>
		<KEYWORD3>tobase64string</KEYWORD3>
		<KEYWORD3>frombase64string</KEYWORD3>
		<KEYWORD3>toasciistring</KEYWORD3>
		<KEYWORD3>fromasciistring</KEYWORD3>
		<KEYWORD3>getsignedbyte</KEYWORD3>
		<KEYWORD3>islittleendiancpu</KEYWORD3>

		<!-- Interface ifXMLElement -->
		<KEYWORD3>getbody</KEYWORD3>
		<KEYWORD3>getattributes</KEYWORD3>
		<KEYWORD3>getname</KEYWORD3>
		<KEYWORD3>gettext</KEYWORD3>
		<KEYWORD3>getchildelements</KEYWORD3>
		<KEYWORD3>getnamedchildelements</KEYWORD3>
		<KEYWORD3>getnamedchildelementsci</KEYWORD3>
		<KEYWORD3>parse</KEYWORD3>
		<KEYWORD3>setbody</KEYWORD3>
		<KEYWORD3>addbodyelement</KEYWORD3>
		<KEYWORD3>addelement</KEYWORD3>
		<KEYWORD3>addelementwithbody</KEYWORD3>
		<KEYWORD3>addattribute</KEYWORD3>
		<KEYWORD3>setname</KEYWORD3>
		<KEYWORD3>genxml</KEYWORD3>
		<KEYWORD3>clear</KEYWORD3>
		<KEYWORD3>genxmlheader</KEYWORD3>
		<KEYWORD3>isname</KEYWORD3>
		<KEYWORD3>hasattribute</KEYWORD3>

		<!-- Interface ifXMLList -->
		<KEYWORD3>getattributes</KEYWORD3>
		<KEYWORD3>gettext</KEYWORD3>
		<KEYWORD3>getchildelements</KEYWORD3>
		<KEYWORD3>getnamedchildelements</KEYWORD3>
		<KEYWORD3>getnamedchildelementsci</KEYWORD3>
		<KEYWORD3>simplify</KEYWORD3>

		<!-- Interface ifEvent -->
		<KEYWORD3>GetType</KEYWORD3>
		<KEYWORD3>GetIndex</KEYWORD3>
		<KEYWORD3>GetMessage</KEYWORD3>
		<KEYWORD3>GetData</KEYWORD3>
		<KEYWORD3>GetInfo</KEYWORD3>

		<!-- Specific event Interface methods (should be more specific here...) -->
		<KEYWORD3>isListItemSelected</KEYWORD3>
		<KEYWORD3>isScreenClosed</KEYWORD3>
		<KEYWORD3>isListFocused</KEYWORD3>
		<KEYWORD3>isListSelected</KEYWORD3>
		<KEYWORD3>isListItemFocused</KEYWORD3>
		<KEYWORD3>isButtonPressed</KEYWORD3>
		<KEYWORD3>isPlaybackPosition</KEYWORD3>
		<KEYWORD3>isRemoteKeyPressed</KEYWORD3>
		<KEYWORD3>isRequestSucceeded</KEYWORD3>
		<KEYWORD3>isRequestFailed</KEYWORD3>
		<KEYWORD3>isRequestInterrupted</KEYWORD3>
		<KEYWORD3>isStatusMessage</KEYWORD3>
		<KEYWORD3>isPaused</KEYWORD3>
		<KEYWORD3>isResumed</KEYWORD3>
		<KEYWORD3>isCleared</KEYWORD3>
		<KEYWORD3>isPartialResult</KEYWORD3>
		<KEYWORD3>isFullResult</KEYWORD3>
		<KEYWORD3>isAdSelected</KEYWORD3>
		<KEYWORD3>isStorageDeviceInserted</KEYWORD3>
		<KEYWORD3>isStorageDeviceRemoved</KEYWORD3>
		<KEYWORD3>isStreamStarted</KEYWORD3>
		<KEYWORD3>isListItemInfo</KEYWORD3>
		<KEYWORD3>isButtonInfo</KEYWORD3>

		<!-- Interface ifAppManager -->
		<KEYWORD3>settheme</KEYWORD3>
		<KEYWORD3>setthemeattribute</KEYWORD3>
		<KEYWORD3>clearthemeattribute</KEYWORD3>
		<KEYWORD3>getuptime</KEYWORD3>

		<!-- Interface ifPosterScreen -->
		<KEYWORD3>SetContentList</KEYWORD3>
		<KEYWORD3>GetContentList</KEYWORD3>
		<KEYWORD3>SetListNames</KEYWORD3>
		<KEYWORD3>SetListStyle</KEYWORD3>
		<KEYWORD3>SetListDisplayMode</KEYWORD3>
		<KEYWORD3>SetFocusedList</KEYWORD3>
		<KEYWORD3>SetFocusedListItem</KEYWORD3>
		<KEYWORD3>SetBreadcrumbText</KEYWORD3>
		<KEYWORD3>SetBreadcrumbEnabled</KEYWORD3>
		<KEYWORD3>ShowMessage</KEYWORD3>
		<KEYWORD3>ClearMessage</KEYWORD3>
		<KEYWORD3>SetAdURL</KEYWORD3>
		<KEYWORD3>SetAdSelectable</KEYWORD3>
		<KEYWORD3>SetAdDisplayMode</KEYWORD3>
		<KEYWORD3>Show</KEYWORD3>
		<KEYWORD3>Close</KEYWORD3>
		<KEYWORD3>SetTitle</KEYWORD3>
		<KEYWORD3>UseStableFocus</KEYWORD3>

		<!-- Interface ifHttpAgent -->
		<KEYWORD3>AddHeader</KEYWORD3>
		<KEYWORD3>SetHeaders</KEYWORD3>
		<KEYWORD3>SetCertificatesFile</KEYWORD3>
		<KEYWORD3>InitClientCertificates</KEYWORD3>

		<!-- Interface ifSetMessagePort -->
		<KEYWORD3>SetMessagePort</KEYWORD3>

		<!-- Interface ifGetMessagePort -->
		<KEYWORD3>GetMessagePort</KEYWORD3>

		<!-- Events roPosterScreenEvent -->

		<!-- Interface ifSpringBoardScreen -->
		<KEYWORD3>SetContent</KEYWORD3>
		<KEYWORD3>SetDescriptionStyle</KEYWORD3>
		<KEYWORD3>SetProgressIndicatorEnabled</KEYWORD3>
		<KEYWORD3>SetProgressIndicator</KEYWORD3>
		<KEYWORD3>AddThumbsUpDownButton</KEYWORD3>
		<KEYWORD3>AddThumbsUpDownButtonWithTips</KEYWORD3>
		<KEYWORD3>AddRatingButton</KEYWORD3>
		<KEYWORD3>SetStaticRatingEnabled</KEYWORD3>
		<KEYWORD3>ClearButtons</KEYWORD3>
		<KEYWORD3>SetBreadcrumbText</KEYWORD3>
		<KEYWORD3>SetBreadcrumbEnabled</KEYWORD3>
		<KEYWORD3>PrefetchPoster</KEYWORD3>
		<KEYWORD3>AllowUpdates</KEYWORD3>
		<KEYWORD3>CountButtons</KEYWORD3>
		<KEYWORD3>AllowNavLeft</KEYWORD3>
		<KEYWORD3>AllowNavRight</KEYWORD3>
		<KEYWORD3>AllowNavRewind</KEYWORD3>
		<KEYWORD3>AllowNavFastForward</KEYWORD3>
		<KEYWORD3>SetPosterStyle</KEYWORD3>
		<KEYWORD3>SetAdURL</KEYWORD3>
		<KEYWORD3>SetAdSelectable</KEYWORD3>
		<KEYWORD3>SetAdDisplayMode</KEYWORD3>
		<KEYWORD3>Show</KEYWORD3>
		<KEYWORD3>Close</KEYWORD3>
		<KEYWORD3>SetTitle</KEYWORD3>

		<!-- Interface ifVideoScreen -->
		<KEYWORD3>SetContent</KEYWORD3>
		<KEYWORD3>SetPositionNotificationPeriod</KEYWORD3>
		<KEYWORD3>SetPreviewMode</KEYWORD3>
		<KEYWORD3>SetMacrovisionLevel</KEYWORD3>
		<KEYWORD3>SetCGMS</KEYWORD3>
		<KEYWORD3>Show</KEYWORD3>
		<KEYWORD3>Close</KEYWORD3>
		<KEYWORD3>Pause</KEYWORD3>
		<KEYWORD3>Resume</KEYWORD3>
		<KEYWORD3>Seek</KEYWORD3>
		<KEYWORD3>SetDestinationRect</KEYWORD3>

		<!-- Interface ifSlideShow -->
		<KEYWORD3>SetContentList</KEYWORD3>
		<KEYWORD3>AddContent</KEYWORD3>
		<KEYWORD3>ClearContent</KEYWORD3>
		<KEYWORD3>CountButtons</KEYWORD3>
		<KEYWORD3>SetNext</KEYWORD3>
		<KEYWORD3>SetPeriod</KEYWORD3>
		<KEYWORD3>SetTextOverlayHoldTime</KEYWORD3>
		<KEYWORD3>SetTextOverlayIsVisible</KEYWORD3>
		<KEYWORD3>AddButton</KEYWORD3>
		<KEYWORD3>AddRatingButton</KEYWORD3>
		<KEYWORD3>ClearButtons</KEYWORD3>
		<KEYWORD3>SetUnderscan</KEYWORD3>
		<KEYWORD3>SetDisplayMode</KEYWORD3>
		<KEYWORD3>SetMaxUpscale</KEYWORD3>
		<KEYWORD3>Show</KEYWORD3>
		<KEYWORD3>Close</KEYWORD3>

		<!-- Interface ifSearchScreen -->
		<KEYWORD3>SetSearchTermHeaderText</KEYWORD3>
		<KEYWORD3>SetSearchButtonText</KEYWORD3>
		<KEYWORD3>SetClearButtonText</KEYWORD3>
		<KEYWORD3>AddSearchTerm</KEYWORD3>
		<KEYWORD3>SetSearchTerms</KEYWORD3>
		<KEYWORD3>ClearSearchTerms</KEYWORD3>
		<KEYWORD3>SetSearchButtonText</KEYWORD3>
		<KEYWORD3>SetBreadcrumbText</KEYWORD3>
		<KEYWORD3>SetBreadcrumbEnabled</KEYWORD3>
		<KEYWORD3>Show</KEYWORD3>
		<KEYWORD3>Close</KEYWORD3>
		<KEYWORD3>SetTitle</KEYWORD3>

		<!-- Interface ifSearchHistory -->
		<KEYWORD3>Clear</KEYWORD3>
		<KEYWORD3>Push</KEYWORD3>
		<KEYWORD3>GetAsArray</KEYWORD3>

		<!-- Interface ifParagraphScreen -->
		<KEYWORD3>AddHeaderText</KEYWORD3>
		<KEYWORD3>AddParagraph</KEYWORD3>
		<KEYWORD3>AddButton</KEYWORD3>
		<KEYWORD3>AddGraphic</KEYWORD3>
		<KEYWORD3>Show</KEYWORD3>
		<KEYWORD3>Close</KEYWORD3>
		<KEYWORD3>SetTitle</KEYWORD3>
		<KEYWORD3>AddScaledGraphic</KEYWORD3>
		<KEYWORD3>SetFocusedMenuItem</KEYWORD3>

		<!-- Interface ifMessageDialog -->
		<KEYWORD3>SetText</KEYWORD3>
		<KEYWORD3>AddButton</KEYWORD3>
		<KEYWORD3>ShowBusyAnimation</KEYWORD3>
		<KEYWORD3>Show</KEYWORD3>
		<KEYWORD3>Close</KEYWORD3>
		<KEYWORD3>SetTitle</KEYWORD3>
		<KEYWORD3>EnableOverlay</KEYWORD3>
		<KEYWORD3>SetMenuTopLeft</KEYWORD3>
		<KEYWORD3>SetFocusedMenuItem</KEYWORD3>
		<KEYWORD3>AddRatingButton</KEYWORD3>
		<KEYWORD3>EnableBackButton</KEYWORD3>	

		<!-- Interface ifOneLineDialog -->
		<KEYWORD3>SetTitle</KEYWORD3>
		<KEYWORD3>ShowBusyAnimation</KEYWORD3>	
		<KEYWORD3>Show</KEYWORD3>
		<KEYWORD3>Close</KEYWORD3>		

		<!-- Interface ifCodeRegistrationScreen -->
		<KEYWORD3>AddHeaderText</KEYWORD3>
		<KEYWORD3>AddParagraph</KEYWORD3>	
		<KEYWORD3>AddButton</KEYWORD3>
		<KEYWORD3>AddFocalText</KEYWORD3>
		<KEYWORD3>SetRegistrationCode</KEYWORD3>
		<KEYWORD3>Show</KEYWORD3>
		<KEYWORD3>Close</KEYWORD3>
		<KEYWORD3>SetTitle</KEYWORD3>	

		<!-- Interface ifKeyboardScreen -->		
		<KEYWORD3>SetDisplayText</KEYWORD3>
		<KEYWORD3>SetText</KEYWORD3>	
		<KEYWORD3>GetText</KEYWORD3>
		<KEYWORD3>SetMaxLength</KEYWORD3>	
		<KEYWORD3>AddButton</KEYWORD3>
		<KEYWORD3>setSecureText</KEYWORD3>	
		<KEYWORD3>Show</KEYWORD3>
		<KEYWORD3>Close</KEYWORD3>	
		<KEYWORD3>SetTitle</KEYWORD3>

		<!-- Interface ifPinEntryDialog -->		
		<KEYWORD3>AddButton</KEYWORD3>
		<KEYWORD3>Pin</KEYWORD3>	
		<KEYWORD3>SetNumPinEntryFields</KEYWORD3>
		<KEYWORD3>Show</KEYWORD3>
		<KEYWORD3>Close</KEYWORD3>
		<KEYWORD3>SetTitle</KEYWORD3>

		<!-- Interface ifAudioPlayer -->	
		<KEYWORD3>SetContentList</KEYWORD3>
		<KEYWORD3>AddContent</KEYWORD3>	
		<KEYWORD3>ClearContent</KEYWORD3>
		<KEYWORD3>Play</KEYWORD3>
		<KEYWORD3>Stop</KEYWORD3>
		<KEYWORD3>Pause</KEYWORD3>
		<KEYWORD3>Resume</KEYWORD3>
		<KEYWORD3>SetLoop</KEYWORD3>
		<KEYWORD3>SetNext</KEYWORD3>

		<!-- Interface ifDeviceInfo -->
		<KEYWORD3>GetModel</KEYWORD3>
		<KEYWORD3>GetVersion</KEYWORD3>	
		<KEYWORD3>GetDeviceUniqueId</KEYWORD3>
		<KEYWORD3>GetDisplayType</KEYWORD3>	
		<KEYWORD3>GetDisplayMode</KEYWORD3>
		<KEYWORD3>GetDisplayAspectRatio</KEYWORD3>	
		<KEYWORD3>GetDisplaySize</KEYWORD3>
		<KEYWORD3>GetTimeZone</KEYWORD3>	
		<KEYWORD3>HasFeature</KEYWORD3>

		<!-- Interface ifDateTime -->
		<KEYWORD3>asSeconds</KEYWORD3>
		<KEYWORD3>asDateString</KEYWORD3>	
		<KEYWORD3>asDateStringNoParam</KEYWORD3>
		<KEYWORD3>getWeekday</KEYWORD3>	
		<KEYWORD3>getDayOfMonth</KEYWORD3>
		<KEYWORD3>getLastDayOfMonth</KEYWORD3>	
		<KEYWORD3>getMonth</KEYWORD3>
		<KEYWORD3>getYear</KEYWORD3>	
		<KEYWORD3>mark</KEYWORD3>
		<KEYWORD3>fromSeconds</KEYWORD3>	
		<KEYWORD3>fromISO8601String</KEYWORD3>
		<KEYWORD3>getHours</KEYWORD3>	
		<KEYWORD3>getMinutes</KEYWORD3>
		<KEYWORD3>getSeconds</KEYWORD3>	
		<KEYWORD3>getMilliseconds</KEYWORD3>
		<KEYWORD3>toLocalTime</KEYWORD3>	

		<!-- Interface ifEVPCipher & ifEVPDigest & ifHMAC -->
		<KEYWORD3>Setup</KEYWORD3>
		<KEYWORD3>Reinit</KEYWORD3>
		<KEYWORD3>Process</KEYWORD3>
		<KEYWORD3>Update</KEYWORD3>	
		<KEYWORD3>Final</KEYWORD3>	

		<!-- Interface ifTimespan -->
		<KEYWORD3>Mark</KEYWORD3>
		<KEYWORD3>TotalMilliseconds</KEYWORD3>	
		<KEYWORD3>TotalSeconds</KEYWORD3>
		<KEYWORD3>GetSecondsToISO8601Date</KEYWORD3>

		<!-- Interface ifRegistry -->
		<KEYWORD3>GetSectionList</KEYWORD3>
		<KEYWORD3>Delete</KEYWORD3>	
		<KEYWORD3>Flush</KEYWORD3>

		<!-- Interface ifRegistrySection -->
		<KEYWORD3>Read</KEYWORD3>
		<KEYWORD3>Write</KEYWORD3>	
		<KEYWORD3>Delete</KEYWORD3>
		<KEYWORD3>Exists</KEYWORD3>
		<KEYWORD3>Flush</KEYWORD3>
		<KEYWORD3>GetKeyList</KEYWORD3>

		<!-- Interface ifURLTransfer -->
		<KEYWORD3>GetIdentity</KEYWORD3>
		<KEYWORD3>SetUrl</KEYWORD3>	
		<KEYWORD3>SetPort</KEYWORD3>
		<KEYWORD3>AddHeader</KEYWORD3>
		<KEYWORD3>SetHeaders</KEYWORD3>
		<KEYWORD3>GetToString</KEYWORD3>
		<KEYWORD3>GetToFile</KEYWORD3>
		<KEYWORD3>AsyncGetToString</KEYWORD3>
		<KEYWORD3>AsyncGetToFile</KEYWORD3>
		<KEYWORD3>Head</KEYWORD3>
		<KEYWORD3>AsyncHead</KEYWORD3>
		<KEYWORD3>PostFromString</KEYWORD3>
		<KEYWORD3>PostFromFile</KEYWORD3>
		<KEYWORD3>AsyncPostFromString</KEYWORD3>
		<KEYWORD3>AsyncPostFromFile</KEYWORD3>
		<KEYWORD3>SetUserAndPassword</KEYWORD3>
		<KEYWORD3>SetMinimumTransferRate</KEYWORD3>
		<KEYWORD3>GetFailureReason</KEYWORD3>
		<KEYWORD3>SetCertificatesFile</KEYWORD3>
		<KEYWORD3>InitClientCertificates</KEYWORD3>
		<KEYWORD3>EnableEncodings</KEYWORD3>
		<KEYWORD3>Escape</KEYWORD3>
		<KEYWORD3>Unescape</KEYWORD3>
		<KEYWORD3>UrlEncode</KEYWORD3>
		<KEYWORD3>GetUrl</KEYWORD3>
		<KEYWORD3>EnableResume</KEYWORD3>
		<KEYWORD3>EnablePeerVerification</KEYWORD3>
		<KEYWORD3>EnableHostVerification</KEYWORD3>
		<KEYWORD3>EnableFreshConnection</KEYWORD3>

		<!-- Interface ifURLEvent -->
		<KEYWORD3>GetInt</KEYWORD3>
		<KEYWORD3>GetResponseCode</KEYWORD3>	
		<KEYWORD3>GetFailureReason</KEYWORD3>
		<KEYWORD3>GetString</KEYWORD3>	
		<KEYWORD3>GetSourceIdentity</KEYWORD3>
		<KEYWORD3>GetResponseHeaders</KEYWORD3>	
		<KEYWORD3>GetTargetIpAddress</KEYWORD3>
		<KEYWORD3>GetResponseHeadersArray</KEYWORD3>	

		<!-- Interface ifImageCanvas -->
		<KEYWORD3>AllowUpdates</KEYWORD3>
		<KEYWORD3>SetLayer</KEYWORD3>	
		<KEYWORD3>SetLayer</KEYWORD3>
		<KEYWORD3>SwapLayers</KEYWORD3>
		<KEYWORD3>SetRequireAllImagesToDraw </KEYWORD3>
		<KEYWORD3>PurgeCachedImages</KEYWORD3>
		<KEYWORD3>GetCanvasRect</KEYWORD3>
		<KEYWORD3>ClearLayer</KEYWORD3>
		<KEYWORD3>Clear</KEYWORD3>
		<KEYWORD3>Show</KEYWORD3>
		<KEYWORD3>Close</KEYWORD3>
		<KEYWORD3>AddButton</KEYWORD3>
		<KEYWORD3>ClearButtons</KEYWORD3>		

		<!-- Interface ifFontRegistry -->
		<KEYWORD3>Register</KEYWORD3>
		<KEYWORD3>GetFamilies</KEYWORD3>	
		<KEYWORD3>Get</KEYWORD3>

		<!-- Interface ifFontMetrics -->
		<KEYWORD3>Size</KEYWORD3>

		<!-- Interface ifSystemLog -->
		<KEYWORD3>EnableType</KEYWORD3>

		<!-- Interface ifRegex -->
		<KEYWORD3>IsMatch</KEYWORD3>
		<KEYWORD3>Match</KEYWORD3>	
		<KEYWORD3>Replace</KEYWORD3>
		<KEYWORD3>ReplaceAll</KEYWORD3>
		<KEYWORD3>Split</KEYWORD3>

		<!-- Interface ifPath -->
		<KEYWORD3>Change</KEYWORD3>
		<KEYWORD3>IsValid</KEYWORD3>	
		<KEYWORD3>Split</KEYWORD3>

		<!-- Interface ifFileSystem -->
		<KEYWORD3>GetVolumeList</KEYWORD3>
		<KEYWORD3>Find</KEYWORD3>	
		<KEYWORD3>FindRecurse</KEYWORD3>
		<KEYWORD3>Match</KEYWORD3>
		<KEYWORD3>Exists</KEYWORD3>
		<KEYWORD3>Stat</KEYWORD3>
		<KEYWORD3>GetDirectoryListing</KEYWORD3>
		<KEYWORD3>GetVolumeInfo</KEYWORD3>
		<KEYWORD3>CreateDirectory</KEYWORD3>
		<KEYWORD3>Delete</KEYWORD3>
		<KEYWORD3>CopyFile</KEYWORD3>
		<KEYWORD3>Rename</KEYWORD3>

		<!-- Interface ifVideoPlayer -->
		<KEYWORD3>SetContentList</KEYWORD3>
		<KEYWORD3>AddContent</KEYWORD3>	
		<KEYWORD3>ClearContent</KEYWORD3>
		<KEYWORD3>Play</KEYWORD3>	
		<KEYWORD3>Stop</KEYWORD3>
		<KEYWORD3>Pause</KEYWORD3>	
		<KEYWORD3>Resume</KEYWORD3>
		<KEYWORD3>SetLoop</KEYWORD3>	
		<KEYWORD3>SetNext</KEYWORD3>
		<KEYWORD3>Seek</KEYWORD3>	
		<KEYWORD3>SetPositionNotificationPeriod</KEYWORD3>
		<KEYWORD3>SetMacrovisionLevel</KEYWORD3>	
		<KEYWORD3>SetCGMS</KEYWORD3>
		<KEYWORD3>SetDestinationRect</KEYWORD3>	

		<!-- Interface ifGridScreen -->
		<KEYWORD3>SetupLists</KEYWORD3>
		<KEYWORD3>SetListNames</KEYWORD3>	
		<KEYWORD3>SetListName</KEYWORD3>
		<KEYWORD3>SetContentList</KEYWORD3>	
		<KEYWORD3>SetContentListSubset</KEYWORD3>
		<KEYWORD3>SetListOffset</KEYWORD3>	
		<KEYWORD3>SetListName</KEYWORD3>
		<KEYWORD3>SetListVisible</KEYWORD3>	
		<KEYWORD3>SetFocusedListItem</KEYWORD3>
		<KEYWORD3>SetListDisplayMode</KEYWORD3>	
		<KEYWORD3>SetDescriptionVisible</KEYWORD3>
		<KEYWORD3>ShowMessage</KEYWORD3>	
		<KEYWORD3>ClearMessage</KEYWORD3>
		<KEYWORD3>Show</KEYWORD3>	
		<KEYWORD3>Close</KEYWORD3>	
						
		<!-- Future Reserved Words -->
		<KEYWORD4>invalid</KEYWORD4>
		<KEYWORD4>endwhile</KEYWORD4>
		<KEYWORD4>endfor</KEYWORD4>
		<KEYWORD4>tab</KEYWORD4>
		<KEYWORD4>exitwhile</KEYWORD4>		
		<KEYWORD4>endfunction</KEYWORD4>
		<KEYWORD4>endsub</KEYWORD4>
		<KEYWORD4>pos</KEYWORD4>		
		<KEYWORD4>line_num</KEYWORD4>
		<KEYWORD4>objfun</KEYWORD4>

	</KEYWORDS>

	</RULES>
</MODE>

Then edit the “Catalog” file in Modes subdirectory and add the following to the file:

This should get you some very simple syntax coloring for BrightScript in jEdit.

There are, of course, some additional oddities in the current implementation.
Feel free to note bugs/issues on this thread.

Enjoy!

You Rule!!!