Created
October 1, 2013 12:48
-
-
Save fbcoder/6777920 to your computer and use it in GitHub Desktop.
Small adjustment in the KATE syntax highlighting file for FreeBASIC. Added a context for multiline comment blocks.
To override the default syntax file from /usr/share/... put this (freebasic.xml) in ~/.kde/share/apps/katepart/syntax (only applies to that user)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<!DOCTYPE language SYSTEM "language.dtd"> | |
<language name="FreeBASIC" version="0.14" kateversion="2.3" section="Sources" extensions="*.bas;*.bi;*.BAS;*.BI" mimetype="text/x-freebasic" author="Chris Neugebauer (chrisjrn@gmail.com)" license="GPL"> | |
<highlighting> | |
<list name="preproc"> | |
<item> #DEFINE </item> | |
<item> #ELSE </item> | |
<item> #ELSEIF </item> | |
<item> #ENDIF </item> | |
<item> #IF </item> | |
<item> #IFDEF </item> | |
<item> #IFNDEF </item> | |
<item> #UNDEF </item> | |
<item> $DYNAMIC </item> | |
<item> $INCLIB </item> | |
<item> $INCLUDE </item> | |
<item> $STATIC </item> | |
</list> | |
<list name="keywords"> | |
<item> Declare </item> | |
<item> Open </item> | |
<item> For </item> | |
<item> For Input </item> | |
<item> For Output </item> | |
<item> For Binary </item> | |
<item> For Random </item> | |
<item> Close </item> | |
<item> To </item> | |
<item> Step </item> | |
<item> Next </item> | |
<item> As </item> | |
<item> Break </item> | |
<item> Exit </item> | |
<item> If </item> | |
<item> Then </item> | |
<item> Else </item> | |
<item> Until </item> | |
<item> Select </item> | |
<item> System </item> | |
<item> Case </item> | |
<item> Default </item> | |
<item> EndSelect </item> | |
<item> Do </item> | |
<item> Loop </item> | |
<item> While </item> | |
<item> Wend </item> | |
<item> End </item> | |
<item> Type </item> | |
<item> DefType </item> | |
<item> Dim </item> | |
<item> Global </item> | |
<item> Function </item> | |
<item> Sub </item> | |
<item> Shared </item> | |
<item> Protected </item> | |
<item> Static </item> | |
<item> Declare </item> | |
<item> Unsigned </item> | |
<item> Data </item> | |
<item> Restore </item> | |
<item> Read </item> | |
<item> Goto </item> | |
<item> Gosub </item> | |
<item> Return </item> | |
<item> DEFBYTE </item> | |
<item> DEFDBL </item> | |
<item> DEFINT </item> | |
<item> DEFLNG </item> | |
<item> DEFSHORT </item> | |
<item> DEFSNG </item> | |
<item> DEFSTR </item> | |
<item> DEFUBYTE </item> | |
<item> DEFUINT </item> | |
<item> DEFUSHORT </item> | |
</list> | |
<list name="Assembly Operators"> | |
<item> AH </item> | |
<item> AL </item> | |
<item> AX </item> | |
<item> BH </item> | |
<item> BL </item> | |
<item> BP </item> | |
<item> BX </item> | |
<item> CH </item> | |
<item> CL </item> | |
<item> CS </item> | |
<item> CX </item> | |
<item> DH </item> | |
<item> DI </item> | |
<item> DL </item> | |
<item> DS </item> | |
<item> DX </item> | |
<item> EAX </item> | |
<item> EBP </item> | |
<item> EBX </item> | |
<item> ECX </item> | |
<item> EDI </item> | |
<item> EDX </item> | |
<item> ES </item> | |
<item> ESI </item> | |
<item> ESP </item> | |
<item> FS </item> | |
<item> GS </item> | |
<item> SI </item> | |
<item> SP </item> | |
<item> SS </item> | |
</list> | |
<list name="Data Types"> | |
<item> Integer </item> | |
<item> Long </item> | |
<item> Single </item> | |
<item> Double </item> | |
<item> String </item> | |
<item> Byte PTR </item> | |
<item> Dword PTR </item> | |
<item> Qword PTR </item> | |
<item> Word PTR </item> | |
</list> | |
<list name="functions"> | |
<item> AAA </item> | |
<item> AAD </item> | |
<item> AAM </item> | |
<item> AAS </item> | |
<item> ABS </item> | |
<item> ACOS </item> | |
<item> ADC </item> | |
<item> ADD </item> | |
<item> ALLOCATE </item> | |
<item> AND </item> | |
<item> AND </item> | |
<item> ARPL </item> | |
<item> ASC </item> | |
<item> ASIN </item> | |
<item> ASM </item> | |
<item> ATAN2 </item> | |
<item> ATN </item> | |
<item> BEEP </item> | |
<item> BIN$ </item> | |
<item> BLOAD </item> | |
<item> BOUND </item> | |
<item> BREAK </item> | |
<item> BSAVE </item> | |
<item> BSF </item> | |
<item> BSR </item> | |
<item> BSWAP </item> | |
<item> BT </item> | |
<item> BTC </item> | |
<item> BTR </item> | |
<item> BTS </item> | |
<item> BYREF </item> | |
<item> CALL </item> | |
<item> CALLOCATE </item> | |
<item> CALLS </item> | |
<item> CBW </item> | |
<item> CBYTE </item> | |
<item> CDBL </item> | |
<item> CDQ </item> | |
<item> CHAIN </item> | |
<item> CHDIR </item> | |
<item> CHR$ </item> | |
<item> CINT </item> | |
<item> CIRCLE </item> | |
<item> CLC </item> | |
<item> CLD </item> | |
<item> CLEAR </item> | |
<item> CLI </item> | |
<item> CLNG </item> | |
<item> CLOSE </item> | |
<item> CLTS </item> | |
<item> CMC </item> | |
<item> CMP </item> | |
<item> CMPS </item> | |
<item> CMPSB </item> | |
<item> CMPSD </item> | |
<item> CMPSW </item> | |
<item> CMPXCHG </item> | |
<item> COLOR </item> | |
<item> COMMAND$ </item> | |
<item> COMMON </item> | |
<item> CONST </item> | |
<item> CONTINUE </item> | |
<item> COS </item> | |
<item> CSHORT </item> | |
<item> CSIGN </item> | |
<item> CSNG </item> | |
<item> CUNSG </item> | |
<item> CURDIR$ </item> | |
<item> CVD </item> | |
<item> CVI </item> | |
<item> CVL </item> | |
<item> CVS </item> | |
<item> CWD </item> | |
<item> CWDE </item> | |
<item> DAA </item> | |
<item> DAS </item> | |
<item> DATA </item> | |
<item> DATE$ </item> | |
<item> DEALLOCATE </item> | |
<item> DEC </item> | |
<item> DIM </item> | |
<item> DIR$ </item> | |
<item> DIV </item> | |
<item> DRAW </item> | |
<item> END </item> | |
<item> ENTER </item> | |
<item> ENUM </item> | |
<item> ENVIRON </item> | |
<item> ENVIRON$ </item> | |
<item> EOF </item> | |
<item> EQV </item> | |
<item> ERASE </item> | |
<item> EXEC </item> | |
<item> EXEPATH </item> | |
<item> EXP </item> | |
<item> FIX </item> | |
<item> FLIP </item> | |
<item> FRE </item> | |
<item> FREEFILE </item> | |
<item> GET </item> | |
<item> GETKEY </item> | |
<item> GETMOUSE </item> | |
<item> HEX$ </item> | |
<item> HLT </item> | |
<item> IDIV </item> | |
<item> IMP </item> | |
<item> IMUL </item> | |
<item> IN </item> | |
<item> INC </item> | |
<item> INKEY$ </item> | |
<item> INP </item> | |
<item> INPUT </item> | |
<item> INPUT$ </item> | |
<item> INS </item> | |
<item> INSB </item> | |
<item> INSD </item> | |
<item> INSTR </item> | |
<item> INT </item> | |
<item> INT </item> | |
<item> INTO </item> | |
<item> INVD </item> | |
<item> INVLPG </item> | |
<item> IRET </item> | |
<item> IRETD </item> | |
<item> JA </item> | |
<item> JAE </item> | |
<item> JB </item> | |
<item> JBE </item> | |
<item> JC </item> | |
<item> JCXZ </item> | |
<item> JE </item> | |
<item> JECXZ </item> | |
<item> JG </item> | |
<item> JGE </item> | |
<item> JL </item> | |
<item> JLE </item> | |
<item> JMP </item> | |
<item> JNA </item> | |
<item> JNAE </item> | |
<item> JNB </item> | |
<item> JNBE </item> | |
<item> JNC </item> | |
<item> JNE </item> | |
<item> JNG </item> | |
<item> JNGE </item> | |
<item> JNL </item> | |
<item> JNLE </item> | |
<item> JNO </item> | |
<item> JNP </item> | |
<item> JNS </item> | |
<item> JNZ </item> | |
<item> JO </item> | |
<item> JP </item> | |
<item> JPE </item> | |
<item> JPO </item> | |
<item> JS </item> | |
<item> JUMP </item> | |
<item> JZ </item> | |
<item> KILL </item> | |
<item> LAHF </item> | |
<item> LAR </item> | |
<item> LBOUND </item> | |
<item> LCASE$ </item> | |
<item> LDS </item> | |
<item> LEA </item> | |
<item> LEAVE </item> | |
<item> LEAVED </item> | |
<item> LEAVEW </item> | |
<item> LEFT$ </item> | |
<item> LEN </item> | |
<item> LES </item> | |
<item> LET </item> | |
<item> LFS </item> | |
<item> LGDT </item> | |
<item> LGS </item> | |
<item> LIB </item> | |
<item> LIDT </item> | |
<item> LINE </item> | |
<item> LLDT </item> | |
<item> LMSW </item> | |
<item> LOC </item> | |
<item> LOCK </item> | |
<item> LOCK </item> | |
<item> LODS </item> | |
<item> LODSB </item> | |
<item> LODSD </item> | |
<item> LODSW </item> | |
<item> LOF </item> | |
<item> LOG </item> | |
<item> LOOPD </item> | |
<item> LOOPDE </item> | |
<item> LOOPDNE </item> | |
<item> LOOPDNZ </item> | |
<item> LOOPDZ </item> | |
<item> LOOPE </item> | |
<item> LOOPNE </item> | |
<item> LOOPNZ </item> | |
<item> LOOPW </item> | |
<item> LOOPWE </item> | |
<item> LOOPWNE </item> | |
<item> LOOPWNZ </item> | |
<item> LOOPWZ </item> | |
<item> LOOPZ </item> | |
<item> LSET </item> | |
<item> LSL </item> | |
<item> LSS </item> | |
<item> LTR </item> | |
<item> LTRIM$ </item> | |
<item> MID$ </item> | |
<item> MKD$ </item> | |
<item> MKDIR </item> | |
<item> MKI$ </item> | |
<item> MKL$ </item> | |
<item> MKS$ </item> | |
<item> MOD </item> | |
<item> MOV </item> | |
<item> MOVS </item> | |
<item> MOVSB </item> | |
<item> MOVSD </item> | |
<item> MOVSW </item> | |
<item> MOVSX </item> | |
<item> MOVZX </item> | |
<item> MUL </item> | |
<item> MULTIKEY </item> | |
<item> NAME </item> | |
<item> NEG </item> | |
<item> NOP </item> | |
<item> NOT </item> | |
<item> NOTHING </item> | |
<item> OCT$ </item> | |
<item> OPTION BASE </item> | |
<item> OPTION PRIVATE </item> | |
<item> OR </item> | |
<item> OUT </item> | |
<item> OUTS </item> | |
<item> OUTSB </item> | |
<item> OUTSD </item> | |
<item> OUTSW </item> | |
<item> PAINT </item> | |
<item> PALETTE </item> | |
<item> PCOPY </item> | |
<item> PEEK </item> | |
<item> PEEKI </item> | |
<item> PEEKS </item> | |
<item> PMAP </item> | |
<item> POINT </item> | |
<item> POKE </item> | |
<item> POKEI </item> | |
<item> POKES </item> | |
<item> POP </item> | |
<item> POPA </item> | |
<item> POPAD </item> | |
<item> POPF </item> | |
<item> POPFD </item> | |
<item> POS </item> | |
<item> PRESERVE </item> | |
<item> PRESET </item> | |
<item> PRINT </item> | |
<item> PRIVATE </item> | |
<item> PROCPTR </item> | |
<item> PSET </item> | |
<item> PTR </item> | |
<item> PUBLIC </item> | |
<item> PUSH </item> | |
<item> PUSHA </item> | |
<item> PUSHAD </item> | |
<item> PUSHF </item> | |
<item> PUSHFD </item> | |
<item> PUT </item> | |
<item> RANDOMIZE </item> | |
<item> RCL </item> | |
<item> RCR </item> | |
<item> REALLOCATE </item> | |
<item> REDIM </item> | |
<item> REM </item> | |
<item> REP </item> | |
<item> REPE </item> | |
<item> REPNE </item> | |
<item> REPNZ </item> | |
<item> REPZ </item> | |
<item> RESET </item> | |
<item> RET </item> | |
<item> RETURN </item> | |
<item> RGB </item> | |
<item> RIGHT$ </item> | |
<item> RMDIR </item> | |
<item> RND </item> | |
<item> ROL </item> | |
<item> ROR </item> | |
<item> RSET </item> | |
<item> RTRIM$ </item> | |
<item> RUN </item> | |
<item> SADD </item> | |
<item> SAHF </item> | |
<item> SAL </item> | |
<item> SAR </item> | |
<item> SBB </item> | |
<item> SCAS </item> | |
<item> SCASB </item> | |
<item> SCASD </item> | |
<item> SCASW </item> | |
<item> SCREEN </item> | |
<item> SCREENCOPY </item> | |
<item> SCREENINFO </item> | |
<item> SCREENLOCK </item> | |
<item> SCREENPTR </item> | |
<item> SCREENSET </item> | |
<item> SCREENUNLOCK </item> | |
<item> SEEK </item> | |
<item> SETA </item> | |
<item> SETAE </item> | |
<item> SETB </item> | |
<item> SETBE </item> | |
<item> SETC </item> | |
<item> SETDATE </item> | |
<item> SETE </item> | |
<item> SETENVIRON </item> | |
<item> SETG </item> | |
<item> SETGE </item> | |
<item> SETL </item> | |
<item> SETLE </item> | |
<item> SETNA </item> | |
<item> SETNAE </item> | |
<item> SETNB </item> | |
<item> SETNBE </item> | |
<item> SETNC </item> | |
<item> SETNE </item> | |
<item> SETNG </item> | |
<item> SETNGE </item> | |
<item> SETNL </item> | |
<item> SETNLE </item> | |
<item> SETNO </item> | |
<item> SETNP </item> | |
<item> SETNS </item> | |
<item> SETNZ </item> | |
<item> SETO </item> | |
<item> SETP </item> | |
<item> SETPE </item> | |
<item> SETPO </item> | |
<item> SETS </item> | |
<item> SETZ </item> | |
<item> SGDT </item> | |
<item> SGN </item> | |
<item> SHARED </item> | |
<item> SHELL </item> | |
<item> SHL </item> | |
<item> SHLD </item> | |
<item> SHR </item> | |
<item> SHRD </item> | |
<item> SIDT </item> | |
<item> SIN </item> | |
<item> SLDT </item> | |
<item> SLEEP </item> | |
<item> SMSW </item> | |
<item> SPACE$ </item> | |
<item> SQR </item> | |
<item> STATIC </item> | |
<item> STC </item> | |
<item> STD </item> | |
<item> STI </item> | |
<item> STOP </item> | |
<item> STOS </item> | |
<item> STOSB </item> | |
<item> STOSD </item> | |
<item> STOSW </item> | |
<item> STR </item> | |
<item> STR$ </item> | |
<item> STRING$ </item> | |
<item> SWAP </item> | |
<item> TAN </item> | |
<item> TEST </item> | |
<item> TIME$ </item> | |
<item> TIMER </item> | |
<item> TRIM$ </item> | |
<item> TYPE </item> | |
<item> UBOUND </item> | |
<item> UCASE$ </item> | |
<item> UNION </item> | |
<item> UNLOCK </item> | |
<item> VAL </item> | |
<item> VARPTR </item> | |
<item> VERR </item> | |
<item> VERW </item> | |
<item> VIEW </item> | |
<item> WAIT </item> | |
<item> WINDOWTITLE </item> | |
<item> WRITE </item> | |
<item> XADD </item> | |
<item> XCHG </item> | |
<item> XLAT </item> | |
<item> XLATB </item> | |
<item> XOR </item> | |
</list> | |
<contexts> | |
<context attribute="Normal Text" lineEndContext="#stay" name="Normal"> | |
<RegExpr attribute="Keyword" context="#stay" String="\b(exit (function|sub|for|do|while|type|select))([\s]|$)" insensitive="true" /> | |
<RegExpr attribute="Keyword" context="#stay" String="\b(declare (function|sub))([\s]|$)" insensitive="true" /> | |
<RegExpr attribute="Keyword" context="#stay" String="\b(while)([\s]|$)" insensitive="true" beginRegion="WhileRegion"/> | |
<RegExpr attribute="Keyword" context="#stay" String="\b(wend)([\s]|$)" insensitive="true" endRegion="WhileRegion"/> | |
<RegExpr attribute="Keyword" context="#stay" String="\b(do)([\s]|$)" insensitive="true" beginRegion="DoRegion"/> | |
<RegExpr attribute="Keyword" context="#stay" String="\b(loop)([\s]|$)" insensitive="true" endRegion="DoRegion"/> | |
<RegExpr attribute="Keyword" context="#stay" String="\b(select)([\s]|$)" insensitive="true" beginRegion="SelectRegion"/> | |
<RegExpr attribute="Keyword" context="#stay" String="\b(end select)([\s]|$)" insensitive="true" endRegion="SelectRegion"/> | |
<RegExpr attribute="Keyword" context="#stay" String="\b(for (input|output|binary|random))([\s]|$)" insensitive="true" /> | |
<RegExpr attribute="Keyword" context="#stay" String="\b(for)([\s]|$)" insensitive="true" beginRegion="ForRegion"/> | |
<RegExpr attribute="Keyword" context="#stay" String="\b(next)([\s]|$)" insensitive="true" endRegion="ForRegion"/> | |
<RegExpr attribute="Keyword" context="#stay" String="\b(function)([.\s]|$)" insensitive="true" beginRegion="fProcedureRegion"/> | |
<RegExpr attribute="Keyword" context="#stay" String="\b(end function)([\s]|$)" insensitive="true" endRegion="fProcedureRegion"/> | |
<RegExpr attribute="Keyword" context="#stay" String="\b(sub)([.\s]|$)" insensitive="true" beginRegion="sProcedureRegion"/> | |
<RegExpr attribute="Keyword" context="#stay" String="\b(end sub)([\s]|$)" insensitive="true" endRegion="sProcedureRegion"/> | |
<RegExpr attribute="Keyword" context="#stay" String="\b(type)([\s]|$)" insensitive="true" beginRegion="StructureRegion"/> | |
<RegExpr attribute="Keyword" context="#stay" String="\b(end type)([\s]|$)" insensitive="true" endRegion="StructureRegion"/> | |
<RegExpr attribute="Keyword" context="#stay" String="\b(if)([\s]|$)" insensitive="true" beginRegion="IfRegion"/> | |
<RegExpr attribute="Keyword" context="#stay" String="\b(then )[a-zA-Z_\x7f-\xff]." insensitive="true" endRegion="IfRegion"/> | |
<RegExpr attribute="Keyword" context="#stay" String="\b(end if)([\s]|$)" insensitive="true" endRegion="IfRegion"/> | |
<keyword attribute="Keyword" context="#stay" String="keywords"/> | |
<keyword attribute="Data Types" context="#stay" String="Data Types"/> | |
<keyword attribute="preproc" context="#stay" lineEndContext="#pop" String="Preprocessor"/> | |
<keyword attribute="Functions" context="#stay" String="functions"/> | |
<RegExpr attribute="Constant" context="#stay" String="\#+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*"/> | |
<Float attribute="Number" context="#stay"/> | |
<Int attribute="Number" context="#stay"/> | |
<DetectChar attribute="String" context="String" char=""" /> | |
<RegExpr attribute="Region Marker" context="#stay" String="^\s*;+\s*BEGIN.*$" beginRegion="marker"/> | |
<RegExpr attribute="Region Marker" context="#stay" String="^\s*;+\s*END.*$" endRegion="marker"/> | |
<DetectChar attribute="Comment" context="Comment1" char="'"/> | |
<Detect2Chars attribute="Comment" context="Comment2" char="/" char1="'" beginRegion="Comment"/> | |
</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> | |
<context attribute="Comment" lineEndContext="#stay" name="Comment2"> | |
<Detect2Chars attribute="Comment" context="#pop" char="'" char1="/" endRegion="Comment"/> | |
</context> | |
</contexts> | |
<itemDatas> | |
<itemData name="Normal Text" defStyleNum="dsNormal"/> | |
<itemData name="Keyword" defStyleNum="dsKeyword"/> | |
<itemData name="Functions" defStyleNum="dsFunction"/> | |
<itemData name="Data Types" defStyleNum="dsDataType"/> | |
<itemData name="Constant" defStyleNum="dsConstant"/> | |
<itemData name="Number" defStyleNum="dsDecVal"/> | |
<itemData name="String" defStyleNum="dsString"/> | |
<itemData name="Comment" defStyleNum="dsComment"/> | |
<itemData name="Region Marker " defStyleNum="dsRegionMarker"/> | |
<itemData name="Preprocessor" defStyleNum="dsPreProc"/> | |
</itemDatas> | |
</highlighting> | |
<general> | |
<keywords casesensitive="0" /> | |
<comments> | |
<comment name="singleLine" start="'" /> | |
<comment name="remark" start="REM " /> | |
<comment name="multiLine" start="/'" end="'/" region="Comment" /> | |
</comments> | |
</general> | |
</language> | |
<!-- // kate: space-indent on; indent-width 2; replace-tabs on; --> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment