Template-Manager für die IDE

Für Fragen rund um die Ide und zum Debugger
Antworten
schnullerbacke
Beiträge: 1187
Registriert: Mi 13. Dez 2006, 10:58
OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
CPU-Target: AMD A4-6400 APU
Wohnort: Hamburg

Template-Manager für die IDE

Beitrag von schnullerbacke »

Die Idee dahinter ist eigentlich recht einfach. Im Quell-Editor steht die Tastenkombination:

CTRL+SHIFT+C

zur Verfügung. Die erzeugten Quellen sind aber etwas unbefriedigend. Z.B. lassen sich keine Header über den Funktionen oder Prozeduren einfügen, das gilt auch für die Methoden von Klassen.

Nun könnte man anstatt einfach den Quellcode zu produzieren einen Dialog namens Template-Manager aufrufen, der einem die Möglichkeit verschafft das Template um Header und Macros zu erweitern, die dann automatisch in den Quellcode übernommen werden. Sowas ist bei professionellen Projekten ohnehin Pflicht und ist meistens ne Menge Tipparbeit. So ein Methoden-Header könnte als Macro etwa so aussehen:

Code: Alles auswählen

{---------------------------------------------------------------------------------------
   Unit     : %UNITNAME%
   Class    : %CLASSNAME%
   Method   : %METHODNAME%
   Arguments: %ARGUMENTS%
   Result   : %RESULT% 'nur für Funktionen'
 
   Author   : %USERNAME%
   Date     : %DAY%-%MONTHSHORTNAME%-%YEAR%
 
   Subject:
 
   Comment:
----------------------------------------------------------------------------------------}


Die Makros sind die zwischen den %% eingeschlossenen Angaben und werden vom Template-Manager durch die entsprechenden Werte ersetzt. Im eigentlichen Quellcode muß dann nur noch Subject und Comment ausgefüllt werden.

Für %ARGUMENTS% wird die Argument-Liste aus dem Methoden-Interface eingesetzt (bei Prozeduren und Funktionen entsprechend), das kann dann noch um entsprechende Hinweise und Kommentare erweitert werden.

Ein Code-Template könnte dann ebenfals durch die entsprechenden Macros erweiter werden. Damit könnte man dann z.B. Konstanten beschreiben oder sogar Zuweisungen zu Variablen oder Konstanten deklarieren (z.B. für ein Error-Log den Info-String zusammenbauen). Etwa so:

Code: Alles auswählen

procedure %CLASSNAME%.%METHODNAME%(%ARGUMENTS%);
const
  procName = '%UNITNAME%.%CLASSNAME%.%METHODNAME%';
 
var
  ArgInfo : TStringList;
  ArgCount: integer;
  LogInfo : string;
 
  procedure CreateArgInfo;
  var
    info: string;
  begin
     ArgInfo:= TStringList.Create;
     // info:= 'ArgName' + ' = ' + (TypeCast(ARGUMENT)); nur als Beispiel
     // %ARGUMENTS%
     // ArgCount:= ArgInfo.Count;
  end; // of CreateArgInfo
 
  procedure CreateInfoString;
  var
     i: integer;
  begin
     LogInfo:= procName + #13#10;
     for i:= 0 to ArgCount - 1 do begin
        LogInfo:= LogInfo + ArgInfo[i] + #13#10;
     end; //  for i:= 0 to
  end; // of CreateInfoString
 
begin
   {procedure body of %METHODNAME%}
 
end; // of %CLASSNAME%.%METHODNAME%


Das ist nur ein denkbares Szenario, nimmt einem aber massenweise lästige Arbeit ab und und sorgt für gleichbleibende Schreibweise der Argumente. Da die Argumentliste sich später ändern kann braucht man aber jeweils nur wenige Zeilen ergänzen oder löschen.

Christian ist fast schon überzeugt, müssen wir nur die lazarus-Entwickler noch überzeugen. Aber das Dings hat was, denk ich so bei mir.

Anbei der Manager-Rumpf zur Ansicht als Attachement:
Dateianhänge
Template-Manager.zip
Template-Manager als Rohfassung
(7.82 KiB) 76-mal heruntergeladen
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Christian ist fast schon überzeugt


lol, na vollends was sagt die mailinglist ?
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

schnullerbacke
Beiträge: 1187
Registriert: Mi 13. Dez 2006, 10:58
OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
CPU-Target: AMD A4-6400 APU
Wohnort: Hamburg

Beitrag von schnullerbacke »

@Christian

Weiß ich noch net, das ist irgendwie auch schwierig sich da anzumelden. Habsch nun schon gemacht, ne Antwortmail kommt da nicht, das man die vervollständigen könnte. Das müssen die wohl mal ihre Seite überarbeiten, damit das ohne Probleme geht.

Nun muß ich allerdings am Rande vermerken, ich benutz so komische Sachen wie den Thunderbird und Firefox. Vielleicht sind die ja schuld dran, daß das alles so schwierig ist.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Glaub ich weniger und das sind keine komischen Sachen sondern fast schon Standard :p Ich würde mal meinen die meisten hier benutzen diese "komischen Sachen"

(/me der gerade dabei ist die Rechtschreibprüfung im Firefox lieben zu lernen)

schnullerbacke
Beiträge: 1187
Registriert: Mi 13. Dez 2006, 10:58
OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
CPU-Target: AMD A4-6400 APU
Wohnort: Hamburg

Beitrag von schnullerbacke »

@Christian

Muß ich dem webmaster wohl mal nen Hinweis geben, das die Subscribermail von der Mailinglist nicht kommt. Ist schon irdendwie merkwürden.

Ich hatte den Link auf das Topic hier direkt an Mattias geschickt, ersatzweise, aber ob das was bringt wage ich zu bezweifeln.

Du warst das ja bestimmt, der den Download gemacht, mir ist noch so nebenbei eingefallen, das man für Klassen da auch noch nen TreeView ganz links einbauen kann. Im Idealfall könnte man dann für die Methoden unterschiedlich Header und Templates auswählen.

Aber man kann an dem Rumpf schon sehen, wie das aussehen könnte. Wäre auch kein allzugroßer Aufwand, das zu basteln. Nur auf die Schnittstelle muß man sich halt einigen.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

LoL seh ich auch gerade ja ich war das habs mir aber noch nichma angeschaut :p
Das Matthias hier reinschaut bezweifel ich auch er hat ja immer kaum Zeit auf Mails zu antworten.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Antworten