Code Cleaner

Anwendungen, Tools, Userlibs und anderes nützliches.
Benutzeravatar
Imhotheb
Beiträge: 192
Registriert: 10.10.2014 13:14
Computerausstattung: Intel 8086, 640 KB RAM, Hercules Video Adapter, 2 x 5 1/4" 360kb Floppy, MS-DOS 3
Wohnort: Wolfenbüttel

Re: Code Cleaner

Beitrag von Imhotheb »

Sry, ja ... deine Kristallkugel hat dir das richtige gezeigt :lol: ... wegen der Einrückung
Vielleicht mit zusätzlichem Parameter um die Anzahl der Leerzeichen zu ändern? Standard sind 2.
weil einfach einfach einfach ist ... mach' ich es anders
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Code Cleaner

Beitrag von RSBasic »

Ich würde die Tab-Länge aus der PB-Einstellungsdatei ermitteln, dann funktioniert es auch bei anderen, die z.B. 3 oder 4 Zeichen als Tab haben.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Code Cleaner

Beitrag von RSBasic »

Code Cleaner 1.0.1 wurde veröffentlicht.

Changelog:
  • Hinzugefügt: "/Fold" zum Einklappen.
  • Hinzugefügt: "/Unfold" zum Ausklappen.
  • Hinzugefügt: "/ConvertTabToSpace" (Anzahl der Leerzeichen wird aus der PB-Einstellungsdatei ermittelt)
  • Hinzugefügt: "/ConvertSpaceToTab" (Anzahl der Leerzeichen wird aus der PB-Einstellungsdatei ermittelt)
  • Hinzugefügt: "/SetCursorToTop" zum Setzen des Cursors an den Anfang.
  • Hinzugefügt: "/SetCursorToBottom" zum Setzen des Cursors an das Ende.
  • Geändert: Die Reihenfolge der Parameter wird ermittelt und alle Parameter werden in der Reihenfolge ausgeführt.
  • Geändert: Wenn nichts markiert wurde, dann wird immer der komplette Code bearbeitet.
IB-Software hat geschrieben:Wenn ich aber die Parameter: [...] nutze, werden zwar die Kommentare gelöscht, es bleiben aber diese Zeilen als Leerzeilen zurück. Selbst dann wenn ich [...] als letzten Parameter setze.
Erledigt
Josh hat geschrieben:Ich hätte gerne, dass alle Faltungen geschlossen werden
Erledigt
Josh hat geschrieben:Ich hätte gerne, dass der Cursor auf Zeile 1 steht
Erledigt
Imhotheb hat geschrieben:ConvertTabToSpace und ConvertSpaceToTab
Erledigt
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Josh
Beiträge: 1028
Registriert: 04.08.2009 17:24

Re: Code Cleaner

Beitrag von Josh »

Gleich mal Danke für dein Tool. Habe es gerade getestet, macht im groben, wie ich es mir vorgestellt habe. Aber ich wäre ja nicht ich, wenn ich nicht was zum meckern finden würde :mrgreen:
  • Das Tool ist sehr langsam. Bei einem Code mit 3000 Zeilen und 30 Faltungen läuft das Tool 30 Sekunden bei einer Prozessorauslastung von 25% (also ein Kern auf 100%). Meine Kiste hier ist sicher nicht mehr die Neuste und die Schnellste, aber Probleme mit Geschwindigkeit hatte ich noch nie.
  • Der Cursor steht nach der Ausführung wie gewünscht auf Zeile 1, Position 1. Wenn ich aber dann eine Zeile runter gehe, ist der Cursor auf Zeile 2, aber wieder auf der Position, wo er ursprünglich war.
Durchläufst du den ganzen Code und schließt jede Faltung einzeln? Hat Scintilla nicht eine Funktion, die alle Faltungen schließt?
Benutzeravatar
Imhotheb
Beiträge: 192
Registriert: 10.10.2014 13:14
Computerausstattung: Intel 8086, 640 KB RAM, Hercules Video Adapter, 2 x 5 1/4" 360kb Floppy, MS-DOS 3
Wohnort: Wolfenbüttel

Re: Code Cleaner

Beitrag von Imhotheb »

RSBasic hat geschrieben:
Imhotheb hat geschrieben:ConvertTabToSpace und ConvertSpaceToTab
Erledigt
:allright:
weil einfach einfach einfach ist ... mach' ich es anders
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Code Cleaner

Beitrag von RSBasic »

Code Cleaner 1.0.2 wurde veröffentlicht.

Changelog:
  • Optimiert: Verbesserung der Performance beim Falten/Entfalten.

@Josh
Danke fürs Testen.
Ich habe mit einer Datei mit 5000 Zeilen mit 150 Faltungen getestet.
Das Falten und Entfalten dauert tatsächlich extrem lange. Bei mir waren es 31 Sekunden.
Aber ich habe eine Lösung gefunden, die ich noch nicht kannte.
Ich habe zum Falten und Entfalten die Message #SCI_FOLDLINE verwendet, um zeilenweise zu falten/entfalten, aber um alle Falteungen aufeinmal umzuschalten, gibt es die Message #SCI_FOLDALL, die natürlich deutlich schneller ist. Diese Message habe ich irgendwie übersehen. :oops:
Das Umschalten aller Faltungen dauert jetzt stattdessen nur 1 Sekunde.
Josh hat geschrieben:Der Cursor steht nach der Ausführung wie gewünscht auf Zeile 1, Position 1. Wenn ich aber dann eine Zeile runter gehe, ist der Cursor auf Zeile 2, aber wieder auf der Position, wo er ursprünglich war.
Ich konnte es nicht nachstellen. Ich habe da noch was hinzugefügt. Gibt es mit der neuen Version einen Unterschied?
Wie stelle ich es nach? Ich benutze den Parameter und drücke Pfeiltaste nach unten. Dann befindet sich der Cursor auf Zeile 2.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Josh
Beiträge: 1028
Registriert: 04.08.2009 17:24

Re: Code Cleaner

Beitrag von Josh »

Habe gerade die Version 1.0.2 runtergeladen und getestet. Das mit der Geschwindigkeit ist jetzt ganz was anderes :D

Angenommen der Cursor steht auf Zeile 17, Spalte 35. Nach ausführen deines Tools steht der Cursor wie gewünscht auf Position auf Zeile 1, Spalte 1. Wenn ich nun mit den Pfeiltasten eine Zeile nach unten gehe, steht der Cursor auf Zeile2, Spalte 35 (natürlich nur, wenn die Zeile 2 überhaupt 35 Zeichen lang ist).

Das Cursorverhalten ist jetzt irgendwie so, wie wenn ich im Code mit den Pfeiltasten nach unten fahre. Wenn da eine Leerzeile ist, steht der Cursor auch auf Spalte 1 und bei der nächsten vollen Zeile wieder auf der ursprünglichen Spalte.
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Code Cleaner

Beitrag von RSBasic »

Josh hat geschrieben:steht der Cursor auf Zeile2, Spalte 35 (natürlich nur, wenn die Zeile 2 überhaupt 35 Zeichen lang ist).
Danke, das hat gefehlt zum Nachstellen. Bei mir jetzt auch.

Scintilla merkt sich immer die letzte Cursorposition. Ich konnte leider nichts finden, um die "Recent-Liste" des Cursors zu leeren.
Egal, ob ich mit #SCI_SETCURRENTPOS oder #SCI_GOTOPOS oder #SCI_GOTOLINE den Cursor auf Position 0 setze.
Auf https://www.scintilla.org/ScintillaDoc.html konnte ich leider nichts finden.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Bisonte
Beiträge: 2427
Registriert: 01.04.2007 20:18

Re: Code Cleaner

Beitrag von Bisonte »

RSBasic hat geschrieben:
Josh hat geschrieben:steht der Cursor auf Zeile2, Spalte 35 (natürlich nur, wenn die Zeile 2 überhaupt 35 Zeichen lang ist).
Danke, das hat gefehlt zum Nachstellen. Bei mir jetzt auch.

Scintilla merkt sich immer die letzte Cursorposition. Ich konnte leider nichts finden, um die "Recent-Liste" des Cursors zu leeren.
Egal, ob ich mit #SCI_SETCURRENTPOS oder #SCI_GOTOPOS oder #SCI_GOTOLINE den Cursor auf Position 0 setze.
Auf https://www.scintilla.org/ScintillaDoc.html konnte ich leider nichts finden.
ähem... speichert das die IDE nicht selbst ab ?

Code: Alles auswählen

; IDE Options = PureBasic 5.70 LTS (Windows - x64)
; CursorPosition = 60
; FirstLine = 17
; Folding = 0
; EnableThread
; EnableXP
; EnableUser
; CompileSourceDirectory
; EnableCompileCount = 3
; EnableBuildCount = 0
; EnableExeConstant
Wenn ich mit einem Texteditor die "FirstLine" und CursorPosition auf 0 setze, ist der Currsor beim neuladen ganz oben.
PureBasic 6.04 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom​​
Benutzeravatar
Josh
Beiträge: 1028
Registriert: 04.08.2009 17:24

Re: Code Cleaner

Beitrag von Josh »

RSBasic hat geschrieben:Scintilla merkt sich immer die letzte Cursorposition. Ich konnte leider nichts finden, um die "Recent-Liste" des Cursors zu leeren.
Egal, ob ich mit #SCI_SETCURRENTPOS oder #SCI_GOTOPOS oder #SCI_GOTOLINE den Cursor auf Position 0 setze.
ScintillaSendMessage (0, #SCI_DOCUMENTSTART)
Antworten