Seite 2 von 5

Re: Code Cleaner

Verfasst: 23.06.2019 22:43
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.

Re: Code Cleaner

Verfasst: 23.06.2019 22:45
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.

Re: Code Cleaner

Verfasst: 24.06.2019 16:21
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

Re: Code Cleaner

Verfasst: 24.06.2019 19:24
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?

Re: Code Cleaner

Verfasst: 24.06.2019 19:51
von Imhotheb
RSBasic hat geschrieben:
Imhotheb hat geschrieben:ConvertTabToSpace und ConvertSpaceToTab
Erledigt
:allright:

Re: Code Cleaner

Verfasst: 24.06.2019 20:06
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.

Re: Code Cleaner

Verfasst: 24.06.2019 20:44
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.

Re: Code Cleaner

Verfasst: 24.06.2019 21:03
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.

Re: Code Cleaner

Verfasst: 24.06.2019 22:31
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.

Re: Code Cleaner

Verfasst: 24.06.2019 22:44
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)