2013-02-06 8 views
7

In meiner aktuellen Arbeit möchte ich xText-Editor-Unterstützung (wegen seiner Code-Vervollständigung, Syntax high-Beleuchtung) an die Programmierer meiner domänenspezifischen Sprache bieten. Ich habe Grammatik in xText geschrieben.Einzelklick zum Abrufen von xText-Editor-Unterstützung

Um xText-Editor-Unterstützung zu bieten, werde ich Programmierer mit voller Eclipse-IDE mit xText-Plugin (verfügbar auf xText-Website) zur Verfügung stellen. Allerdings bekomme ich xText-Editor-Einrichtung auf Kosten der folgenden manuellen Schritte (wie in 5 Minuten xText Tutorial erläutert).

  1. Die Programmierer gehen müssen Datei -> Neu -> Projekt -> Xtext Projekt
  2. Die Programmierer haben „Hallo Welt“ Beispiel Grammatiken durch meine Sprachgrammatik zu ersetzen.
  3. Sie müssen zu RunAs gehen -> Xtext Artifacts generieren.
  4. Schließlich müssen sie tun: run -> Eclipse-Anwendung, um Editor-Unterstützung zu nehmen. So können sie dsl-Spezifikation schreiben.

Meine Frage ist, dass dort jede mögliche Weise, die (mit minimalem Aufwand) zerstäuben können diese Aufgaben (jede Skript- oder jede andere Sache) in einem einzigen Klick?

+0

Diese Schritte sind nur für das * Testen * des Plugins gedacht, nicht tatsächliche Verwendung. Sie sollten Ihre Grammatik dauerhaft in Eclipse installieren können. –

+0

Danke Sam. Aber wie könnte ich meine Grammatik in Eclipse-Plugin installieren. Irgendwelche Vorschläge/Hinweise? – Pankesh

+0

Entschuldigung, ich habe xtext nicht benutzt; Ich könnte mir vorstellen, dass es irgendwo im Kontext-Menü des Plugins ist. –

Antwort

7

OK Ich bin mir wirklich nicht sicher, ob ich Ihre Frage verstehe. Also werde ich erneut sagen, was ich denke Sie fragen, und beantworten Sie das. Entschuldigung, wenn ich missverstanden habe - lass es mich wissen.

Also - ich glaube, Sie sagen:

  1. Sie haben eine Xtext Grammatik für die Sprache entwickelt
  2. Sie möchten, dass Ihre Benutzer in der Lage sein, den Editor Xtext zu verwenden ist für die Sprache erzeugt
  3. im Moment ist die einzige Möglichkeit, wie Sie dies tun, ist Ihre Benutzer zu emulieren, was Sie getan haben (installieren Sie Xtext, erstellen Sie ein neues Projekt, kopieren in Ihrer Grammatik, führen Sie den Generator, erstellen Sie eine Laufzeit Instanz & dann endlich Erstellen Sie Dateien in Ihrem DSL)

Sie möchten Schritt 3 beheben. Ihre Benutzer können einfach ein neues Projekt erstellen, dann eine neue Datei mit Ihrer DSL-Erweiterung erstellen und mit der Bearbeitung beginnen.

Wenn das stimmt dann ist der einfachste Ansatz ist:

  1. Select File->Export...->Plug-in Development->Deployable Features & klicken Sie auf Weiter
  2. Wählen Sie Ihr DSL-Projekt in der Liste der Funktionen (<your.dsl>.sdk)
  3. Wählen Sie ein Verzeichnis für das resultierende Repository und klicken Sie auf Finish

Eclipse generiert eine installierbare Funktion für Sie im Zielverzeichnis. Sie müssen dann das Repository-Verzeichnis für Ihre Benutzer verfügbar machen, indem Sie eine Stelle veröffentlichen, auf die sie zugreifen können. Dies ist Ihre Repository URL.

Ihre Benutzer dann brauchen:

  1. eine Standard-Eclipse-Distribution installieren (die Modellierungs-Tools eine geeignet ist)
  2. Select Help->Install New Software
  3. Klicken Sie Add ein neues Repository hinzuzufügen, und geben Sie Ihre Repository URL
  4. Wählen Sie Ihre Funktion in der Liste & installieren

Von dort können sie neue Projekte & Dateien erstellen. Wenn sie eine Datei mit Ihrer DSL-Erweiterung erstellen, wird Ihr xtext-generierter Editor automatisch geladen.

Sie können ihre Arbeit noch einfacher machen, indem Sie ein Eclipse-Produkt erstellen. Dazu müssen Sie zuerst eine Produktspezifikation erstellen und dann die File->Export->Plugin Development->Eclipse Product verwenden. Dadurch wird eine eigenständige Eclipse-IDE mit Ihrem Plugin vorinstalliert. So können Ihre Benutzer einfach installieren und gehen. Dafür gibt es ein gutes Tutorial here.

hth.

1

Es gibt drei Optionen, die eine solche Automatisierung für Sie tun würde:

1- Verwenden Sie eine allgemeine Makroaufzeichnung Software wie AutoHotkey oder Sikuli Script, so dass Sie diese Schritte aufzeichnen und wiedergeben sie zurück. Sie können auch ähnliche Software in this Wikipedia article

2- Verwendung finden Eclipse Makro-Plugin wie Practically Macro, die ein Open-Source-Plugin für Eclipse

3- Schreiben Sie Ihre eigene Implementierung mit Hilfe von Java Robot Klasse ist die kann einfach Ereignisse generieren, die für die Automatisierung benötigt werden, wie keyPress, mousePress und mouseMove

+0

Obwohl dies im Allgemeinen eine hilfreiche Antwort ist, verwendet der Fragesteller eine falsche Reihenfolge für die Bereitstellung von Xtext-Projekten. Einen Weg vorzuschlagen, diese Sequenz zu automatisieren, ist hier eine sehr schlechte Idee. – Oak