MPS 2017.3リリース

これは、今年のMPSの最新リリースです。 このバージョンでは、エディター、ジェネレーター、レイアウト言語など、さまざまな重要な領域に新機能と改善が追加されました。



私たちは、MPSの進展とさらなる発展の見通しに非常に満足しています。 私たちは常にコミュニティの意見に耳を傾け、素晴らしいプロジェクトを作成するためにMPSに追加する必要がある他の機能を決定します!



MPS 2017.3をダウンロード



イノベーションについて詳しく説明します。



エディター



ユニバーサルプレースホルダー



一般的なプレースホルダーの概念を導入しました。 ユニバーサルプレースホルダーは、任意の言語のコレクションの空の位置を示すために使用できます。また、有用なコンテンツが含まれている場合があります。 デフォルトでは、プレースホルダーノードはエディター内の空の場所のように見え、その動作は透過的です。その中で、オートコンプリートを呼び出して、プレースホルダーをこの場所にある言語の要素に置き換えることができます。 または、Enterキーを押して、このコレクションの次の位置に新しいアイテムを追加できます。 ユニバーサルプレースホルダーは、Control / Cmd + Shift + Enterキーの組み合わせを使用して挿入されます。



画像



フローティングコメント



ユニバーサルプレースホルダーの出現により、ドメイン固有言語(DSL)でのユニバーサルコメントの実装が可能になりました。 この機会を利用するには、言語jetbrains.mps.lang.textまたは一般的な開発キットをインポートするだけで十分です。 その結果、ハイパーリンク付きの自由に編集可能な複数行コメントの言語が得られ、その中にコードを埋め込むこともできるフォント(太字、斜体、下線)をカスタマイズできます。 コメントを入力するには、カーソルをユニバーサルプレースホルダーに移動し、「[」を押して入力を開始します。



標準のコメント言語では不十分な場合は、追加機能を使用して独自のコメント言語を作成できます。



画像



セルのフォント書体を設定する



エディターの定義では、サイズとフォントスタイルだけでなく、ヘッドセットも構成できるようになりました。 fontFamily式を使用すると、インストールされているすべてのフォントファミリを参照できます。



画像



すべて選択



新しいSELECT_ALLアクションを使用すると、エディターのコンテンツ全体を選択できます。 Control / Cmd + Aキーボードショートカットを使用して呼び出され、その動作はアクションカードを使用して好みに合わせてカスタマイズできます。



画像



リモートサイトの元に戻す



ルートノードを削除すると、変更の履歴が失われるため、非常に危険なアクティビティでした。 元に戻すメカニズムが改善されました。 これ以降、削除されたルートを元に戻すと、このルートノードが削除される前に行った変更を返すことができます。



発電機



コントロールポイントモデルのリンク



ブレークポイントは、リンクとその参照の同時生成を必要とせずに、マッピングラベルでマークされたリンクのトラバーサルをサポートするようになりました。 これで、参照先のノードが以前のブレークポイントで生成された場合でも、安全にリンクを解決できます。



冗長なファイルの上書きを排除



ビルドプロセス中、生成されたファイルは上書きされなくなり、その内容は新しく生成されたファイルと同じになります。 これで、本当に変更されたファイルのみがディスク上で更新されるという事実に頼ることができます。



レイアウト言語



モジュールリソースをコピーする新しい方法



モジュールで指定された「リソース」コンテンツルートノードは、デプロイされたモジュールにリソースをコピーするために使用されるようになりました。 以前にコードでハードコードされていたマスクファイルをリソースをコピーするためのテンプレートに転送するために、特別な移行が提供されます。



画像



Antタスク



Ant MPSタスクは、モジュール、モジュール、およびallmpsmodulesといういくつかの新しいタグを使用して、リポジトリのコンテンツを完全に制御します。



画像



移行のためのAntタスクの改善



移行用のAntタスクに、より便利なインターフェースが追加されました。

移行中に問題が発生した場合、Antスクリプトは動作を停止し、エラーを正しく報告します。



環境変数mps.homeおよびmps_home、mpshomeタスク自体の属性など、mpsの場所を示すためのすべての古い属性がサポートされています。 ただし、環境プロパティmps.homeを使用することをお勧めします。



開発パッケージのパッケージ化の機能強化



ユーザーの特定のニーズに対応する言語とライブラリのコレクションであるdevkitタイプのモジュールは、個別のファイルとしてではなく配布パッケージに含まれるようになりましたが、他のモジュールと同様にjarファイルにパッケージ化されています。 ビルドスクリプトを自動的に更新し、新しい「モジュール」コンストラクトで新しい方法でパックを開始するために、特に何もする必要はありません-移行は自動的に行われます。



その他の改善



子のNodePointer



lang.smodelのnodePointer式は、ルートノードだけでなく、任意の名前付き要素も参照できるようになりました。



画像



モデルの依存関係の構築



モデルを生成するとき、再生成が必要なすべての依存関係も構築します。 これは時間を節約し、不快な驚きを避けます。



モデルのクローン作成の改善



モデルの複製アクションは、複製されたモデルの要素の異なるルート間の相互参照を正しく更新します。 クローンモデルは、元のモデルから完全に独立しています。



画像



それだけです すべての新しいリリースをお楽しみください。 私たちは常にあなたの意見に耳を傾けます。 Twitterで私たちとスラックチャンネルに参加して、最新情報をいち早く知り、フィードバックを共有してください!



頑張って



JetBrains MPSチーム



開発への意欲



All Articles