エクステンションサポート
拡張機能は、ソリューションや言語の特定の側面を拡張する機能を提供します。これらの側面は、標準的な言語機能やプラグイン機構ではカバーされていません。一般的に、MPS プラグインやスタンドアロン IDE など、ディストリビューションモデルに応じて言語の動作を若干変更する必要がある場合があります。このような場合、拡張ポイントをインターフェースとして定義し、異なるディストリビューションモデルで異なる実装が提供されるようにします。
エクステンションのサポート
は言語
プラグインソリューション
クイック使い方
拡張ポイントを作成する
拡張ポイントは、言語のプラグインアスペクトまたはプラグインソリューションで定義する必要があります。
プラグインソリューションでは、ソリューションプロパティダイアログの Java タブで MPS の拡張に貢献オプションを yes に設定する必要があります。
1 つ以上の拡張機能を作成する
拡張機能は、言語のプラグインの側面またはプラグインソリューションで定義する必要があります。
プラグインソリューションでは、ソリューションプロパティダイアログの Java タブで MPS の拡張に貢献オプションを yes に設定する必要があります。
各拡張はオブジェクトを返す get メソッドを提供しなければなりません
各拡張機能は、有効化 / 無効化の通知を受信するように選択できます。
クラスができるように、エクステンションはフィールドを宣言することができます
拡張言語
jetbrains.mps.lang.extension という言語は、拡張機能の構築に必要な概念を宣言しています。
拡張ポイント
ExtensionPointDeclaration の概念は拡張ポイントを表します。拡張オブジェクト型はパラメーターとして指定する必要があります。

拡張
具体的な拡張を作成するために拡張の概念が使用されています。

拡張ポイントにアクセスする
拡張ポイントは、拡張ポイント式を使用して参照によってアクセスできます。

拡張オブジェクトへのアクセス
拡張ポイントは、その拡張によって提供されるすべてのオブジェクトにアクセスする方法を含みます。

Java API
拡張ポイントと拡張機能は、ExtensionRegistry コアコンポーネントによって管理されます。
関連ページ:
ウィザードを作成する
言語や IDE のユーザーの作業を自動化するウィザードが必要になる場合があります。MPS では、そのようなウィザードを作成し、ユーザーがウィザードによって実行されるアクション(場合によっては複数ステップ)の特定の設定(たとえば、モデル内)をカスタマイズできるようにします。このウィザードは MPS 移行ウィザードと似た外観と操作感を持つため、システムにシームレスに統合できます。独自のウィザードを作成するには、AbstractWizard クラスを拡張する必要があります。StepAdapter クラスを...
使用箇所の検索
MPS では、あらゆるモデルはノードで構成されます。ノードは様々な種類の関係を持つことができます。これらの関係は、ノード構造で表現される場合(たとえば、クラス間の「クラスの子孫」関係)もあれば、そうでない場合(たとえば、メソッド間の「メソッドのオーバーライド」関係)もあります。使用箇所の検索は、特定のノードに関連するノードを表示するためのツールです。MPS では、使用箇所の検索システムは完全にカスタマイズ可能です - 独自の実体、いわゆるファインダーを書くことができます。そしてそれは関連するノー...