MPS 2019.2ヘルプ

エディター・アクション

MPSエディターには、完了アクション、ノード作成ポリシーにかなり賢明なデフォルトがあります。しかし、カスタマイズしたい場合は、アクション言語を使用しなければなりません。

ノードファクトリ

あるノードが別のノードと交換されるとき、交換されるノードによって保持される値で交換するノードの作成プロセスをパラメータ化すること、またはおそらくモデル内の交換するノードの将来の位置を反映することも役に立つでしょう。ノードファクトリはあなたにまさにそれを与えます。新しいノードを代入アクションで、または新しい初期化ノード<>新しい初期化ノードを設定する初期化された新しいノードを追加する初期化された新しいノードに置き換えます新しい初期化インスタンス<>のいずれかのメソッドで作成する必要があるときに必ず呼び出される一連のハンドラーを作成します。

簡単に言うと、ノードファクトリでは新しいノードのインスタンス化をカスタマイズできます。ノードファクトリを作成するには、まず新しいノードファクトリルートノードを作成する必要があります。このルートの中に、概念用のノードファクトリを作成できます。各ノードファクトリは、次のパラメータを持つノード作成ブロックで構成されています。newNode(作成されたノード)、sampleNode(現在置換されているノード、nullでも可)、囲むノード(モデル内のnewNodeの親になるノード)、モデル。ノードファクトリハンドラは、新しいノードがモデルに挿入されるに呼び出されます。

ノードファクトリの概念継承階層を利用して繰り返しを減らすことができます。

Ac6

貼り付けラッパー

これらを使用すると、ノードを他のコンテキストに貼り付けることをカスタマイズできます。例:LocalVariableDeclarationBaseLanguageにコピーしてClassConceptに貼り付けてそれをクラスのフィールドにする場合は、ローカル変数宣言から新しいFieldDeclarationを作成する単純な変換をトリガーする必要があります。

Ac10

コピー&ペーストハンドラ

これらはあなたにコピーされているかクリップボードから貼り付けられているモデルの部分をカスタマイズする可能性を与えます。

Ac11

コピー プリプロセッサブロックのコピーパラメータは、元のパラメータノードの正確なディープコピーを含みます。オリジナルとは異なり、コピーはモデルから切り離されているため、親ノードはありません。

Ac12

貼り付けポストプロセッサのタスクは通常、参照が新しいコンテキストで有効な宣言を指すように参照を再解決することです。

最終更新日: 2019年8月30日