Forum Discussion
manoflinux
15 years agoVisitor
good news everyone I was able to with some editing grab a brightscript syntax highlighting xml file from that previous link. I will make an entire howto when I get kate scripts done.
But for now here is how to install the syntax highlighting.
I am on a debian system so I did a file search for bash.xml and copied brightscript.xml to those directories and restarted kate. And boom, I now get syntax highlighting of brightscript in kate! well over half of the battle is done.
This is what I did on my system, if you run a debian based system it might work.
Here is the actual file. Just cut and paste it into an editor and save it as brightscript.xml
But for now here is how to install the syntax highlighting.
I am on a debian system so I did a file search for bash.xml and copied brightscript.xml to those directories and restarted kate. And boom, I now get syntax highlighting of brightscript in kate! well over half of the battle is done.
This is what I did on my system, if you run a debian based system it might work.
sudo cp brightscript.xml /usr/share/apps/katepart/syntax
sudo cp brightscript.xml /usr/share/kde4/apps/katepart/syntax/
Here is the actual file. Just cut and paste it into an editor and save it as brightscript.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
<language name="BrightScript" version="0.1" kateversion="3.5" section="Sources" extensions="*.brs;" author="Jakub Stachowski (qbast@go2.pl)" license="GPL">
<highlighting>
<list name="Keywords">
<item>Dim</item>
<item>End</item>
<item>Stop</item>
<item>Goto</item>
<item>Return</item>
<item>For</item>
<item>To</item>
<item>Step</item>
<item>For Each</item>
<item>In</item>
<item>While</item>
<item>Exit while</item>
<item>If</item>
<item>Then</item>
<item>Else</item>
<item>Elseif</item>
<item>Step</item>
<item>Print</item>
<item>As</item>
<item>Function</item>
<item>LINE_NUM</item>
</list>
<list name="Data Types">
<item> Integer </item>
<item> Boolean </item>
<item> Float </item>
<item> Double </item>
<item> String </item>
<item> Dynamic </item>
<item> Object </item>
<item> Interface </item>
<item> Void </item>
</list>
<list name="functions">
<item>Type</item>
<item>Rnd</item>
<item>Box</item>
<item>Run</item>
<item>Eval</item>
<item>GetLastRunCompileError</item>
<item>GetLastRunRuntimeError</item>
<item>Sleep</item>
<item>Wait</item>
<item>CreateObject</item>
<item>GetInterface</item>
<item>UpTime</item>
<item>RebootSystem</item>
<item>ListDir</item>
<item>ReadAsciiFile</item>
<item>WriteAsciiFile</item>
<item>CopyFile</item>
<item>MatchFiles</item>
<item>DeleteFile</item>
<item>DeleteDirectory</item>
<item>CreateDirectory</item>
<item>FormatDrive</item>
<item>UCase</item>
<item>LCase</item>
<item>Asc</item>
<item>Chr</item>
<item>Instr</item>
<item>Left</item>
<item>Len</item>
<item>Mid</item>
<item>Right</item>
<item>Str</item>
<item>Stri</item>
<item>Val</item>
<item>Abs</item>
<item>Atn</item>
<item>Cos</item>
<item>Csng</item>
<item>Cdbl</item>
<item>Exp</item>
<item>Fix</item>
<item>Log</item>
<item>Sgn</item>
<item>Sin</item>
<item>Sqr</item>
<item>Tan</item>
</list>
<contexts>
<context attribute="Normal Text" lineEndContext="#stay" name="Normal">
<RegExpr attribute="Keywords" context="#stay" String="\b(exit (for|while))([\s]|$)" insensitive="true" />
<RegExpr attribute="Keywords" context="#stay" String="\b(m\.)" insensitive="true" />
<RegExpr attribute="Keywords" context="#stay" String="\b(while)([\s\(]|$)" insensitive="true" beginRegion="WhileRegion"/>
<RegExpr attribute="Keywords" context="#stay" String="\b(end ?while)([\s]|$)" insensitive="true" endRegion="WhileRegion"/>
<RegExpr attribute="Keywords" context="#stay" String="\b(for)([\s]|$)" insensitive="true" beginRegion="ForRegion"/>
<RegExpr attribute="Keywords" context="#stay" String="\b((end ?for)|next)([\s]|$)" insensitive="true" endRegion="ForRegion"/>
<RegExpr attribute="Keywords" context="#stay" String="\b(function)([.\s]|$)" insensitive="true" beginRegion="fProcedureRegion"/>
<RegExpr attribute="Keywords" context="#stay" String="\b(end ?function)([\s]|$)" insensitive="true" endRegion="fProcedureRegion"/>
<RegExpr attribute="Keywords" context="#stay" String="\b(sub)([.\s]|$)" insensitive="true" beginRegion="sProcedureRegion"/>
<RegExpr attribute="Keywords" context="#stay" String="\b(end ?sub)([\s]|$)" insensitive="true" endRegion="sProcedureRegion"/>
<RegExpr attribute="Keywords" context="#stay" String="\b(if)([\s]|$)" insensitive="true" beginRegion="IfRegion"/>
<RegExpr attribute="Keywords" context="AfterThen" String="\b(then)" insensitive="true" />
<RegExpr attribute="Keywords" context="#stay" String="\b(else( ?if)?)([\s]|$)" insensitive="true" beginRegion="IfRegion" endRegion="IfRegion"/>
<RegExpr attribute="Keywords" context="#stay" String="\b(end ?if)([\s]|$)" insensitive="true" endRegion="IfRegion"/>
<keyword attribute="Keywords" context="#stay" String="Keywords"/>
<keyword attribute="Data Types" context="#stay" String="Data Types"/>
<keyword attribute="Functions" context="#stay" String="functions"/>
<Float attribute="Number" context="#stay"/>
<Int attribute="Number" context="#stay"/>
<DetectChar attribute="String" context="String" char=""" />
<DetectChar attribute="Comment" context="Comment1" char="'"/>
<RegExpr attribute="Comment" context="Comment1" String="^[\s]*REM[\s]*" />
</context>
<context attribute="Normal Text" lineEndContext="#pop" name="AfterThen">
<RegExpr attribute="Keywords" context="#pop" String="([\s]+[a-zA-Z_]+)" lookAhead="true" endRegion="IfRegion"/>
</context>
<context attribute="String" lineEndContext="#pop" name="String">
<DetectChar attribute="String" context="#pop" char="""/>
</context>
<context attribute="Comment" lineEndContext="#pop" name="Comment1">
<keyword attribute="Number" context="#stay" String="attention" />
</context>
</contexts>
<itemDatas>
<itemData name="Normal Text" defStyleNum="dsNormal"/>
<itemData name="Keywords" defStyleNum="dsKeyword"/>
<itemData name="Functions" defStyleNum="dsFunction"/>
<itemData name="Data Types" defStyleNum="dsDataType"/>
<itemData name="Number" defStyleNum="dsDecVal"/>
<itemData name="String" defStyleNum="dsString"/>
<itemData name="Comment" defStyleNum="dsComment"/>
<itemData name="Region Marker " defStyleNum="dsRegionMarker"/>
</itemDatas>
</highlighting>
<general>
<keywords casesensitive="0" />
<comments>
<comment name="singleLine" start="'" />
<comment name="remark" start="REM " />
</comments>
</general>
</language>
<!-- // kate: space-indent on; indent-width 2; replace-tabs on; -->