======================
DMDL Editorプラグイン
======================
この文書ではEclipseのDMDL Editorプラグインを紹介します。
DMDL Editorプラグインとは
==========================
`DMDL EditorX`_ は ひしだま氏が開発しているOSSのEclipseプラグインで、DMDLスクリプトファイルに関する編集機能 [#]_ を追加します。
まだ開発途上ですが、DMDLの編集が便利になります。
* DMDLスクリプトのキーワードに色が付きます。
* 別のデータモデルを参照しているデータモデルにおいて、参照元データモデルへジャンプすることが出来ます。
* GradleやMavenを使わずにEclipse上でDMDLスクリプトのコンパイルを行い、Javaのデータモデルクラスを生成することが出来ます。(現在は :doc:`Shafu <../shafu>` で行うことが出来ます)
* Javaソース上のデータモデルのクラス名あるいはメソッド名からDMDLスクリプトファイルへジャンプすることが出来ます。
.. [#] 機能やインストール手順の詳細については、 `DMDL EditorX`_ のサイトを確認してください。
.. _`DMDL EditorX`: https://github.com/hishidama/xtext-dmdl-editor
DMDL Editorプラグインのインストール
===================================
前提条件
--------
DMDL Editorプラグインを利用するには、Eclipse環境に `Xtext `_ がインストールされている必要があります。
Jinrikisha バージョン |version| に同梱されているEclipseにはXtextが含まれていますが、異なるEclipse環境を利用する場合、必要に応じてXtextをインストール [#]_ してください。
.. [#] Xtextのインストールについては、 `Xtextのダウンロードサイト `_ などを確認してください。
インストール手順
----------------
1. Eclipseを起動します。
2. Eclipseのメニューバーの :guilabel:`ヘルプ(Help)` から :guilabel:`新規ソフトウェアのインストール(Install New Software)` を選択し、インストールダイアログを開きます。
3. :guilabel:`作業対象(Work with)` の右側にある :guilabel:`追加(Add)` ボタンを押して以下のリポジトリの情報を入力し、 :guilabel:`OK` ボタンを押します。
.. list-table::
:widths: 4 6
:header-rows: 1
* - 項目
- 説明
* - :guilabel:`名前(Name)`
- サイトの名前(例: ``dmdl-editor`` )
* - :guilabel:`ロケーション(Location)`
- ``https://hishidama.github.io/xtext-dmdl-editor/site/``
4. :guilabel:`名前(Name)` に表示されている :guilabel:`DMDL EditorX` にチェックを入れます。
5. :guilabel:`次へ(Next)` ボタンを押していき、最後に :guilabel:`完了(Finish)` ボタンを押すと DMDL Editorプラグインがダウンロード・インストールされます。
6. Eclipseを再起動します。
.. note::
DMDL EditorXはXtextの機能を使っており、DMDL EditorXを使用するEclipseプロジェクトでXtextが有効になっている必要があります。
(通常のJavaプロジェクトではパッケージエクスプローラー上のプロジェクトのアイコンにJマークが付いていますが、Xtextが有効になっているとXマークに変わります)
DMDL EditorXのインストール後、dmdlファイルを初めて開いた時などにXtextネイチャーがEclipseプロジェクトに登録され、Xtextが有効になります。
.. tip::
:doc:`Shafu <../shafu>` の :guilabel:`Eclipseプロジェクト情報の再構成` や gradlewコマンド でEclipseプロジェクト情報を再構成すると、Xtextネイチャーの情報がクリアされ、Xtextに依存した機能が使えなくなります。
この場合は、いずれかのDMDLスクリプトファイルを新規に開く(開いている場合は一旦閉じてから再度開く)と再び使えるようになります。
.. tip::
Asakusaアプリケーションのbuild.gradleに以下の定義を追加しておくと、Eclipseプロジェクト情報の再構成を行ってもXtextネイチャーの情報がクリアされなくなります。
.. code-block:: groovy
eclipse {
project {
natures 'org.eclipse.xtext.ui.shared.xtextNature'
}
}
DMDL Editorプラグインの機能の紹介
=================================
DMDL EditorXには色々な機能がありますが、簡単に役立つものを紹介します。
参照元データモデルへのジャンプ
------------------------------
別のデータモデルを参照しているデータモデルにおいて、参照元データモデルの定義場所へジャンプする機能です。
例えば以下のような集計モデルのモデル定義において、 ``Ctrl`` キーを押しながら ``joined_sales_info`` をマウスでクリックすると、joined_sales_infoが定義されているモデルの定義行へジャンプします。
.. code-block:: text
summarized category_summary = joined_sales_info => {
...
}
DMDLソースの整形
----------------
DMDLのソースの整形を行う機能です。
``Ctrl + Shift + F`` を押すとソースが整形されます。
DMDLのコンパイル
----------------
DMDLのコンパイルを行う機能です。
.. note::
通常は `GradleやMavenのコマンドでDMDLのコンパイル `_ を行ってJavaのデータモデルクラスを生成しますが、
DMDL EditorXではGradleやMavenを使わずにコンパイルすることが出来ます。
ツールバーの「DMDL compile」のアイコンをクリックすると、コンパイルが実行されます(コンソール上にコンパイルメッセージが表示されます)。
.. note::
現在は :doc:`Shafu <../shafu>` でDMDLのコンパイルを行うことが出来ますが、DMDL EditorXでコンパイルを行うと、DMDLスクリプトファイルにエラーがあった場合にEclipseの :guilabel:`問題ビュー` にエラー内容が表示されます。そこからエラー箇所へジャンプすることも出来ます。
JavaソースからDMDLへのジャンプ
------------------------------
Javaのソースコード上のデータモデルのクラスやメソッドから定義元のDMDLへジャンプする機能です。
例えば以下のような演算子クラスのソースコードにおいて、 ``ErrorRecord`` (データモデルのクラス名)や ``setMessageAsString`` (データモデルのメソッド名)を ``Ctrl`` キーを押しながらマウスでクリックすると、ジャンプ先の選択肢が表示されます。
ここで「 :guilabel:`Open DMDL` 」を選ぶとDMDLスクリプトファイルへジャンプします。
.. code-block:: java
@Update
public void setErrorMessage(ErrorRecord record, String message) {
record.setMessageAsString(message);
}