付属品
アクセサーリーモデルは、言語の側面(推奨)として、またはソリューションでの通常のモデルとして、2 つの場所に保存できます。どちらの場合も、モデルを使用できるように、モデルを言語ランタイム言語設定に追加する必要があります。典型的なユースケースは、言語が使用される任意の場所で利用できるコンセプトインスタンスのデフォルトライブラリです。
サンプル
入門図形チュートリアルの一部として作成され、サンプルプロジェクトとして MPS ディストリビューションにバンドルされている図形サンプルプロジェクトを変更してみましょう。このプロジェクトでは、言語ユーザーがさまざまなカラフルな形を定義してキャンバスに配置することができます。各形状の色は、Color クラスで定義されている StaticFieldDeclarations の 1 つへの参照として定義されています。
アクセサーリモデルを使用すると、Color クラスを直接参照する代わりに、独自の色定数を定義できるため、ユーザーソリューションから BaseLanguage に依存することになります。使用可能な色とその生成方法をより細かく制御できます。
色を表すための概念を定義する
まず、個々の色を定義するために使用する概念を定義する必要があります。
ColorReference を更新する
ColorReference コンセプトは、MyColor コンセプトのノードを指す必要があります。
実際の色を取得する方法を定義する
世代間、、Color クラスで定義され、対応する色の定数を表す StaticFieldDeclaration のノードと MyColor のノードを交換する必要があります。
円と四角形のジェネレーターテンプレートを変更する
これらのテンプレートは、Color クラスの特定の目的の静的フィールドへの参照を挿入する参照マクロを保持します。上で定義した findColor() 動作メソッドを使用するようにマクロを変更する必要があります。
Accessories モデルで色を定義する
これで色を安全に定義できます。
言語を再構築した後、色定数は Canvas ノードの補完メニューで使用可能になり、生成されたコードは Java 色への正しい参照を保持します。
関連ページ:
図形
MPS に不慣れですぐにそれを試してみたいなら、これはあなたのための正しいチュートリアルです。2 時間以内に、新しい言語とその言語を使用する機能コードを入手できます。このチュートリアルでは、最初から始め、安全で便利な道を歩むことで、新しい言語のコア要素を設計します。すぐにフィニッシュラインに到達するために、高度な概念、複雑な構成要素、暗いコーナーを避けます。最後に、MPS とは何か、MPS がどのような原則に基づいているのかを理解できます。シートベルトを締めてください。高速に走ります。前提条件...
スクリプト
スクリプトアスペクトを使用すると、モデルへの変更をバッチで実行できます。使用可能なスクリプトは、ツール -> スクリプトメニューに表示されます。スクリプトには 2 つのタイプがあります。拡張 - 指定した基準に基づいてモデルに変更を加えます、移行 - 言語バージョン間の移行に使用されていた非推奨のタイプ。言語の移行がこの機能を処理するようになったため、移行スクリプトは使用できなくなりました。スクリプトを定義するには、ご使用の言語でスクリプトアスペクトを作成してから、拡張スクリプトを作成します。名...
リファクタリング
リファクタリングのサポートは、すべての成熟した言語の IDE 機能の非常に重要な部分です。MPS は、リファクタリングアクションの開発を簡素化するためのいくつかの機能を提供します。簡単なリファクタリングは、jetbrains.mps.lang.refactoring 言語を使用して記述できます。この言語を使用してリファクタリングを作成した後、次の手順を使用して、ユーザーがリファクタリングを利用できるようにし、呼び出し可能にする必要があります。リファクタリング用の UI アクションを作成します。これ...