ひしだまの変更履歴

ひしだまHPの更新履歴。
主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。

DMDL EditorX機能紹介5:コピー

2015-12-19 14:18:11 | PG(分散処理)

Asakusa Framework Advent Calendar 2015の19日目です。

拙作DMDL EditorXの機能紹介、今日はクリップボードへのコピー機能です。

DMDLのエディター上で適当に文字列を選択してCtrl+Cを押すと、クリップボードに文字列がコピーされます。
あるいは、文字列を右クリックしてコンテキストメニューを開き、「Copy」を実行することでもコピーできます。
はい、これは完全にXtextの機能で、自分は何もコーディングしていませんw

コンテキストメニューには「Copy Qualified Name」というメニューもあります。
データモデル名やプロパティー名を選択してこのメニューを実行すると、修飾名がクリップボードにコピーされます。修飾名とは、データモデルの場合は単なるデータモデル名ですが、プロパティーの場合は「モデル名.プロパティー名」という文字列になります。
はい、これもXtextの機能です。

コンテキストメニューの「Copy Qualified Name」の下に「Copy Java Name」というメニューがあります。
データモデル名やプロパティー名を選択してこのメニューを実行すると、モデル名やプロパティー名がキャメルケース(CamelCase)になってクリップボードにコピーされます。
つまり、クラス名あるいはゲッター/セッターメソッド名として使う目的でJavaソースに貼り付ける場合、ちょっと便利ということですw


Eclipseの右側(自分が使っている環境の場合)に表示されるアウトラインページからも、クリップボードにコピーすることが出来ます。
Ctrl+Cは使えませんが、データモデルやプロパティーを選択して右クリックすることにより、コンテキストメニューが開きます。

「Copy Qualified Name」は修飾名をコピーします。

「Copy Names」は今日作った機能(笑)で、データモデルやプロパティーに関して以下のようなデータをクリップボードにコピーできます。

  • Simple Name
    • データモデル名やプロパティー名
  • Java Name
    • データモデル名やプロパティー名のCamelCase
  • Description
    • データモデルやプロパティーの説明(DMDL定義上、ダブルクォーテーションで囲まれている部分)
  • DataType
    • プロパティーのデータ型(データモデルの場合は空文字列)
  • Name,Description
    • データモデル名・プロパティー名と、説明
  • Name,Desc,Type 
    • データモデル名・プロパティー名と、説明と、データ型

「Copy Names」には、「Copy Names (vertical)」と「Copy Names (horizon)」があります。
複数のデータモデルやプロパティーを選択しているとき、縦に並ぶ(改行区切り)か、横に並ぶ(タブ区切り)かが異なります。
(つまり、Excelへ貼り付けやすいようにしてあるという事ですw) 

なお、コピーする内容が無かった場合(例えばDescriptionを指定したが、DMDLに説明が記述されていなかった場合)(あるいは空文字列の場合)は、クリップボードの内容は変化しません。
こういう場合はクリップボードがクリアされた方が良いような気がするのですが、例によってXtextの挙動がこのようになっているので、そのままにしてあります。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

DMDL EditorX機能紹介4:ジャンプ・改名

2015-12-18 00:00:00 | PG(分散処理)

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は「コンパイルしてどんなクラスが生成されるか」までは把握していないので、そこまで追うのはかなり無茶です…)

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

DMDL EditorX機能紹介3:ソース整形

2015-12-17 00:00:00 | PG(分散処理)

Asakusa Framework Advent Calendar 2015の17日目です。

拙作DMDL EditorXの機能紹介、次はDMDLのソース整形です。

Eclipseを使っていると、指がCtrl+Shift+Fを覚えていると思います。そう、いつも無意識に押してしまう、言わずと知れたソース整形です!
(他人が作ったソフトの(プルリクエストを作る為に)ソースをいじっていると、ソース整形を行うと自分が修正した以外の箇所も変わってしまうので、Ctrl+Shift+Fを押さないよう意識して気を付けねばならず、大変です^^;)

DMDL EditorXでも、Ctrl+Shift+Fを押すとソースが整形されます。
ただ、波括弧で囲まれたブロック内の、一番先頭のプロパティーに付けられたコメントにはインデントが入りません。先頭以外では入るのに。

model = {

// コメント(インデントが入らない!)
    foo : TEXT;

    // コメント(インデントが入っている)
    bar : TEXT;
};

実装上は波括弧内だとインデントを入れるように定義しているのですが、先頭のコメントに関してはその適用外のようです。いまいちなのは分かっているんですが、DMDL EditorXで利用しているXtextがそうなっているので、仕方無いのですorz


このソースの整形に関しても、Eclipseの設定(Preferences)の「DMDL EditorX」に「format dmdl source on save」という設定があります。これが有効になっていると、dmdlファイル保存時にソースの整形が行われます。
つまり、自分でCtrl+Shift+Fを押す必要は無いわけですね。
でもつい押しちゃうんだなぁ^^;

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

DMDL EditorX機能紹介2:DMDLコンパイル

2015-12-16 00:00:00 | PG(分散処理)

Asakusa Framework Advent Calendar 2015の16日目です。

拙作DMDL EditorXの機能紹介、次はDMDLのコンパイルです。

パッケージエクスプローラーでプロジェクト内のファイル(dmdlファイル等)を選択した状態で、ツールバーの「Asakusa FrameworkのDMDLコンパイラーを起動してJavaクラスを生成」ボタンを押すと、DMDLのコンパイルが実行されます。(コンパイルメッセージがコンソールに出力されますが、「コンソール」ビューを表示していないと分からないかもしれません)

DMDLコンパイル機能はAsakusaFW純正のEclipseプラグイン『Shafu』にもありますが、DMDL EditorXでこの機能を作った当時はまだShafuはありませんでした。
同じ機能があるなら基本的には純正アプリを使った方がいいと思いますが、DMDL EditorXの方がツールバーなので実行しやすいのと、コンパイルエラーがあった場合、DMDL EditorXだと

  • Eclipseの「問題」ビューにエラー一覧が表示され、そこからエラー箇所にジャンプできる
  • dmdlファイル上で、エラー箇所に赤線が引かれる

のが便利だと思います。(自画自賛w)


また、ツールバーには「DMDL error check」というボタンもあります。
これは、DMDLのコンパイルに時間がかかると思っていた頃に、エラーチェックだけを行う目的で用意したものです。しかし実際にはコンパイルにそんなに時間はかからないので、この機能を使うことは基本的に無いと思います(苦笑)

これに関して、Eclipseの設定(Preferences)の「DMDL EditorX」に、「auto error-check on save」という設定があります。dmdlファイル保存時にエラーチェックを行うかどうかを指定するもので、デフォルトでは有効になっています。
もし保存時にエラーチェックで時間がかかるようなら、このチェックを外すことでチェックを行わないようになります。このときにエラーチェックをしたければ、前述の「エラーチェック」(または「DMDLコンパイル」)を実行すればいいです。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

DMDL EditorX機能紹介1:色

2015-12-15 00:00:00 | PG(分散処理)

Asakusa Framework Advent Calendar 2015の15日目です。

JJUGネタ(相違点・類似点とか)が尽きたので、拙作DMDL EditorXの機能の紹介でもしたいと思います。

DMDL EditorXはDMDL用のエディター(Eclipseプラグイン)です。EclipseのXtextというプラグインを使っている為、名前に「X」が付いています。

DMDL EditorXはEclipseプラグインなので、その他のプラグインと同様にインストールすることが出来ます。
DMDL EditorXをインストールしてdmdlファイルを開くと、キーワードに色が着いているのが分かると思います。単なるエディターだと単色で寂しいので、色が着いているとカラフルで良いと思いますw

なお、この色は、EclipseのPreferencesから「DMDL EditorX」→「Syntax Coloring」で変更することが出来ます。
(Xtextの機能なんですけどねw)

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする