xtext で include

DSLを作ってて、共通的な定義は、ファイルを別にして、include して使うような感じで、そのモデルを参照しつつ…とかしたい。

いろいろ探したけど、まだ無いぽい。
include は、DSLでパースする前に、その場所にテキストを入れ込むような(まさにインクルードする)感じにして、プリコンパイルする様にするほうが良いってどっかに書いてあった。

確かにそうなんだけど…それを含めた、DSLにしないとだし…
xtext のエディタ的には、なかなか重そう。(やったとしたら)
そうでもないのかね~?

これとは別に、DSLを派生させて作るみたいなことは出来るから
それはそれで良いのかも?(インクルードできれば…)

とりあえず、したいのはコンテンツアシスト時に別ファイルに定義している内容からリストアップ。
なので、プリコンパイルの制御はちょっと大変そうだし、単にプロジェクトにある別のDSLモデルから情報を引っ張ってこれるようにしようと考えた。

モデルは、EMFのEObjectとかになってるので、ResourceSetとかで、URIを指定すれば
必要なモデルを読み込めるみたい。

ただ、EMFのURIの使い方がいまいち理解しきれなくて…とりあえず、Stringにはなるので
適当に、編集中のファイルと同じ位置にある、特定のファイルから読めるようにしてみた。
(URIのファイル名の部分だけ置き換え)

TestDSL2ProposalProvider.java

で、とりあえず読めるみたいです。

これは、毎回読むのかな~?とか思ったり思わなかったりですが、とりあえず今はこのままやっておこう…

カテゴリー: RPGMKDT, イベントエディタ タグ: , パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です