Seite 8 von 9

Re: [IDE-Tool]Einruecker

Verfasst: 26.02.2022 08:26
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:

Re: [IDE-Tool]Einruecker

Verfasst: 26.02.2022 16:54
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 ;)

Re: [IDE-Tool]Einruecker

Verfasst: 26.02.2022 17:21
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.

Re: [IDE-Tool]Einruecker

Verfasst: 26.02.2022 17:52
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.

Re: [IDE-Tool]Einruecker

Verfasst: 13.03.2022 14:51
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

;

Re: [IDE-Tool]Einruecker

Verfasst: 13.03.2022 16:18
von HeX0R
Ich bräuchte schon nen Code, der das Verhalten reproduzierbar macht.
Bei Deinem Beispiel passiert bei mir hier nichts ungewöhnliches.

Re: [IDE-Tool]Einruecker

Verfasst: 13.03.2022 18:44
von Benubi
Habe Dir den betreffenden Source per PM zugeschickt. Ich benutze 32bit windows falls das einen Unterschied machen sollte, btw.

Re: [IDE-Tool]Einruecker

Verfasst: 13.03.2022 19:23
von HeX0R
fixed!

Re: [IDE-Tool]Einruecker

Verfasst: 20.03.2022 14:20
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

Re: [IDE-Tool]Einruecker

Verfasst: 24.11.2022 06:51
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