Seite 1 von 3

IDE & jaPBe Code Beautyfier.

Verfasst: 06.01.2008 12:28
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.

Re: IDE & jaPBe Code Beautyfier.

Verfasst: 06.01.2008 12:51
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

Verfasst: 06.01.2008 13:10
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.

Verfasst: 06.01.2008 13:18
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

Verfasst: 06.01.2008 13:55
von Kiffi
jpd hat geschrieben:debug du! wird ausgeführt :freak:
Wieso sollte es nicht ausgeführt werden?

Grüße ... Kiffi

Verfasst: 06.01.2008 14:03
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.

Verfasst: 06.01.2008 15:11
von jpd
Hi inc,

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

ciao
jpd

Re: IDE & jaPBe Code Beautyfier.

Verfasst: 07.01.2008 19:09
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 ...

Verfasst: 07.01.2008 21:02
von DrShrek
@inc,
Hat was. Wenn es noch konfigurierbar(er) wäre (ähnlich den Folding wie bei der IDE), dann wäre es perfekt!

Verfasst: 08.01.2008 09:07
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]