MPS 2020.1 ヘルプ

エディターのアクション

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

ノードファクトリ

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

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

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

Ac6

貼り付けラッパー

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

Ac10

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

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

Ac11

The copy parameter in a copy pre processor block gets contains an exact deep copy of the original parameter node: Unlike original, copy is detached from the model and so has no parent node.

Ac12

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