MPS 2020.3 ヘルプ

付属品

アクセサーリーモデルは、言語の側面(推奨)として、またはソリューションでの通常のモデルとして、2 つの場所に保存できます。どちらの場合も、モデルを使用できるように、モデルを言語ランタイム言語設定に追加する必要があります。典型的なユースケースは、言語が使用される任意の場所で利用できるコンセプトインスタンスのデフォルトライブラリです。

サンプル

入門図形チュートリアルの一部として作成され、サンプルプロジェクトとして MPS ディストリビューションにバンドルされている図形サンプルプロジェクトを変更してみましょう。このプロジェクトでは、言語ユーザーがさまざまなカラフルな形を定義してキャンバスに配置することができます。各形状の色は、Color クラスで定義されている StaticFieldDeclarations の 1 つへの参照として定義されています。

アクセサーリモデルを使用すると、Color クラスを直接参照する代わりに、独自の色定数を定義できるため、ユーザーソリューションから BaseLanguage に依存することになります。使用可能な色とその生成方法をより細かく制御できます。

色を表すための概念を定義する

まず、個々の色を定義するために使用する概念を定義する必要があります。

Ac1

ColorReference を更新する

ColorReference コンセプトは、MyColor コンセプトのノードを指す必要があります。

Ac2

実際の色を取得する方法を定義する

世代間、、Color クラスで定義され、対応する色の定数を表す StaticFieldDeclaration のノードと MyColor のノードを交換する必要があります。

Ac4

円と四角形のジェネレーターテンプレートを変更する

これらのテンプレートは、Color クラスの特定の目的の静的フィールドへの参照を挿入する参照マクロを保持します。上で定義した findColor() 動作メソッドを使用するようにマクロを変更する必要があります。

Ac3

Accessories モデルで色を定義する

これで色を安全に定義できます。

Ac5

言語を再構築した後、色定数は Canvas ノードの補完メニューで使用可能になり、生成されたコードは Java 色への正しい参照を保持します。

関連ページ:

図形

MPS を初めて使用し、すぐに試してみたい場合は、これが適切なチュートリアルです。2 時間以内に、新しい言語とその言語を使用する関数型コードを入手できます。チュートリアルでは、最初から始め、安全で便利なパスに沿って進めることで、新しい言語のコア要素を設計します。フィニッシュラインにすばやく到達するために、高度な概念、複雑な構成、暗いコーナーは避けます。最後に、MPS とは何か、MPS がどのような原則に基づいているかがわかります。シートベルトを締めてください。高速に走ります。前提条件:MPS...

スクリプト

スクリプトアスペクトを使用すると、モデルへの変更をバッチで実行できます。使用可能なスクリプトは、ツール -> スクリプトメニューに表示されます。スクリプトには 2 つのタイプがあります。拡張 - 指定した基準に基づいてモデルに変更を実行します、移行 - 言語バージョン間の移行に使用されていた非推奨のタイプ。言語の移行でこの機能が処理されるようになったため、移行スクリプトは使用できなくなり、作成されます。スクリプトを定義するには、ご使用の言語でスクリプトアスペクトを作成してから、拡張スクリプトを作...

リファクタリング

リファクタリングのサポートは、すべての成熟した言語の IDE 機能の非常に重要な部分です。MPS は、リファクタリングアクションの開発を簡素化するためのいくつかの機能を提供します。簡単なリファクタリングは、jetbrains.mps.lang.refactoring 言語を使用して記述できます。この言語を使用してリファクタリングを作成した後、次の手順を使用して、ユーザーがリファクタリングを利用できるようにし、呼び出し可能にする必要があります。リファクタリング用の UI アクションを作成します。これ...