Forum: Compiler & IDEs Projekt und Code Templates für Eclipse


von Sebastian B. (mircobolle)


Lesenswert?

Hallo zusammen,

aktuell beschäftige ich mich gerade mit Eclipse und dem C Plug-In CDT.

Für meine Projekte würde ich nun gerne automatisch eine Ordner-Struktur 
generieren und verschiedene benötige Header-Files in die richtigen 
Ordner kopieren.

Das wäre also Ziel Nr.1. Ziel Nr.2 ist es, wenn ich eine neues C oder H 
File erstelle, dass dann automatisch ein Header generiert wird in dem 
Autor, Datum und der Name des Files eingetragen wird.

Zu Ziel Nr. 1:
Ich habe bereits etwas über die Möglichkeit gelesen, einen eigenen 
Wizard für Eclipse über XML Dateien zu generiere. Hat jemand hier schon 
Erfahrungen gemacht oder kennt nähere Infos?

Zu Ziel Nr. 2:
Ich weiß, dass es die Möglichkeit gibt Code Templates anzulegen. Kennt 
jemand aber eine Möglichkeit die Infos: Autor, Datum und Dateiname 
automatisch bei jedem neu erzeugten File einzutragen?

Ich hoffe, dass wir zusammen hier ein paar nützliche Infos für alle 
zusammen tragen können. Sofern ich etwas neues erfahre, werde ich es 
auch hier posten, werde mich damit ja in nächster Zeit sowieso etwas 
näher beschäftigen.

Falls Interesse besteht, werde ich auch die Infos über Project Templates 
etc. posten, aber vielleicht sind hier ja ein paar Eclipse "Pros" unter 
uns ;-)

Beste Grüße

von Thomas H. (innot)


Lesenswert?

Hallo Sebastian,

ich befürchte, dass Deine Frage in einem Forum zur Programmierung von 
Mikrocontrollern nicht optimal platziert ist.

Wenn es Dir ums Allgemeine geht dann wäre sicherlich die CDT User 
Mailing List ein guter Startplatz: 
http://www.eclipse.org/newsportal/thread.php?group=eclipse.tools.cdt 
oder news:eclipse.tools.cdt

Wenn es Dir um die Integration in ein vorhandenes Eclipse Plugin (z.B. 
AVR) geht, dann solltest Du die Anfrage in den entsprechenden Foren oder 
Mailinglisten machen.


So, und damit Du nicht ganz leer ausgehst hier ein paar Links als 
Ausgangspunkt für weitere Recherchen:

Zu 1:

http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.cdt.doc.isv/reference/extension-points/org_eclipse_cdt_core_templates.html


Zu 2:

http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.cdt.doc.isv/reference/extension-points/org_eclipse_cdt_core_templates.html

Einen Wizard in XML zu schreiben geht nicht, da musst Du schon mit Java 
ran.


Liebe Grüße,

Thomas

von Sebastian B. (mircobolle)


Lesenswert?

Hallo Thomas und danke für deine Antwort.

Ich hatte ja eher befürchtet, dass sich hier überhaupt niemand mit 
Eclipse beschäftigt.

> ich befürchte, dass Deine Frage in einem Forum zur Programmierung von
> Mikrocontrollern nicht optimal platziert ist.
Hier wollen wir Eclipse genau für den Zweck einer allgemeinen 
Programmierplattform für Mikrocontroller einsetzen. Also per Make File 
und IC Hardware Debugger. Als Hardware Debugger wollen wir winIDEA 
einsetzen.

> Wenn es Dir ums Allgemeine geht dann wäre sicherlich die CDT User
> Mailing List ein guter Startplatz:
> http://www.eclipse.org/newsportal/thread.php?group=eclipse.tools.cdt
> oder news:eclipse.tools.cdt
danke, werde mal reinschauen.


> So, und damit Du nicht ganz leer ausgehst hier ein paar Links als
> Ausgangspunkt für weitere Recherchen:
>
> Zu 1:
>
> 
http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.cdt.doc.isv/reference/extension-points/org_eclipse_cdt_core_templates.html
>
Danke für den Link.
Hier habe ich noch etwas zu dem besagten XML Template gefunden:
http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.cdt.doc.isv/reference/extension-points/org_eclipse_cdt_core_templates.html

> Zu 2:

> Einen Wizard in XML zu schreiben geht nicht, da musst Du schon mit Java
> ran.
Bin mir nicht ganz sicher, schau dir mal den Link zu 1.) an.
Code Templates sind gar nicht mal so wild. Mit den vordefinierten 
Variablen wie ${user} oder ${project_name} usw. kann man schon viel 
anfangen um einen ordentlichen Header automatisch zu generieren.

Für Code Templates habe ich die Möglichkeit für Userdefined Variablen 
benutzt... geht auch echt gut. Ich lasse mir z.B. den Kopf einer 
Funktione einblenden fülle die Fehler im Funktionskopf aus, wie z.B. 
"Parameters" ... "Function_Name".. und aus diesen wird dann die 
eigentliche Funktion generiert.
1
//-----------------------------------------------------------------------------
2
// Funktionsname / function name:    ${Function_name}
3
// Beschreibung / desciption:     ${description}
4
//
5
//
6
// Uebergabe / parameters:           ${parameters}
7
// Rueckgabe / return value:         ${void}
8
// Vorbedingung / Preconditions:     ${preconditions}
9
// 
10
// Zeit (Zyklen) / operating cycles: ${cycles}
11
//-----------------------------------------------------------------------------
12
${void} ${Function_name} (${parameters}){ 
13
    ${cursor}
14
}


Weiß jemand wie man in Source Code Templates user defined Variablen 
unterbringen kann? Ich würde gerne den variablen Wert für {Compiler} 
selbst irgendwo hinterlegen und beim Erzeugen eines neues Code Files 
sollte dies dann automatisch im Header eingefügt werden.

Alternative wäre: hart im Template codieren, aber das ist natürlich 
unschön..



Beste Grüße
Sebastian

von Thomas H. (innot)


Lesenswert?

Sebastian,

da Ihr anscheinend ein komplett neues Plugin entwickeln wollt muss ich 
mal kurz fragen unter welcher Lizenz es veröffentlicht werden soll.

Ich könnte sicherlich den einen oder anderen Tipp geben (ich bin der 
Programmierer des AVR Eclipse Plugins), aber das würde ich nur für ein 
Open Source Projekt tun. Für kommerzielle / closed Source Projekte bin 
ich zwar auch verfügbar, aber dann nicht mehr kostenlos.

Thomas

von Sebastian B. (mircobolle)


Lesenswert?

Hallo Thomas,

> da Ihr anscheinend ein komplett neues Plugin entwickeln wollt muss ich
> mal kurz fragen unter welcher Lizenz es veröffentlicht werden soll.
Da wir in erster Linie Elektronik und die damit verbundene Software 
entwickeln sind wir nicht daran interessiert durch unseren 
Entwicklungsprozess oder unsere Entwicklungsumgebung etwas zu verdienen. 
Deshalb würde ich als Verantwortlicher das Projekt unter die freie GPL 
Lizenz stellen.

> Ich könnte sicherlich den einen oder anderen Tipp geben (ich bin der
> Programmierer des AVR Eclipse Plugins), aber das würde ich nur für ein
> Open Source Projekt tun. Für kommerzielle / closed Source Projekte bin
> ich zwar auch verfügbar, aber dann nicht mehr kostenlos.
Für jeden Tipp wäre ich natürlich dankbar, da ich momentan noch allein 
an diesem Projekt arbeite.

Ich kann noch etwas zum Hintergrund berichten bzw. für was für Eclipse 
einsetzen möchten:

1. Einheitliche Programmierumgebung
2.a Die Nutzung von Code Templates für C Source und Header Files.
2.b Die Nutzung von Templates für einheitliche Funktionsköpfe
3. Eine einheitliche Projektstruktur. Src, Include, Build, Output ...
4. Ein PlugIn um das Make-File an die entsprechende Ordner Struktur 
anzupassen.
5. "Automatisierte" Modul-Tests evtl. mit CppUnit
6. Debuggen und Flashen über Eclipse mit Zugriff auf WinIDEA (über 
Gateway...)

Ich weiß das ganze ist eine größere Sache, aber damit könnte man den 
ganzen Entwicklungsprozess um einiges professioneller gestalten.

Ich habe auch noch keine Idee, wie ich aus dem ganzen EIN PlugIn machen 
könnte, so wie du es getan hast. Dafür fehlt mir noch das nötige 
Hintergrundwissen.

Grundsätzlich bin ich bereit alle Informationen mit der "Community" zu 
teilen. So Dinge wie ich heute über Code Templates usw. herausgefunden 
habe.

-----------------------------------------------
Hast du dich auch schon näher mit Code Templates beschäftigt? So, dass 
alle deine Source Files eine möglichst ähnliche Struktur haben?

- Ein anderes Problem bei dem ich mir heute die Zähne ausgebissen haben 
ist folgender Fall:
Im Header Code Template lasse ich mit den Dateinamen im Header anzeigen, 
nun möchte ich defaultmässig eine doppel Inkludierung durch 
entsprechende Präprozessor Kommandos verhinden. Für diesen Fall würde 
ich aber gerne den Dateinamen in GROSSBUCHSTABEN (z.b. DATEINAMEN_H) 
ausgeben... genau dies habe ich aber nicht hinbekommen.. Es ist eine 
Kleinigkeit aber dennoch ärgerlich.


Wie würdest du das ganze Projekt angehen? Bzw. wo beginnen und ab 
welcher Stelle das ganze dann doch besser in einem Plug-In realisieren?

Ich werde mich die nächsten Tage intensiver mit der Erzeugung von 
Template Files über Java und das "Wizard-Framework".
Hast du dazu gute Quellen bzw. Literatur?

Heute habe ich auch noch das PlugIn von UMLet9.03 in Eclipse 
eingebunden, das ist ein Tool um UML Diagramme zu zeichnen. Es ist ganz 
nett, aber es fehlt mir da der Zusammenhang zum Quellcode.. so könnte 
ich genauso gut einen externen UML Editor benutzen. Hast du Erfahrungen 
mit UML / Eclipse?


------------------------------------------------
Kurz zu meinem Informationsstand:
- Java Kenntnisse vorhanden
- Kenntnisse über Make Files bzw. deren Funktionsweise
- C / C++


Zielplattformen sind u.a. HCS08  HC08  HCS12 / STx ...


Ich hoffe wir können hier für alle was nützliches zusammen tragen! Wie 
gesagt ich will auf diesem Wissen auf keinen Fall sitzen bleiben, ich 
denke so etwas könnte für viele Embedded Entwickler interessant sein, 
die bereit sind Open-Source Projekt zu verwenden!

Liebe Grüße
Sebastian

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.