TortoiseSVN in der IDE?

Für Fragen rund um die Ide und zum Debugger
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 »

Steht doch alles auch in der datei ?!

Das hier drunter ist eine definition daraus wenn du im code classc eingibst und Strg+c drückst wird es durch die definition ersetzt !

Code: Alles auswählen

[classc | class declaration (with Create/Destroy overrides)]
T| = class(T)
private
 
protected
 
public
  constructor Create; override;
  destructor Destroy; override;
published
 
end;
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 »

Jupp, aber leider benutzt er die Schablonen nicht, wenn man im Interface einen Funktions- oder Prozedurrumpf deklariert und dann Strg+Shift+C macht. Das wirkt irgendwie etwas inkonsequent.

Da hätten die Entwickler gut daran getan, dann auch die Schablonen aufzurufen. Ich weiß nicht ob Du GExperts für Delphi kennst? Die haben das konsequenter gelöst. Allerdings steuern die das über ne XML-Datei und stellen dafür zusätzliche Makros zur Verfügung, die z.B. so etwas wie ne Datumsangabe, Username, Unitname, Klassenname, Funktions- oder Prozedurname usw. in den Text einfügen.

Sowas brauchen wir hier doch auch, dann werden die Code-Tools erst richtig schick.

Dann könnte sowas als Schablone so aussehen:

Code: Alles auswählen

{--------------------------------------------------------------
  Author : %PROGRAMMERNAME%
  Date   : %DAY%-%MONTHSHORTNAME%-%YEAR%
 
  Unit     : %UNITNAME%
  Function : %PROCNAME%
  Arguments: %ARGUMENTS%
  Result   : %RESULT%
 
  Subject :
 
  Comment:
---------------------------------------------------------------}

function |(): ;
const
  cProcName = '%UNIT%.%PROCNAME%';
 
  function SetErrorParams: string;
  begin
    Result:= '';
    // '%ARGUMENTS%'
  end; // of function SetErrorParams: string
 
begin
  {function body}
end;


Also ein richtiges Code-Template, in dem Du immer wieder verwendete Sachen schon komplett vorgeben kannst. Das spart massig Zeit und hat zudem den Vorteil, das man bei größeren Projekten eben auch mit einem ähnlichen Template ein Changelog da reinstellen kann, Autor und Datum + Uhrzeit werden im Template entsprechend ersetzt und du trägst halt nur noch ein was du als Remark da brauchst. Etwa so:

Code: Alles auswählen

{------------------------------------------------------------------
  Author : %PROGRAMMERNAME%
  Date   : %DAY%-%MONTHSHORTNAME%-%YEAR%:%TIME%
  Subject:
-------------------------------------------------------------------}


Das wäre doch was oder?
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 »

Also bei mir funktioniert des, ich hab in dem Code Schablone Dialog deinen Funktionsheader bei function eingefügt und schreibe im editor function, drücke dahinter Strg+J und schwupps hab ich die funktionsdeklaration mit deinem kommentarheader ! Ich versteh das problem immer noch nicht. Indem du makrus einfügst kannst du dann auch datum und uhrzeit und so weiter mit benutzen in den Templates. Du kannst auch noch n bug report einstellen mit dem funktionswunsch den namen des angemeldetetn benutzers als makro haben zu wollen und einem code schnipsel das plattformunabhängig den benutzernamen ermittelt ich wette das ist innerhalb 2 tage intigriert.
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 »

Aber nicht wenn man folgendes macht:

Code: Alles auswählen

type
 
  TMyClass = class(TSomeClass)
  private
    // hier werden Methoden deklariert
  end;
 
function BlaBla(ArgList): SomeResult;
 
implementation
 
end;


Nun mach das mal in der Klasse mit Strg+Shift+C oder wenn Du das Caret vor die Funktion stellst. Dann kommt mal nix was ein Header, bau ich den hinterher da drüber, dann muß ich das ganze Geschisse von Hand eingeben. Genau das stört. Und ich kriege nicht raus wie der in diesem Fall den Code produziert oder wo die Vorlagen dafür sind.

Es würde ja schon reichen, wenn man dafür die Einstellungen so ändern könnte das sie auf ein eigenes Tool verweisen, das die Arbeit übernimmt. Aber wo finde ich das nun wieder?

Dafür müßte aber ne generalisierte Schnittstelle her, die vom UnitEditor(den habsch ja schon gefunden) mit den Umgebungsparamtern bestückt wird, würde ja schon als String reichen den man parsen kann und das Template entsprechend der Makros ausfüllt.

Die SysUtils ham mer ja, wenn die die gleich Funktionalität wie bei Delphi hat, kann man den Usernamen aus den Systemvariablen holen. Die Codetool-Options müssen lediglich um die Eingabe für den aktuellen Benutzer erweitert werden. Der wird dem SystemUser vorgezogen wenn er da ist. Das wäre dann auch noch schnell gemacht.

Der Witz ist halt, das man in diesen Fällen nur noch Subject und Comment ausfüllt, alles andere ist einfach da und schwupps.

Normal müßte man wohl irgendwo eine Klasse:

Code: Alles auswählen

TCodeToolMakro = class(TObject)
  private
    FMakro : string;
  public
    function ProduceTemplate(AParams, ATemplate, AMakro: string): string;
  published
    property ThisMakro: string read FMakro write FMakro;
  end;


Oder so ähnlich. AParams in ProduceTemplate muß dann halt den Unitnamen, Usernamen und den Funktionskopf oder eben den Klassennamen und den Methodenrumpf enthalten. Dann wird das Template geparst und die Makros entsprechend ersetzt. Sind ja nun keine Unmenge.
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 »

Jetzt weiss ich was du willst du willst die automatisch generierten { Meineklasse } durch deine eigenen ersetzen, Schreib das mal bitte an die mailinglist aber beschreib das bitte n stück genauer damit die nich erst rätzelraten müssen ich denke aber das matthias das auch für sinnvoll erachten wird.
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

Er hat es,
Mein Gott,
er hat es.

Es grünt so grün...

Soll ich den entspechenden Dialog kurz basteln damit sie gleich ne Vorlage haben wie man das in etwa machen könnte?
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,

send erstmal die Email an die liste und schau mal was sie sagen, oder mach nen bugreport als featurerequest. Irgendwer meldet sich auf jeden fall drauf.
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 »

Naja,

nu isser schon halbfertig. Könnte man ja als Snapshot da reinmachen. Kann auf jeden Fall ein mächtiges Instrument werden. Z.B. gleich Templates neu erstellen oder auch Property-Header mit rein. Könnte man direkt für die Doku benutzen oder Subject aus dem Header für die Help benutzen.

Aber egal, gibt es für lazarus irgendwo brauchbare XML-Kompos mit denen man die Nodes und ähnliches visuell basteln kann? Ich bin doch immer so stinkenfaul und hab keinen Bock sowas immer von Hand zu machen.
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 »

Das hat doch nix mit Lazarus zu tun gibt sicher unter Linux programme die das machen unter Windows gibt´s auch genug.
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

Bugreport geht nix oder ich bin zu blöd dazu. Kriege ne Fehlermeldung bei dem Link:

main_page.php not found
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 »

Hast du dich angemeldet ? (zuerst logout da du als benutzer gast angemeldet bist) Dann registrieren und dann gehts bestimmt :)
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 »

lol,

da muß man erstmal drauf kommen, das man sich wo ausloggen muß ohne das man sich eingeloggt hat. Kleiner Hinweis täte da wohl gut, den gibts nirgends.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

Antworten