[IDE-Tool]Einruecker

Anwendungen, Tools, Userlibs und anderes nützliches.
Benutzeravatar
Pelagio
Beiträge: 423
Registriert: 11.11.2004 17:52
Computerausstattung: Intel Core i3-4170 CPU 3,70 GHz
8,00 GB Arbeitsspeicher
WIN 10 Pro 64 Bit Betriebssystem
Wohnort: Bremen

Re: [IDE-Tool]Einruecker

Beitrag von Pelagio »

Danke für das Tool :allright:

ich baue meinen Source zwar strukturiert auf aber es bedarf doch etwas mehr Zeit und hier und da schleichen sich auch 'Fehler' ein.
Mit deinem Code kann ich viel schneller die Einrückstrukturierung erreichen aber was mir sehr, mehr gefällt ist, das am Ende alles
korrekt strukturiert Dargestellt wird, also irgend wie kann man sagen eine Überprüfung stattfindet. Danke :praise:
Ohne Zeit kein Fleiß
Auf neustem Stand zu sein ist eine Kunst die nicht jeder perfektioniert [Win10Pro(64); PB6.03 LTS]. :allright:
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: [IDE-Tool]Einruecker

Beitrag von mk-soft »

Very Cool :allright:

Ist besser als der von Purebasic, da diese den Kommtar auch wenn diese in der nächsten Zeile stehen verschiebt.
Das störte mich sehr!

Ich habe noch eine Anpassung durchgeführt.

Da die Prüfung von den Open Sources Projekt wegen Whitespaces oft fehlschlägt,
entferne ich auch bei Kommentar Zeilen die rechten Leerzeichen.

Zeile 531

Code: Alles auswählen

    If IsJustComment(a$)
      ; Remove whitespaces from comments!
      Lines() = RTrim(a$)
    Else
Vielen Dank ;)
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
HeX0R
Beiträge: 2954
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win10 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2
Kontaktdaten:

Re: [IDE-Tool]Einruecker

Beitrag von HeX0R »

Hab ich eingebaut.
Ausserdem Handling von Zeilenfortsetzungen.
Nicht ganz perfekt, die IDE kann das etwas cleverer machen, ich habe mich aber an die "Tab-Einrückung für mehrzeiligen Quellcode" Einstellungen angelehnt.
G'schisse gut, würde ich mal sagen :mrgreen:

Du lässt das Tool aber nicht wirklich über die PB-IDE-Quelltexte laufen, oder?
Vermutlich würde das im Chaos enden, der PB-IDE-Code ist nicht immer wirklich schön, danach hättest Du vermutlich ein paar hundert Zeilen Änderungen, was unsere "Git-Wächter" wieder alarmiert.
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: [IDE-Tool]Einruecker

Beitrag von mk-soft »

Ne, wohl besser nicht für die PB-IDE.

Dafür habe ich ein Mini Tool um die whitespaces zu entfernen.

Ach ja,
Kleiner Tipp.
Argument "%TEMPFILE" muss alles Groß geschrieben werden.
Konnte zuerst den Haken 'Reload Source ... " nicht setzen.
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benubi
Beiträge: 186
Registriert: 22.10.2004 17:51
Wohnort: Berlin, Wedding

Re: [IDE-Tool]Einruecker

Beitrag von Benubi »

Vielen Dank für das Tool! Ich habe schon des Öfteren über Jahre an sowas gedacht. :allright:
Es funktioniert gut bei einfachen Sources, aber ich habe hier eine Datei die das kompilierte Tool zum hängen bringt. Ich habe jetzt Deinen Sourcecode nicht analysiert sondern einfach mal kompiliert und probiert...
Ich benutze "ungewöhnlicherweise" Macros in der DataSection, vielleicht liegt es daran. Die Macros selbst werden aber in einer anderen Datei definiert daher dürfte das egal sein. Oder gibt es ein Problem mit Shared wenn es sich auf arrays und listen und maps bezieht? Ich könnte Dir auch die betreffende Source Datei zusenden wenn Du die zum Debuggen brauchst...

Ausschnittsweise:

Code: Alles auswählen

Structure _BitCountMap
    count.a[256]
EndStructure
Define _BitCount._BitCountMap 
Dim _UnByte.f(256)
;
;
;

ProcedureC InitBitCount()
  Shared _BitCount, _UnByte()
  Static init 
  Protected i, bits, c
  
  
  
  If Not init 
     init=#True
    For c = 0 To 255
      bits=0
      For i=0 To 7
        If c & (1<<i) 
          bits + 1
        EndIf 
      Next 
      _BitCount\count[c]=bits
      _UnByte(c) = c / 255.0
    Next 
  EndIf 
  
EndProcedure
;
;

;
DataSection
  ;
  ;
  ;
  vt_lua_buffer:
  ;
  ;
  _method("new",tolua_buffer_new)
  _method("newbits",tolua_buffer_newbits)
  _method("setbits",tolua_buffer_setbits)
  _method("unsetbits",tolua_buffer_unsetbits)
  _method("countbits",tolua_buffer_countbits)
  _method("write",tolua_buffer_write)
  ;
  ;
  ;
  Data.i 0,0  
EndDataSection

;
Benutzeravatar
HeX0R
Beiträge: 2954
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win10 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2
Kontaktdaten:

Re: [IDE-Tool]Einruecker

Beitrag von HeX0R »

Ich bräuchte schon nen Code, der das Verhalten reproduzierbar macht.
Bei Deinem Beispiel passiert bei mir hier nichts ungewöhnliches.
Benubi
Beiträge: 186
Registriert: 22.10.2004 17:51
Wohnort: Berlin, Wedding

Re: [IDE-Tool]Einruecker

Beitrag von Benubi »

Habe Dir den betreffenden Source per PM zugeschickt. Ich benutze 32bit windows falls das einen Unterschied machen sollte, btw.
Benutzeravatar
HeX0R
Beiträge: 2954
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win10 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2
Kontaktdaten:

Re: [IDE-Tool]Einruecker

Beitrag von HeX0R »

fixed!
Benutzeravatar
HeX0R
Beiträge: 2954
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win10 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2
Kontaktdaten:

Re: [IDE-Tool]Einruecker

Beitrag von HeX0R »

Ich hab mal die (wie ich finde sehr clevere), Line Continuation Version der PB IDE eingebaut.
Tatsächlich habe ich die Procedur der PB-IDE nahezu 1:1 übernommen, weil da doch ziemlich viel Hirnschmalz drinsteckt.

Die Funktion beachtet eure IDE Einstellungen.
Also, wenn ihr bei "Einrückung" die Checkbox "Tab-Einrückung für mehrzeiligen Quellcode verwenden" angewählt hat, wirkt auch nur die einfache Art der Einrückung (quasi so wie vorher, nur ein simples TAB).
Ansonsten die clevere Art.

Clevere Art:

Code: Alles auswählen

If 1
	a$ = "abc" +
	     "def" +
	     "ghi"
	
	OpenWindow(0, 0, 0, 400,
	           300, "bla", #PB_Window_SystemMenu | #PB_Window_Invisible |
	                       #PB_Window_ScreenCentered |
	                       #PB_Window_MaximizeGadget,
	           12)
	
EndIf
Tab Art:

Code: Alles auswählen

If 1
	a$ = "abc" +
		"def" +
		"ghi"
	
	OpenWindow(0, 0, 0, 400,
		300, "bla", #PB_Window_SystemMenu | #PB_Window_Invisible |
		#PB_Window_ScreenCentered |
		#PB_Window_MaximizeGadget,
		12)
	
EndIf
mestnyi
Beiträge: 15
Registriert: 25.02.2014 22:00

Re: [IDE-Tool]Einruecker

Beitrag von mestnyi »

Code: Alles auswählen

If *widget = #Null
  Select Position
    Case #PB_List_First : *widget = *this\_parent( )\first\widget
    Case #PB_List_Before : *widget = *this\before\widget
    Case #PB_List_After : *widget = *this\after\widget
    Case #PB_List_Last : *widget = *this\_parent( )\last\widget
  EndSelect
EndIf


If *widget = #Null
  Select Position
    Case #PB_List_First  : *widget = *this\_parent( )\first\widget
    Case #PB_List_Before : *widget = *this\before\widget
    Case #PB_List_After  : *widget = *this\after\widget
    Case #PB_List_Last   : *widget = *this\_parent( )\last\widget
  EndSelect
EndIf
Antworten