Git Product home page Git Product logo

xtext-dmdl-editor's Issues

namespaceにアンダースコアを使うと、生成されたImporter/Expoterがエラーになる

namespaceにアンダースコア入りの名前を指定すると、
Importer/Exporter生成ウィザードによって作られるクラスのimport文が正しくなくてコンパイルエラー状態になる。

@namespace(value = hoge_zzz)
example = {

import com.example.modelgen.hoge_zzz.csv.AbstractExampleCsvInputDescription;

DMDLコンパイラーによって実際に生成されるクラスは、パッケージ名が「hogeZzz」になる。

プロパティー一覧を用いたソース生成機能

モデルのプロパティーを複数選択し、同様の処理を生成する機能を追加する。

例えばプロパティー「foo」「bar」を指定し、テンプレートとして「result.set$(name.toCamelCase)Option(in.get$(nameToCamelCase)Option());」という指定をすると、

result.setFooOption(in.getFooOption());
result.setBarOption(in.getBarOption());

というソースが生成されるようにする。

Copy DMDL Nameメニューの追加

Javaエディター上のクラス名やメソッド名を右クリックして出てくるコンテキストメニューに「Copy DMDL Name」メニューを追加する。
これは、クラス名やメソッド名をデータモデルのモデル名やプロパティー名としてクリップボードにコピーするもの。

importer 生成時に余計な import 文が生成される

いくつか試しにデータモデルから Direct I/O CSV 用の importer を作ってみたところ, 過去に作ったデータモデル用の importer クラスを import する文が余計に生成されている.
どこかにキャッシュが残っているような動きをする.

FlowPart変更ウィザードの変数名をフィールドから取得する

現在のFlowPart変更ウィザードでは、変数名やコメントの値を、FlowPartクラスのコンストラクターから取得している。
しかし、変数名を変えたい場合は、フィールドをEclipseの機能で置換することの方が多い。
したがって、フィールドから情報を取るようにすれば、変数名の変更は以下の手順で出来るようになる。

  1. フィールドの変数名を変更する。
  2. FlowPart変更ウィザードを開き、何も変更せずそのまま終了する。(これで、コンストラクターの変数名も変わる)

Data Model の定義検索

定義へのジャンプとは別に "Open Type" ダイアログのような Data Model 専用の検索ダイアログが欲しい.

Search メニュー → Search... → Search ダイアログ, から検索できるのは分かりますが, 専用のものがあると嬉しいです.

FlowPartFactory#create()からコンストラクターへのジャンプ

JobFlowやFlowPart内でOperatorFactoryのクラス名やメソッドを右クリックして「Open Operator」を選択すると、Operatorクラス(該当メソッド)へジャンプすることが出来る。

FlowPartFactoryでも、「Open Operator」を選択すると、FlowPartクラスへジャンプすることが出来る。
しかし、FlowPartFactoryのcreateメソッドを指定してジャンプすると、FlowPartクラス名部分が開く。
createメソッドが選択されていた場合はFlowPartクラスのコンストラクターにジャンプできるようにしたい。

「データモデルの定義」画面で末尾にプロパティを挿入したい

「データモデルの作成」ウィザードの「データモデルの定義」では, テーブルの行を選択し, プロパティの挿入, 編集, 削除が行える.
末尾へプロパティを挿入する場合は, 末尾の空の行をクリックしてからプロパティの追加を行えば良いが, プロパティの数が1画面で表示できる量を越えると末尾の空行がクリックできなくなる.
その結果, 末尾にプロパティを追加したいときは, 最後尾のプロパティを選択し, 新たにプロパティを挿入し, 1 つ下に下げる操作を行うことになってしまう.

常に末尾にダミーの空プロパティを付けて, その行を選択して追加することで, 末尾へのプロパティの挿入操作が行えないだろうか?

Copy Java Nameメニューの追加

dmdlファイルエディター上のモデル名やプロパティー名を右クリックして出てくるコンテキストメニューに「Copy Java Name」メニューを追加する。
これは、モデル名やプロパティー名をJavaのクラス名やメソッド名の一部(UpperCamelCase)としてクリップボードにコピーするもの。

集計モデルの作成ウィザードに集計種類ボタンを追加する

集計モデルの作成ウィザードにおいて、集計種類(any・count・sum等)を選択するにはeditボタンを押して編集ダイアログを出す必要がある。(個々のプロパティー毎にダイアログを開かなければならない)
この集計種類を(編集ダイアログを出さずに)表内で直接変更できるようなボタンを追加する。

importer が複数同時に作成できてしまう

importer を作成するデータモデルが複数選択できるが, basePath, resourcePattern, dataSize の設定が同一の importer が, それぞれのデータモデルに対して作成される.
(親クラスはそれぞれ適切なものが選択されている.)

データモデル選択画面で 1 つしか選べないようにする方が良いと思う.

結合モデルの作成ウィザードでキーを1つずつ登録できるようにする

結合モデル作成ウィザードの結合キー定義ページで
左側の表から(キーとしたいプロパティーのペアを同時に選択してコピーするのではなく)
キーとしたいプロパティーを1回ずつコピーして結合キーを定義できるようにする。

つまり、以下のような動作を出来るようにする。

  1. 左側の表からモデルAのプロパティーA1を選択してコピーする。(右側の表にA1のみの行が作られる)
  2. 右側の表からA1のみの行を選択する。
  3. 左側の表からモデルBのプロパティーB1を選択してコピーする。(右側の表のA1の行にB1が追加される)

※現状では、3の動作を行うと、「A1のみの行」はそのままで、新たに「B1のみの行」が追加される。

シンタックスエラーがあるDMDLをウィザードで編集するとスクリプトが消える

シンタックスエラーがあるDMDLスクリプトに対して
DMDLスクリプト内容を編集するウィザードを実行すると、
DMDLスクリプトのテキストが空になるという現象が発生しました。
以下再現手順です。

  1. src/main/dmdl/hoge.dmdl を作成し、以下のように記述する。
message = { };
  1. hoge.dmdlのエディタを開いた状態(シンタックスエラーが表示されている)で、メニューバーの @+ ボタン (データモデルに属性を追加) を押下する
  2. ウィザードをてきとうに進めて、最後のページの「完了」ボタンを押下する

上記の手順で完了ボタンを押しても
ウィザードのページが閉じられず、
エディタの内容が空になります。

可能であれば、シンタックスエラーがある状態では
ウィザードを実行できないようにするのがよいと思います。

モデル属性付与に失敗する

@アイコンからモデル属性付与を行おうとすると以下メッセージが出て失敗します。

「{model name}の加工に失敗しました。{dmdl file path}にエラーがある可能性があります。」

バージョンは下記の通りです。
Asakusa Framework : 0.7.0
Mac OS X 10.9.5
Java 1.7.0_25
DMDL EditorX Feature 0.0.1.201410041324
Xtend IDE 2.7.2.v201409160908
Xtend Library for GWT 2.7.2.v201409160908
Xtext Complete SDK 2.7.2.v201409160908
Xtext Redistributable 2.7.2.v201409160908

dmdlファイルの中身は、以下のような状態です。


"商品マスタ"
item_master = {

    "商品ID"
    item_id : INT;

    "商品名"
    item_name : TEXT;
};

"売上明細"
sales_detail = {

    "明細ID"
    sales_id : INT;

    "商品ID"
    item_id : INT;

    "売上数"
    count : INT;
};

"結合明細"
joined joined_sales = item_master -> {

    "商品ID"
    item_id -> item_id;

    "商品名"
    item_name -> item_name;
} % item_id
+ sales_detail -> {

    "明細ID"
    sales_id -> sales_id;

    "商品ID"
    item_id -> item_id;

    "売上数"
    count -> count;
} % item_id;

"出力明細"
output_sales = {

    "フラグ"
    flg : TEXT;
} + joined_sales;

1文字入力する度にダイアログが出る

Xtext2.7だと、DMDLエディター上で1文字入力する度に「The resource is concurrently edited in another editor. Do you want to continue?」というダイアログが出る。
このダイアログでYesを押すとしばらく出てこなくなるが、一旦ファイルを保存するとまた出てくる。

Xtext2.6では発生しない。

属性を追加すると改行コード, タブの種類の混在が起きてしまう

改行コードが CR+LF , タブがハードタブである DMDL ファイルにウィザードから属性を追加すると, 変更を受けた行の改行コードが LF になり, タブがスペース 4 個になっています.
コンパイルも問題無くできるので動作に異常は無いと思いますが, git などでソースコードを管理している場合, 空白文字の変更が履歴に残ってしまい, 履歴を追うときにやや気になります.

飽くまで気になる程度の重要度です.

Data Model の参照検索で削除された Data Model が表示されてしまう

  1. Eclipse から clean, build を実行
  2. Eclipse から DMDL ファイルを消す
  3. その DMDL ファイルから参照されていた Data Model で Find Reference メニューを実行する

Search View にファイル名が空だが Data Model 名が存在する検索結果が表示されます.
この行は手順2で消した DMDL ファイルを表示しようとしているのだと思います.

再度, 手順1を行うとファイル名が空の検索結果が出なくなります.

存在しないファイルについては表示させない動作を期待します.

AsakusaFW 0.9.0でDMDLコンパイルがエラーになる

AsakusaFW 0.9.0でDMDLのコンパイルを行うとエラーになる。

  • 「com.asakusafw.dmdl.parser.DmdlSyntaxExceptionがClassNotFoundException」という旨のダイアログが出る。
  • コンソールに「エラー: メイン・クラスcom.asakusafw.dmdl.java.Mainが見つからなかったかロードできませんでした」

データモデル検索ダイアログのfilterの機能拡張

データモデル検索ダイアログのfilterの機能を拡張する。

  • フィルター入力エリアを分けて、モデル名とプロパティー名の2種類とする。(現状は1種類で共用)
  • モデル名で検索した場合は、ツリーをモデル名まで開く。(現状は検索条件を入れるとツリーが閉じてしまう)
  • 「expand model」ボタンを追加する。(現状はツリーを開くボタンは「expand all」のみ)
  • モデル名・プロパティー名に対しては、小文字として検索する。(現状はcase sensitiveだが、モデル名・プロパティー名に大文字は無い)
  • 「*」をワイルドカードとして使用できるようにする。

アンダースコア入りメソッド名のOperatorへのジャンプ

フロークラスからOperatorクラスへのハイパーリンクのジャンプ機能において、
Operatorのメソッド名がアンダースコア入りの場合に そのメソッドにジャンプできない。

(例えばOperatorのaaaBbb_CccDddというメソッドはOperatorFactoryではaaabbbCccdddになるようで、一致していないので現状ではジャンプできない)

モデルの使用箇所一覧を出したい

現在, モデルの定義場所へのジャンプはできるが, その逆向きの「そのモデルが使われている場所」の一覧を見る方法が無い (or 分からない).

Eclipse のクラスやフィールドに対するコンテキストメニューの「参照 (References)」に近いイメージのものが欲しい.

テストクラス作成機能でJobFlowのテストクラスが作成できない

メニューには「New JobFlow/FlowPart Test class ...」とありますが、
ダイアログの「Class under test」でJobFlowクラスを指定すると、
「is not FlowPart class」とエラーが出ます。

バージョンは以下の通りです。
Asakusa Framework : 0.7.0
Mac OS X 10.9.5
Java 1.7.0_25
DMDL EditorX Feature 0.0.1.201410041324
Xtend IDE 2.7.2.v201409160908
Xtend Library for GWT 2.7.2.v201409160908
Xtext Complete SDK 2.7.2.v201409160908
Xtext Redistributable 2.7.2.v201409160908

"Open DMDL" メニューが出ない

「command + マウスオーバー」で表示されるはずのメニューが表示されない.
再現環境の OS は Windows 7, Eclipse 4.3.

ExporterのgetOrderの入力補完

ExporterクラスのgetOrderメソッド内に文字列に対してプロパティー名の入力補完およびツールチップの表示が出来るようにする。
(getOrderメソッド内は、基本的にはソート用のプロパティー名を列挙するだけのはずなので、文字列はプロパティー名と見なす)

Operatorメソッド作成ウィザードのフィールド作成ページの新設

Operatorメソッド作成ウィザードにおいて、例えばConvert演算子ではフィールドにオブジェクトを用意し、それを使うようなソースを生成している。
フィールドを使うかどうかを選択する(使うならフィールド名を入力する)ページを用意した方がいいような気がしてきた。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.