AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

XRefactor für Delphi !!

Ein Thema von stoxx · begonnen am 23. Mär 2005 · letzter Beitrag vom 7. Dez 2005
Antwort Antwort
Seite 1 von 6  1 23     Letzte »    
Benutzerbild von stoxx
stoxx

Registriert seit: 13. Aug 2003
1.111 Beiträge
 
#1

XRefactor für Delphi !!

  Alt 23. Mär 2005, 15:41
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 !!!)

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:

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:

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)

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 !
Angehängte Dateien
Dateityp: zip xrefactor_280.zip (26,0 KB, 91x aufgerufen)
Phantasie ist etwas, was sich manche Leute gar nicht vorstellen können.
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#2

Re: XRefactor für Delphi !!

  Alt 23. Mär 2005, 16:09
Zitat von stoxx:
Und weil Robert_G immer so gegen Delphi haut in letzter Zeit, musste ich was unternehmen
Boah... ist das fiiieees.
Schaue dich mal um, auch wenn ich mich nicht immer zusammenreißen kann...
Ich nehme D2005 auch in Schutz wenn es irgendwelche Hirnies übertreiben.
Siehe "Qou* Vadidis borland".

*

Das Ding werde ich mit meinem mittelalterlichen D7 wohl nicht testen können, oder?
  Mit Zitat antworten Zitat
Benutzerbild von stoxx
stoxx

Registriert seit: 13. Aug 2003
1.111 Beiträge
 
#3

Re: XRefactor für Delphi !!

  Alt 23. Mär 2005, 16:15
Zitat von Robert_G:
Das Ding werde ich mit meinem mittelalterlichen D7 wohl nicht testen können, oder?
Ich bitte vielmals um Entschuldigung

Hier ist ist das Tool für Delphi7, ich hoffe, das klappt.
Angehängte Dateien
Dateityp: zip xrefactor_delphi7_123.zip (24,8 KB, 53x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von stoxx
stoxx

Registriert seit: 13. Aug 2003
1.111 Beiträge
 
#4

Re: XRefactor für Delphi !!

  Alt 26. Mär 2005, 17:24
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
Angehängte Dateien
Dateityp: zip xrefactord2005_264.zip (28,1 KB, 31x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#5

Re: XRefactor für Delphi !!

  Alt 26. Mär 2005, 17:37
Hai stoxx,

wie muss ich das denn installieren (Delphi 7).?
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von stoxx
stoxx

Registriert seit: 13. Aug 2003
1.111 Beiträge
 
#6

Re: XRefactor für Delphi !!

  Alt 26. Mär 2005, 17:48
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.

Deswegen bitte mal probieren, das package kommt mir nämlich auch recht klein vor ...

Gruß stoxx
Angehängte Dateien
Dateityp: zip xrefactord7_173.zip (26,9 KB, 46x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Orbmu2k
Orbmu2k

Registriert seit: 29. Nov 2004
Ort: Erfurt
254 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: XRefactor für Delphi !!

  Alt 29. Mär 2005, 14:42
Sehr Schick

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

Registriert seit: 15. Dez 2004
Ort: Magdeburg
30 Beiträge
 
Delphi 7 Professional
 
#8

Re: XRefactor für Delphi !!

  Alt 30. Mär 2005, 10:37
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
  Mit Zitat antworten Zitat
Vjay

Registriert seit: 2. Dez 2003
Ort: Berlin/Eschede
481 Beiträge
 
Delphi 7 Professional
 
#9

Re: XRefactor für Delphi !!

  Alt 30. Mär 2005, 11:44
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
Wer später bremst ist eher tot.
  Mit Zitat antworten Zitat
Benutzerbild von stoxx
stoxx

Registriert seit: 13. Aug 2003
1.111 Beiträge
 
#10

Re: XRefactor für Delphi !!

  Alt 31. Mär 2005, 16:26
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 ..
Phantasie ist etwas, was sich manche Leute gar nicht vorstellen können.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 6  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:09 Uhr.
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