Still WIP but this can be made into a stand alone IDE tool. Needs testing to make sure there are no syntax errors in the code and the code compiles correctly.
As is, is set to run in compile or debug mode and opens a tempfile so as not to alter any original code.



zebuddi.

Before:

After:

Code: Select all
Procedure.s BeautifyCode(Source.s)
Protected q$, t.i, k, t$=Source.s, i.i, delimiter.s, dp.s
For i=1 To 16
Select i
Case 1
delimiter=";"
dp=" "+delimiter+" "
Case 2
delimiter="("
dp=delimiter+" "
Case 3
delimiter=")"
dp=" "+delimiter+" "
Case 4
delimiter=","
dp=" "+delimiter+" "
Case 5
delimiter=":"
dp=" "+delimiter+" "
Case 6
delimiter="<>"
dp=" "+delimiter+" "
Case 7
delimiter="<="
dp=" "+delimiter+" "
Case 8
delimiter=">="
dp=" "+delimiter+" "
Case 9
delimiter="=>"
dp=" "+delimiter+" "
Case 10
delimiter="=<"
dp=" "+delimiter+" "
Case 11
delimiter="+"
dp=" "+delimiter+" "
Case 12
delimiter="|"
dp=" "+delimiter+" "
Case 13
delimiter="="
dp=" "+delimiter+" "
Case 14
delimiter="; {"
dp=";{ "
Case 15
delimiter="; }"
dp=";{ "
Case 16
delimiter=") \"
dp=")\"
EndSelect
t=CountString(t$, delimiter)+1
For k = 1 To t
If k<t
q$+Trim(StringField(t$, k, delimiter))
q$+dp
Else
q$+Trim(StringField(t$, k, delimiter))
EndIf
Next
t$=q$ : q$=""
Next
ProcedureReturn t$
EndProcedure
f$=OpenFileRequester("","","", 0)
Global j$
If ReadFile(0,f$)
While Eof(0)=0
a$=Trim(ReadString(0, ReadStringFormat(0)))
a$=RemoveString(a$, Chr(10)+Chr(13))
a$=RemoveString(a$, Chr(9))
t$+a$+#CRLF$
Wend
CloseFile(0)
j$= BeautifyCode(t$)
SetClipboardText(j$)
If CreateFile(0, f$)
WriteString(0, j$)
CloseFile(0)
RunProgram(f$)
Else
MessageRequester("file error",GetLastErrorAsText(GetLastError()))
EndIf
EndIf
End