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:
<MODE NAME="brightscript" FILE="brightscript.xml" FILE_NAME_GLOB="*.brs" />
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!