Asakusa Framework Advent Calendar 2015の18日目です。
拙作DMDL EditorXの機能紹介、次はジャンプ機能です。
DMDLでは、他のデータモデルを利用して定義を行うことが出来ます。
例えば以下の例だと、barはfooの項目に新たな項目を追加する形になります。
foo = {
column1 : TEXT;
};
bar = foo + {
column2 : TEXT;
};
このとき、使用しているデータモデル名(上記の例で下線が引いてある箇所)にカーソルを合わせてからF3キーを押すと、定義元のデータモデルにジャンプすることが出来ます。
もしくは、Ctrlキーを押しながらマウスでデータモデル名を左クリックすることでもジャンプできます。
summarizedやjoinedのデータモデルでも同様のことが出来ます。
summarized sum = foo => { any column1 -> column1; count column1 -> count; } % column1;
この場合、左側のプロパティー名にカーソルを合わせてF3キーを押すと、定義元のプロパティーにジャンプすることが出来ます。
もうひとつ、参照しているデータモデルではなく、データモデルを定義している側のデータモデル名からもF3キーやCtrl+左クリックでジャンプすることが出来ます。このジャンプ先は、DMDLをコンパイルして出来るデータモデルクラスです。
しかしデータモデルクラスを見てやりたい事や嬉しい事は特に何もないので、この機能は要らないかなーと思っています(苦笑)
参照しているデータモデルやプロパティーへの定義元へのジャンプ機能は、DMDL EditorXが利用しているXtextの機能です。
同様のXtextの機能として、データモデルやプロパティーの改名機能があります。
名前を右クリックしてコンテキストメニューを開き、「Rename Element」を選ぶと、名前を変更することが出来ます。このとき、その名前を参照している箇所があれば、それらも連動して変更されます。
ただし、DMDLをコンパイルして生成されるデータモデルクラス名やメソッド名等は改名されません。
(Eclipseの機能にクラス名やメソッド名の変更機能はあるので、それを利用すれば出来なくはないかもしれないですが、Xtextと連動させる方法がよく分からないので、やっていません。
また、仮にそれは出来たとしても、テストデータのExcelファイルに書かれている名前やOperator内の@KeyやExporterのorder等も変えたくなりそうで、関係している箇所を挙げていくだけでもけっこう大変そうです。
それらはまだしも、データモデル名を変えると、directio.csv等によって生成されるクラスの名前も変わります。DMDL EditorXは「コンパイルしてどんなクラスが生成されるか」までは把握していないので、そこまで追うのはかなり無茶です…)
※コメント投稿者のブログIDはブログ作成者のみに通知されます