1

私は2つのプラグインを作成しました:

1-4つのプロジェクトで構成されるXtext2.3.1に基づくテキストエディタ。1つ目はソースプロジェクト、2つ目はUI、3つ目はSDK、最後はテストです。このプロジェクトをプラグインとしてエクスポートし、Eclipse 4.2(Juno)内で使用する方法を知っています。このエディタは、「myDSL」の拡張機能で動作します。

2-[ファイル]->[メニュー]からトリガーされ、拡張子が「myDSL」のファイルを作成するウィザード。

これら2つのプラグインプロジェクトを1つにまとめたいと思います。Xtextドキュメントの次のセクションを読みました:Eclipse内のセットアップ-Equinox(OSGi)。残念ながら、私はそれを動作させることができませんでした。まず、2つのプロジェクトのファイルを結合する必要があるのか​​、それともXtextプロジェクトを他のプロジェクトの依存関係として追加する必要があるのか​​わかりません。どちらの場合でも、Xtextプロジェクトのどれを検討する必要がありますか?メインプロジェクトまたはUIプロジェクト?(実際、私はそれらの正確な違いを知りません)。<MyDsl>ExecutableExtensionFactory第二に、何に置き換えるべきかわかりません。

4

1 に答える 1

2

Xtext プロジェクトと自分のプロジェクトを組み合わせるには、次のことを知っておく必要があります。

  • «mydsl».ui プロジェクトには、すべての GUI (エディタなど) と Eclipse 固有のもの (登録済みビルダーなど) が含まれています。«mydsl» プロジェクト (後で: コア) には基本的にパーサーが含まれますが、これはプレーンな Java アプリケーション (Eclipse 環境外) で使用できます。これは、Eclipse ウィザード コードをマージしたいので、ui プロジェクトに関心があることを意味します。
  • コードを ui プロジェクトからウィザード プロジェクトに移動する場合は、コア プロジェクトの mwe ファイルも更新します。生成された ui プロジェクトを参照し、文法を更新してプロジェクトを再生成するときに必要です。既存のコードを ui プロジェクトに移動する場合、これは必要ありません。
  • 最後に、ExtensionFactory について: これは、Eclipse 拡張メカニズムを使用してクラスをインスタンス化するときにクラスを準備するための Eclipse メカニズムです。«MyDSL»ExtensionFactory は、Xtext (または Google Guice) の依存性注入マジックが機能するために必要です。これは、(1) 拡張機能 (Eclipse ウィザードなど)を定義し、 (2) 依存性注入を使用して拡張機能内に Eclipse サービスを追加する場合にのみ使用する必要があります。
  • 必要に応じて、UI プロジェクトとウィザード プロジェクトをマージすると、Xtext で生成された ExtensionFactory をさらにカスタマイズせずに再利用できます。

ただし、コードを明示的にマージせずにパッケージ化するだけの場合は、生成された SDK 機能でウィザード プロジェクトを参照し、既に述べたように結果をエクスポートするだけです。このようにして、ユーザーはプロジェクトを一緒に使用できますが、コードのさまざまな側面を個別に維持できます。

この場合、Xtext サービスが必要な場合は、ExtensionFactory を手動で拡張し、内部のバンドル参照を置き換えますが、それ以外の場合は使用できます...

于 2013-01-10T20:07:47.687 に答える