# xText Datei verstecken



## pobermann (14. Jul 2015)

Hallo,

ich habe lange gesucht aber leider keine Antwort auffinden können.

Bietet Xtext auch eine Möglichkeit an, vordefinierte Vorlagen beim erstellen eines Projektes automatisch mit zuladen? Ich füge momentan in das neu erstellte Projekt eine separate Datei und verwende von dort einige Definitionen für die Cross References (siehe Bilder). 

Mein Wunsch wäre es hierbei, dass die Vorlage beim arbeiten mit dem Editor für den Benutzer unsichtbar bleibt, aber dennoch auf die Attribute in der Vorlage Datei zugreifbar ist.

Wenn Xtext das anbietet, kann ich auch die Vorlage Datei fest codieren, da diese sich nicht ändern wird und immer gleich bleibt.

Ich würde mich auf eine Antwort sehr freuen.

Vielen Dank


----------



## lam_tr (15. Jul 2015)

Hallo probermann,

willst du eigentlich was xtext spezifirsches oder eher was customizes?

So wie es sich anhört willst du ein Eclipse Projekt anlegen und beim Anlagen das schon xtext-Dateien mitgeliefert werden? Falls dies der Fall ist, würd ich dir eher empfehlen ein Wizard zur Erstellung von neues Projekt empfehlen und dort die Datei mitreinkopieren.

Sonst, erläutere etwas detailierter was du haben willst.

Gruss lam


----------



## pobermann (15. Jul 2015)

Hallo lam,

danke für deine Idee. Es würde tatsächlich mit einem Wizard auch funktionieren.

Schöner wäre es natürlich, wenn die vordefinierten Sachen (Bibliotheken) im Xtext Framework fest kodiert werden können, somit muss der Benutzer beim starten und Anlegen eines Projektes nicht mehr drauf achten und könnte auf die Attribute in der Bibliothek direkt zugreifen bzw. referenzieren.

Die Bibliothek Datei könnte fest im Xtext kodiert werden, leider weiß ich aber nicht, an welcher Stelle und vor allem wie. 

Ich weiß auch nicht, ob mein vorhaben unter Xtext realisierbar ist.

Gruss pobermann


----------



## lam_tr (15. Jul 2015)

Hallo pobermann,

ich kann den Workflow immer noch nicht ganz nachvollziehen.

Du erstellst eigentlich kein xtext-projekt sondern, das Projekt wird zu ein Xtext-Projekt (Project-Nature-Description) gemacht sobald die DSL-Datei in deinem Projekt detectiert wird. D.h. wenn du die DSL-Datei im Editor öffnest wird gefragt ob dein Projekt zu Xtext-Projekt gemacht werden soll. 

Wann soll dann deine "Bibliothek" hinzugefügt werden?

Beim erstellen der Projektordner? Beim Konvertieren des Projekts zu Xtext Projekt? Beim Anklicken der DSL? 

Spezifiziere an welcher Stelle die Biblio generiert weden soll.

Gruss lam


----------



## pobermann (16. Jul 2015)

lam_tr hat gesagt.:


> Beim erstellen der Projektordner? Beim Konvertieren des Projekts zu Xtext Projekt? Beim Anklicken der DSL?



Hallo lam,

ich würde die Bibliothek am liebsten schon bei der Entwicklung der DSL im Xtext Framework fest verankern.

Der Benutzer sollte einfach die eigenständige Eclipse Product (Xtext mit dem eigenen DSL integriert) starten, eine Datei anlegen und die Referenzen nutzen, welches in der Bibliothek definiert ist.

Derzeit wird in dem eigenständigen Editor, erst ein Projekt/Datei angelegt und anschließend in das Projekt leider die Bibliothek manuell hinzugefügt.

Beispiel (siehe Bilder oben):

In der Datei allName.mydsl1 wurden bereits drei Namen (William, James und Georg) erstellt.

Ein Benutzer startet den Editor, erstellt ein Projekt und anschließend eine Greeting.mydsl1 Datei. Da die Grammatik „Hello“ ein Referenz auf einen Namen wartet, muss die Datei allName.mydsl1 im selben Projektordner vorhanden sein. Wenn die allName.mydsl1 nicht in dem gleichen Ordner ist funktioniert das ganze nicht, weil kein Name bisher definiert/erstellt worden ist.

Kurzgefasst: Gibt es bei Xtext eine Möglichkeit, bestimmte Objekt (allName.mydsl -> William, James und Georg) bereits bei der Entwicklung anzulegen?

Gruss
pobermann


----------



## lam_tr (16. Jul 2015)

Hi du,

ich denke so einfach ist es nicht. Dem Bild nach gehe ich davon aus dass du ein ganz "normales" Projekt ohne Java machst. Vielleicht kannst du im Xtext Workflow *.mwe Datei das einstellen.

Also folgendes, du könntest beim Erstellen eines neuen Projekts die Datei mitliefern (hinkopieren) indem du den Handler von dem "neues Projekt erstellen" anguckst und erweiterst. Oder du kannst wie bei Xtend Entwicklung so vorgehen, wenn du Xtend Klasse erstellst, fehlen ja die APIs, im Editor kannst du dann sagen "Add required Libraries to Project" oder ähnliches und kopierst beim betätigen deine Bibliothek dahin.

Gruss lam


----------

