MPS 2020.1の新機能

MPS 2020.1 では、エディターの強化、Light パターン言語、スタブモデル用の Javadoc、BaseLanguage の改善のほか、数多くの新機能が提供されています。

リスト内の位置に応じた異なる区切り文字の使用

リスト内の位置に応じた異なる区切り文字の使用

多重度が (0,n) または (1,n) のノードを編集する際、区切り文字クエリ関数を実装して独自の値の区切り文字を設定できるようになりました。 この機能はクエリ関数(具体的には prevNode と nextNode)により多くの引数を渡すことでその能力を拡張し、値の各ペアに独自の区切り文字を設定できるようにします。 次のスクリーンショットでは、"and" と "," が区切り文字になっています。

詳細情報

Lightパターン

Lightパターン

パターン言語は構造パターンを定義し、それらにノードを対応づけるのに役立ちます。 また、パターンの外観を受け入れ対象のノードに似せて表示する通常の概念エディターを使用します。 ただし、概念構造に正確に対応しない一部の複雑なエディターでは、必要な構造をそのまま表現する light パターン(パターンビルダー)を使用するほうが簡単です。

詳細情報

ツールチップ

ツールチップ

The editor extension of the Tooltips from mbeddr platform has been added to MPS. また、mbeddr 言語向けの移行機能も提供される予定です。

詳細情報

Transform/substitute(変換・置換)メニュー:名前付きメニューとデフォルトメニューの一体化

Transform/substitute(変換・置換)メニュー:名前付きメニューとデフォルトメニューの一体化

名前付きのエディターメニュー(SubstituteMenu_Named)とデフォルトのエディターメニュー(SubstituteMenu_Default)の独自概念を除去し、Transformation(変換)メニューと Substitution(置換)メニューを単純化する機能強化を行いました。 両方の概念がその親(SubstituteMenu)に一体化されました。 メニューエディターでメニューの種類を選択できるようになりました。 同じリファクタリングは Transformation メニューにも適用されています。

壊れたエディターのエラー検出

ある言語のエディターアスペクト内のコードが例外をスローすると、その言語で記述されたモデル内の対応するセルにデフォルトのエディターが表示されます。 2020.1 以降のエディターでこのような壊れたセルを開くと、Messages ツールウィンドウにエラーが表示されます。 エラーのスタックトレースを取得し、問題のあるセルに移動することもできます。

詳細情報

既存テキストの上書き

新たに実装された既存テキストの上書き機能により、プロジェクションエディターの使い心地がテキストエディターに若干近づいています。 テキストセルに文字を入力する際に入力した文字がカーソルの位置にすでに存在する場合、カーソルがその既存の文字を上書きしたかのように先に移動します。 この機能は、入力キーのスムーズな処理が不可能で、無視する必要がある場合(定数セル内など)や、セルの内容を無効化にする場合のみに有効になります。

この機能はデフォルトでオンになっており、Settings / Editor / General でオフにできます。

詳細情報

不要な言語拡張機能の削除

ジェネレーターが他の言語向けのエディター拡張機能を検出し、依存関係を明示的に表すコードを生成するようになりました。 そのため、言語設計者がこのような特殊な言語間の依存関係を考慮する必要がなくなりました。 もうエディター拡張機能を有効化するために 'extends' で言語モジュール間に依存関係を持たせる必要はありません。

詳細情報

Java スタブモデル内の Javadoc コメント

ライブラリのソースと共にその jar ファイルを含む zip ファイルを指定できる仕組みが新たに追加されました。 これにより、MPS がソースから javadoc を抽出し、それをクラスファイルから抽出した情報と共に表示できるようになりました。

詳細情報

BaseLanguage の複数行コメント

SingleLineComment の機能を若干強化し、新たに MultiLineComment の概念を BaseLanguage に導入することで、Java と同様に /* … */ 記号で区切ったコメントに対応できるようにしました。

Java 言語から着想を得た BaseLanguage の機能強化

BaseLanguage が try-with-resources、複数例外の補足、ローカル変数の型推論、デフォルトおよび private なインターフェースメソッドに対応しました。 特定の Java 言語レベルを要求するビルドプロセスとの互換性を確保するため、そのレベルとの互換性がない言語機能を各ソリューションで禁止する設定を行えるようにしています。 j.m.baseLanguage.varVariable を要求するローカル変数の型推論機能を除き、これらの機能は追加の言語インポートを必要としません。

移行ガイドを見る

その他の改善

非モーダル型 Commit インターフェース

コミットフローを合理化するため、コミットに関連するすべてのタスクを処理する新しい Commit ツールウィンドウを開発しました。 このツールウィンドウでは変更済みファイルリストや差分用のエリアが広く確保されており、変更が準備できた時点でコミットに変更を加えたり、コミットメッセージを繰り返し作成したり、どの段階的な変更をどのコミットに入れるのかを選択したりできます。

このツールウィンドウはデフォルトでは有効化されていませんので、試してみたい場合は Preferences/Settings | Version Control | Commit で「Use non-modal commit interface」を選択してください。

Zen モード

この新しいモードは、Full Screen(全画面)モードと Distraction Free(集中)モードを組み合わせてコーディングに集中できるようにするものです。 Zen モードを試すには、View | Appearance | Enter Zen Mode を開いてください。

IDE から Git をインストールする

Git を事前に手動でインストールする必要がなくなりました。 既存のGitリポジトリを複製する際、IDEが使用中のマシン上にあるGitの実行可能ファイルを探し、見つからない場合にはGitのダウンロードとセットアップを促します。

Config ファイルのパス

MPS 2020.1 では Config ファイルのパスが変更されています。

詳細情報

JetBrains Mono フォントのデフォルト使用

MPS は新しいJetBrains Mono フォントをデフォルトで使用するようになりました(Preferences / Settings | Editor | Font)。 開発者向けのこの新しい書体に関する詳細は、当社 Web サイト でご確認ください。

Marketplace の MPS 対応

JetBrains Plugin Marketplace is now available in MPS. 所有するプラグインを商用化できるようになったため、多くの新たな機会が生まれます。