© DrHitch/Shutterstock.com
DSL mit Xtext/Xtend

2 Luecken(x)text, jetzt flexibler und mit Referenzen


Im ersten Kapitel dieses shortcuts haben wir die verschiedenen Möglichkeiten erforscht, mit denen Xtext-basierte Editoren den Benutzer bei der Nutzung von Vorlagedateien unterstützen. Dabei waren sowohl das Verzeichnis als auch die Dateiendungen fest vorgegeben. Dies werden wir im ersten Schritt unserer heutigen Arbeiten mit Lxt1 aufheben, sodass jeder Nutzer seine eigenen Vorlagen nutzen kann. Danach werden wir mit Lxt2, wie bereits im shortcut "DSL mit Xtext/Xtend. 4GL mit externem Quellcode" dargestellt, neben einfachen Strings auch die Nutzung von Referenzen bei der Festlegung von Werten für die Platzhalter in unsere DSL einbauen.

Ausgangslage: Vorlagedateien schon im DSL-Editor auswerten und nutzen

Viele Anwendungen wie MS Office nutzen spezielle Vorlagedateien, um die Anwender bei ihrer täglichen Arbeit zu unterstützen; Dateiendungen wie .dot oder .xlt sind den meisten wohlbekannt.

Für unseren Codegenerator haben wir den Aufbau der Vorlagedatei nach dem allgemeinen Grundsatz der Eclipse-Templates aufgebaut, indem wir die Platzhalter durch ${placeholdername} kennzeichnen. Das Vorlageverzeichnis steht auf derselben Stufe wie das Eclipse-Verzeichnis und heißt !lueckenxtext_home, die Dateiendungen .txt.

Mit den Änderungen können wir auch andere Verzeichnisnamen bzw. Dateiendungen nutzen und so jedem Entwickler seine individuellen Vorlagen zur Verfügung stellen.

Möglichkeiten der Unterstützung für den DSL-Editor-Nutzer

In unserem DSL-Editor können wir dem Nutzer eine Reihe von Unterstützungen zur Verfügung stellen: Den Content Assistant haben wir bereits kennengelernt, wir werden ihn jetzt wie auch die Validierung und den Quickfix für unsere Zwecke erweitern. Der Quickfix bietet uns die Möglichkeit, angezeigte Fehler automatisch zu beheben. Deshalb müssen wir zuerst eine Fehlersituation schaffen. Die Aufgaben sind wie folgt aufgeteilt:

  • Der Content Assist (STRG + SPACE) zeigt alle Dateien an, die im Vorlageverzeichnis vorhanden sind.
  • Der bei Fehlern nutzbare Quickfix (STRG + 1) analysiert die Platzhalter der jetzt ja feststehenden Datei und stellt eine Rohfassung der Angaben bereit.
  • Der Validator stellt einen Fehler fest, wenn keine Wertepaare angegeben sind, um den Aufruf von Quickfix in unserem DSL-Editor zu ermöglichen.

Lxt1: Eine flexible Spezifikation von Vorlagenverzeichnis und Dateityp

Nicht jeder möchte mit den Vorlagen aus dem allgemeinen Verzeichnis arbeiten. Wir benötigen deshalb eine Möglichkeit, in unserer DSL das Vorlagenverzeichnis bzw. d...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang