IDE & jaPBe Code Beautyfier.

Anwendungen, Tools, Userlibs und anderes nützliches.
Benutzeravatar
inc.
Beiträge: 348
Registriert: 27.10.2004 12:25

IDE & jaPBe Code Beautyfier.

Beitrag von inc. »

Hier ein kleines weiteres Plugin für die IDE und jaPBe.

Es ist ein Code Beautyfier, welcher neben dem richtigen Einrücken ebenso auch die Keywords, Befehle, Operatoren, etc. richtig anordnet und zudem die sinnlosen Whitespaces am Ende von Zeilen entfernt.

Code: Alles auswählen

Procedure.l Functions (a,b,c, e.l, string="default" )
  Protected j.l =0
  if a+b /c= gVar
   string="hello"
  Endif
EndProcedure:FreeMemory( *mem)

#CONSTANT_A = $FF
#ERROR = 0
#DELETE_KEYWORD = "del"
...wird zu ...

Code: Alles auswählen

Procedure.l Functions(a, b, c, e.l, string = "default")
  Protected j.l = 0
  if a + b / c = gVar
   string = "hello"
  Endif
EndProcedure : FreeMemory(*mem)


#CONSTANT_A     = $FF
#ERROR          = 0
#DELETE_KEYWORD = "del"

Nach einem MacroEnde wird der Einzug ebenso wieder korrekt zurückgesetzt.

Code: Alles auswählen

Macro TestCode()
  If x < 0
    If r = j
      z = x
EndMacro
Es wird lediglich der ausgewählte Bereich korrigiert.

Hier die Einstellungen der der Tools-Sektionen der IDE und von jaPBe:

IDE:
Bild

Es gibt jetzt eine neue Syntax der zu übergebenen Argumente:
bei der IDE ist "%TEMPFILE" obligatorisch. Soll zum Einrücken ebenso ein Code-Beautifying angewendet werden, muss wie im Screenshot zu sehen -b angegeben werden. Sollen zudem die "=" Zuordnungen bei Konstantenfolgen ausgerichtet werden, so erfolgt dies via dem Argument -c. Man kann also mehrere Einträge in den Tools definieren, wo eben alles oder individuell einzelne Funktionen aktiviert werden.
Die alte Syntax der Argumente "%TEMPFILE" "%SELECTION" "%BEAUTIFY" wird nicht mehr unterstützt.


jaPBe:
Bild
Vom Sinn her genau wie bei der IDE, nur dass hier anstelle von "%TEMPFILE" die Argumente "%FILE" und "%SCI" genutzt werden müssen (siehe Screenshot). Für die Argumente -b und -c gilt das gleiche wie in oben beschrieben für die IDE.

Update: http://www.file-upload.net/download-600 ... y.exe.html
Hier der Link zur alten Version - just in case.

Dies ist eine Beta, keine Gewähr: In jaPBe kann lediglich das Argument "%FILE" für das wiedereinladen des aktuellen Codes genutzt werden. Bedeutet, der zu bearbeitende Code wird nicht wie in der IDE via "%TEMPFILE" vorab als temporäre Datei abgespeichert, sondern direkt überschrieben.
Bei mir klappt alles wudnerbar, jedoch kann man zum testen vorab in jaPBe das Plugin so einstellen, dass es erstmal den bearbeiteten Code in eine neue Datei einläd.


Das Plugin ist quasi eine Kombination aus Remi Meiers Lexer und HeX0R Einrückungs-Tool.
http://www.purebasic.fr/german/viewtopic.php?t=8691
http://www.purebasic.fr/german/viewtopic.php?t=10418



Hier eine Version, welche die Operatoren nicht durch Leerzeichen trennt:
http://www.file-upload.net/download-600 ... s.exe.html
Hier ebenso der Link zur alten Version.

Code: Alles auswählen

Procedure.l Functions (a,b,c, e.l, string="default" )
  Protected j.l= 0
  if a+ b /c= gVar
   string= #PB_Compiler_Home + "File.pbi"
  Endif
EndProcedure:FreeMemory( *mem)
...wird zu ...

Code: Alles auswählen

Procedure.l Functions(a, b, c, e.l, string="default")
  Protected j.l=0
  if a+b/c=gVar
   string=#PB_Compiler_Home+"File.pbi"
  Endif
EndProcedure : FreeMemory(*mem)

Changelog:

09.01.2007:
- Neue Syntax der zu übergebenen Argumente
- Selektion wird jetzt auch für jaPBe unterstützt.
- Konstanten-Zuordnungs-Folgen können jetzt horizontal am "=" ausgerichtet werden (wie jaPBe's Select+ALT+STR+TAB)

06.01.2007:
-Bugfix bei Nutzung von z.B. "If \number" wo kein Space Separator eingefügt wurde.
Zuletzt geändert von inc. am 09.01.2008 10:39, insgesamt 5-mal geändert.
Hier gibts die OOP Option für PureBasic.
Benutzeravatar
jpd
Beiträge: 380
Registriert: 14.02.2005 10:33

Re: IDE & jaPBe Code Beautyfier.

Beitrag von jpd »

Hasllo inc,
hört sich vielversprechend an :-)

werde das in den nächsten tagen angucken!

eine frage:
inc. hat geschrieben:
EndProcedure:FreeMemory( *mem)
wird in diese zeile freememory ausgeführt?


müsste ein programm beim ausführen von endprocedure zur aufrufende zeile + 1 zurueck?

Danke
jpd
PB 5.10 Windows 7 x64
Benutzeravatar
inc.
Beiträge: 348
Registriert: 27.10.2004 12:25

Beitrag von inc. »

Das ist nur als Beispiel zu verstehen, dass selbstverständlich durch ":" gertrennte Befehle auch richtig behandelt werden.

Die Codes sind reine Nonsense-Zeilen, lediglich zur optischen Verdeutlichung.
Hier gibts die OOP Option für PureBasic.
Benutzeravatar
jpd
Beiträge: 380
Registriert: 14.02.2005 10:33

Beitrag von jpd »

Hi inc,

ist ein bissel off topic sorry!

in jede non-sense zeile steckt ein bisshien warheit :)

Code: Alles auswählen

Procedure testU()

Debug "hallo"

EndProcedure:Debug "du!"

testU()
debug du! wird ausgeführt :freak:

Ciao
jpd
PB 5.10 Windows 7 x64
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

jpd hat geschrieben:debug du! wird ausgeführt :freak:
Wieso sollte es nicht ausgeführt werden?

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
inc.
Beiträge: 348
Registriert: 27.10.2004 12:25

Beitrag von inc. »

jpd, wenn ich sage dass in jenen Nonsense Zeilen keine Wahrheit steckt, sondern es lediglich der optischen Verdeutlichung dient, dann ist das so.
Lass uns das bitte hier jetzt nicht weiterführen indem wir anfangen genau darüber "OffTopic" Philosophien zu starten, ich bitte dich das zu verstehen. Thanx.

Was den ":" Trenner angeht, da bitte ich dich ebenso mal die PB Hilfe zu lesen, bevor etwas als Bug gemeldet wird, was keiner ist.

Danke.
Hier gibts die OOP Option für PureBasic.
Benutzeravatar
jpd
Beiträge: 380
Registriert: 14.02.2005 10:33

Beitrag von jpd »

Hi inc,

bitte entschuldige mich , es war keine gute idee von mir in diesen thread die zeile zu kommentieren!

ciao
jpd
PB 5.10 Windows 7 x64
Benutzeravatar
gnozal
Beiträge: 219
Registriert: 04.12.2004 13:01
Wohnort: Frankreich (67)
Kontaktdaten:

Re: IDE & jaPBe Code Beautyfier.

Beitrag von gnozal »

inc. hat geschrieben:Vom Sinn her genau wie bei der IDE, da jedoch jaPBe die Auswahl des zu bearbeitenden Codes nicht via dem Argument "%SELECTION" übergibt, MUSS hier anstattdessen "%NOSELECTION" genutzt werden, ansonsten ists genau wie bei der IDE, also mit oder ohne Ausrichten der Zeichen/Keywords etc.
You could use the plugin SDK : jaPBe_GetSelection() etc ...
For free libraries and tools, visit my web site (also home of jaPBe V3 and PureFORM).
Benutzeravatar
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Beitrag von DrShrek »

@inc,
Hat was. Wenn es noch konfigurierbar(er) wäre (ähnlich den Folding wie bei der IDE), dann wäre es perfekt!
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
Benutzeravatar
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Beitrag von DrShrek »

Noch etwas buggy:


Versuch mal das hier:

Code: Alles auswählen

For y = 0 To 255
For x = 0 To 255
Next
Next
[/code]
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
Antworten