This BlitzPlus-written IDE was abandoned until recently, when I found a way to control a textarea's cursor position. The editor has basic functionality, and room for expansion in the language a Blitz IDE is meant to be written in.
Download
Download
Function FormatLine(textarea,linenum) char=TextAreaChar(textarea,linenum) length=TextAreaLineLen(textarea,linenum) s$=TextAreaText(textarea) codeline$=Mid(s,char+1,length) FormatTextAreaText textarea,PLAINR,PLAING,PLAINB,0,char,Len(codeline) If Not Len(codeline) Return ;Strings p=1 While p p=Instr(codeline,Chr(34),p) If p p2=Instr(codeline,Chr(34),p+1) If p2=0 p2=Len(codeline) FormatTextAreaText textarea,STRINGR,STRINGG,STRINGB,0,char+p-1,p2-p+1 kf=Len(codeline) codeline=Left(codeline,p-1)+String(Chr$(160),p2-p+1)+Right(codeline,Len(codeline)-p2) EndIf Wend ;Comments p=Instr(codeline,";") If p FormatTextAreaText textarea,COMMENTR,COMMENTG,COMMENTB,0,char+p-1,Len(codeline)-p codeline=Left(codeline,p-1) EndIf If Not Len(codeline) Return ;Keywords Repeat found=0 lcodeline$=Lower(codeline) For k.keyword=Each keyword p=Instr(lcodeline,k\lword,0) If p spacer=Asc(Lower(Mid(codeline,(p-1),1))) If spacer<97 Or spacer>122 spacer=Asc(Lower(Mid(codeline,(p+Len(k\lword)),1))) If spacer<97 Or spacer>122 SetTextAreaText textarea,k\word,(char+p-1),Len(k\word) FormatTextAreaText textarea,COMMANDR,COMMANDG,COMMANDB,0,(char+p-1),Len(k\lword) p2=p+Len(k\word) codeline=Left(codeline,p-1)+String(Chr$(160),p2-p+1)+Right(codeline,(Len(codeline)-p2)) found=1 Exit EndIf EndIf EndIf Next Until found=0 ;Numbers start=0 Repeat ch=Asc(Mid$(codeline,start,1)) If ch>47 And ch<58 spacer=Asc(Mid(codeline,(start-1),1)) If spacer<97 Or spacer>122 For i=start To Len(codeline) cn=Asc(Mid(codeline,i,1)) If cn<48 Or cn>57 sp$=Mid(codeline,(start-1),1) If sp="$" Or sp="%" start=start-1 End If FormatTextAreaText textarea,NUMBERR,NUMBERG,NUMBERB,0,(char+start-1),i-start start=i Exit End If Next End If End If start=start+1 Until start>Len(codeline) End Function