Roku Developer Program

Join our online forum to talk to Roku developers and fellow channel creators. Ask questions, share tips with the community, and find helpful resources.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
malloys
Visitor

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">&lt;</SEQ>
<SEQ TYPE="OPERATOR">&lt;=</SEQ>
<SEQ TYPE="OPERATOR">&gt;=</SEQ>
<SEQ TYPE="OPERATOR">&gt;</SEQ>
<SEQ TYPE="OPERATOR">=</SEQ>
<SEQ TYPE="OPERATOR">&lt;&gt;</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!
0 Kudos
1 REPLY 1
jbrave
Channel Surfer

Re: jEdit BrightScript mode support (Syntax Coloring)

You Rule!!!
Screenshades: The first Screensaver for Roku2!
Musiclouds: The best free internet music, on your Roku!
Ouroborialis: Psychedelic Screensaver for Roku!
0 Kudos
Need Assistance?
Welcome to the Roku Community! Feel free to search our Community for answers or post your question to get help.

Become a Roku Streaming Expert!

Share your expertise, help fellow streamers, and unlock exclusive rewards as part of the Roku Community. Learn more.