Delphi-PRAXiS
Seite 1 von 6  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Werkzeuge (https://www.delphipraxis.net/63-sonstige-werkzeuge/)
-   -   XRefactor für Delphi !! (https://www.delphipraxis.net/42767-xrefactor-fuer-delphi.html)

stoxx 23. Mär 2005 14:41


XRefactor für Delphi !!
 
Liste der Anhänge anzeigen (Anzahl: 1)
In Anbetracht dieses Threads http://www.delphipraxis.net/internal...=340042#340042
dachte ich mir, dass ich mein eigenes kleines Refactor Tool als Beta mal veröffentliche, obwohl noch nicht ganz fertig.
Ich denke aber, es wird vielen gefallen. Und weil Robert_G immer so gegen Delphi haut in letzter Zeit, musste ich was unternehmen ;-)

Was mich in letzter Zeit in Delphi ( Pascal) immer mehr gestört hat, dass ich ständig nach oben und nach unten scrollen muss, um im interface Teil alle mögliche Dinge zu deklarieren.
Da es auch hier schon diskutiert wurde, dass das die doppelte Deklaration ein großer Nachteil für Pascal sein soll, dachte ich mir, es geht auch anders.
XRefactor ist erstmal Freeware für den nichtkommerziellen Gebrauch. Was ich weiterhin damit mache, weiss ich noch nicht :)
Sinn des ganzen ist, nicht ständig in den Interface Teil blättern zu müssen.
Programmieren statt scrollen hieß das Motto.
Ich programmiere im Implementations Teil, und will da auch bleiben. Flüssiges Arbeiten ist mir sehr wichtig.
Wichtig zu wissen ist, dass ich keinen Pascal Parser verwendet habe( obwohl im Internet frei verfügbare zu haben sind)
Mich stört in Delph sowieso immer, dass die Codevervollständigung nicht funktioniert, nur weil mal ein kleiner Syntaxfehler im Code ist. Das ganze ist zeilenbasierend.

Es gibt im Programm einige Grundbefehle, die man wissen muss, ansonsten ist die Software sehr einfach.
Zu erreichen ist der XRefactor über STRG+L in der Delphi IDE ( ohne Sinn, einfach weil es gut zu erreichen ist mit einem 10 FingerSystem)

Kleines zusätzliches Feature im XRefactor: mit STRG+W wird die GANZE Zeile des Quelltextes , in der sich der aktuelle Cursor befindet, automatisch in die Zwischenablage kopiert, ohne erst die ganze Zeile markieren zu müssen um danach STRG+C zu drücken. Anführende Leerzeichen werden entfernt dabei.

So, nun zu den Refactoring Möglichkeiten.

erstmal zu den Befehlen:

N - steht für innnnnnnnnnnnnnnnterface
M - steht für immmmmmmmmmmmmmmmmplementation
I - für priiiiiiiiiivate
u - für puuuuuuuuuublic
si - ssssssssstrict priiiiiiivate
o - proooooootected
so - strict protected
pu - published
l - lokal

np - new procedure ( Methode ) - Sinn erklär ich später
nf - new function ( Methode)

c - CHANGE !

einfachster Fall:

UnitDeklaration:
--------------------

ich programmiere, und brauche die Unit math

Ich bin in Zeile 7690 und müsste nun nach oben blättern, das will ich nicht

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
 math
end;
ich gebe also im Code math ein, drücke STRG+L und gebe dort "N" ein -> Return.
Die Uses math wird automatische im Interface Teil unter den Uses Deklarationen eingefügt.
Wenn man "M" eingibt, dann wird die Uses im Implementationsteil eingefügt.

MethodenDeklarationen:
---------------------------

Code zum eingeben ( immer im Implementationsteil !!!)

Delphi-Quellcode:
function TForm1.meineNeueFunction( str : string ) : boolean;



STRG+L .. dann habe ich die Auswahl, ob ich diese Funktion in private oder public oder sonstwo eintragen möchte.
ich wähle also "i" -> Bestätigen mit Return;
Die Methode wird in TForm1 im private Teil eingetragen, ist der private Teil noch nicht vorhanden, wird er automatisch hinzugefügt.

der Function wird automatisch "begin" und "end;" hinzugefügt.


so .. jetzt programmiere ich, jetzt fällt mir ein dass ich doch andere Parameter brauche:

ich änder also die Function um in:

Delphi-Quellcode:
function TForm1.meineNeueFunction( var str; nochEinString : string ) : Integer;
Wenn ich die Zeile geändert habe, wird mit dem Befehl "C" diese Änderung automatisch in der ObjectDeklaration übernommen.

Dabei kann auch function in procedure geändert werden. Das einzige was belassen werden muss ist der Name zum finden: TForm1.meineNeueFunction.
Das Umbenennen der Methode selber macht Delphi2005 sowieso viel bessser !
(Tipp STRG+U (für umbenennen) mit GExperts dafür einrichten) .. vielleicht kommt dieser Shortcut auch noch in den XRefactor rein)

Anstatt STRG+L zu drücken, um danach den Befehl in das Edit Feld einzugeben, kann man auch alterantiv eingeben:

Delphi-Quellcode:
function TForm1.meineNeueFunction( var str; nochEinString : string ) : Integer;u
zu beachten ist das letzte "u", was dem Befehl entspricht .. wenn man nun STRG+L drückt, wird das refactoring automatisch durchgeführt,
und in diesem Falle die Methode unter public eingetragen.


Einschränkungen: im Moment funktioniert die Methodendeklaration nur mit EINzeiligen Function- Deklarationen.
Funktion -Deklarationen über mehrere Zeilen werden noch nicht untersützt, override, virtual Unterstützung fehlt auch noch teilweise. Müsste man im Moment noch per Hand ergänzen.

Felder:
----------

Code: FMeinNeuesFeld : TMeinEigenerTyp;

auch eine Feld Deklaration ist möglich, analog zur Methodendeklaration.
In der Beta bleibt der Eintrag im Quelltext leider noch stehen, wird aber noch ;)


Für Faule:
-------------------

ich habe ein Object deklariert

TDasIstMalEinGanzLangerNameFuerEinObject = class(TObject)

ich programmier also nun fleissig und müsste ja nun um eine neue procedure zu deklarieren dieses lage Wort von der Klasse eingeben.
Mit dem Befehl 'NF' oder 'NP' wird automatisch folgende Zeile erzeugt: ( es wird die darüberliegende Methode dafür gesucht und hergenommen)

Delphi-Quellcode:
function TDasIstMalEinGanzLangerNameFuerEinObject.
Nun kann ich die Parameter eintragen und die function wie oben schon beschrieben in der Deklaration der Klasse eintragen lassen.

es könnte sein, dass der XRefactor im Moment noch "langsam" ist, das liegt daran, dass ich den ganzen Quelltext in eine Stringlist lade, dort bearbeite und wieder in die Delphi IDE einfüge. Das muss ich noch ändern, dass nur die geänderten Zeilen in die IDE eingefügt werden.

Die Macken des Tools würden mich natürlich sehr interessieren:
Bitte Mail hier im Board oder an XRefactor@gmx.de


das Package für Delphi2005 findet ihr im Anhang.
Zu installieren ist das ganze natürlich über den Menüpunkt Komponente - Packages installiere, ich hoffe, das funktioniert auch so wie geplant :-)

Viel Spass damit !

Robert_G 23. Mär 2005 15:09

Re: XRefactor für Delphi !!
 
Zitat:

Zitat von stoxx
Und weil Robert_G immer so gegen Delphi haut in letzter Zeit, musste ich was unternehmen ;-)

Boah... ist das fiiieees. :shock:
Schaue dich mal um, auch wenn ich mich nicht immer zusammenreißen kann... :duck:
Ich nehme D2005 auch in Schutz wenn es irgendwelche Hirnies übertreiben.
Siehe "Qou* Vadidis borland". ;)

* :lol:

Das Ding werde ich mit meinem mittelalterlichen D7 wohl nicht testen können, oder? :gruebel:

stoxx 23. Mär 2005 15:15

Re: XRefactor für Delphi !!
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Robert_G
Das Ding werde ich mit meinem mittelalterlichen D7 wohl nicht testen können, oder? :gruebel:

Ich bitte vielmals um Entschuldigung :-)

Hier ist ist das Tool für Delphi7, ich hoffe, das klappt.

stoxx 26. Mär 2005 16:24

Re: XRefactor für Delphi !!
 
Liste der Anhänge anzeigen (Anzahl: 1)
nachdem mein Tool ja reichlichen Zuspruch geerntet hat, nämlich gar keinen *g* .. möchte ich dennoch die vorläufig fertige Variante noch vorstellen. Es ist auch endlich schneller geworden.

Damit ist es möglich, die Variablendeklaration inline durchzuführen.

Delphi-Quellcode:
procedure test;
begin

   for i : Integer l

end;
wird, nachdem man den XRefactor ausgeführt hat, automatisch zu:

Delphi-Quellcode:
procedure test;
var
  i : Integer;
begin

   for i :=

end;
und das ohne, dass man etwas dafür tun muss.
das L am Ende steht für lokal, siehe obige Beschreibung.
Das gleiche kann man mit ObjectVarialben tun (Felder)
property Unterstützung kommt noch.

große Änderung, das tool wird nicht mehr mit STRG+L sondern mit STRG+H aufgerufen.
Der Rechte Ringfinger im 10 Fingersystem wird leider mit dem "L" und Doppelpunkt und noch ein L für den Befehl für Lokal stark überlastet. So dass ich mich für STRG+H entschieden habe. Könnte man auch konfigurierbar machen, aber wenn es eh keinen interessiert :(

Das Tool für Delphi2005 im Anhang

Sharky 26. Mär 2005 16:37

Re: XRefactor für Delphi !!
 
Hai stoxx,

wie muss ich das denn installieren (Delphi 7).?

stoxx 26. Mär 2005 16:48

Re: XRefactor für Delphi !!
 
Liste der Anhänge anzeigen (Anzahl: 1)
Für Delphi7 brauchst Du das Package im Anhang. Mit anderen Delphi Versionen kann ich leider nicht dienen.
Du entpackst die zip Datei, speicherst die .bpl Datei irgendwo ab.
Gehst dann in Delphi auf den Menüpunkt Komponente / Packages installieren.
Gehst dort auf den Button hinzufügen und wählst die abgespeicherte XRefactor.bpl Datei aus und OK.
Danach kannst Du die Features unter Delphi7 verwenden.
Ich hoffe ja, dass das wirklich so geht, und dass sich Delphi nicht die DCU Dateien von der Platte schnappt.
:gruebel:
Deswegen bitte mal probieren, das package kommt mir nämlich auch recht klein vor ...

Gruß stoxx

Orbmu2k 29. Mär 2005 13:42

Re: XRefactor für Delphi !!
 
Sehr Schick :thumb:

Was mir noch aufgefallen ist wenn ich eine procedure zur function ändere und das per "c" in der deklaration übernehmen will tut ers net :(

mason 30. Mär 2005 09:37

Re: XRefactor für Delphi !!
 
Tolle Sache! Ich zwinge mich gerade, mich an die Tastenkürzel zu gewöhnen, weil mir die Erleichterung wirklich gefällt. Bei mir funktioniert auch die Änderung procedure -> function (ich arbeite mit Delphi 7)!
Was aber nicht funktioniert ist das Einfügen in ein USES im implementation-Teil, wenn die eingebundenen Units direkt hinter dem uses beginnen, nicht in der nächsten Zeile - da wird aus
Delphi-Quellcode:
uses math;

procedure TForm1.BtnSingleClick(Sender: TObject);
begin
  sysutils m
end;
Folgendes:
Delphi-Quellcode:
uses math;

pr procedure TForm1.BtnSingleClick(Sender: TObject), sysutils;begin
    end;
PS:
Zitat:

Könnte man auch konfigurierbar machen, aber wenn es eh keinen interessiert
Mich interessiert's übrigens :)

Vjay 30. Mär 2005 10:44

Re: XRefactor für Delphi !!
 
Zitat:

Könnte man auch konfigurierbar machen, aber wenn es eh keinen interessiert
Also ich habe mir dein Package gerade installiert, muss nun erst einmal herumprobieren, aber auf den ersten Blick gefällt es mir sehr gut :)

stoxx 31. Mär 2005 15:26

Re: XRefactor für Delphi !!
 
ich kann mich leider erst Montag wieder darum kümmern. bis dahin bitte Geduld.

man probiere auch ALT+Shift + Pfeil links oder Rechts.
Damit wird eine Zeile verrückt, egal wo der Cursor ist.
Bin mir jetzt nicht sicher, ob ALT+Pfeil runter schon funktioniert in dieser geposteten Variente :-)
einfach probieren ... bei der nächsten dann ganz bestimmt ..


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:51 Uhr.
Seite 1 von 6  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz