MPS の新機能

MPS 2020.1の新機能

MPS 2020.1は、エディター、Lightパターン言語、スタブモデルのJavadoc、BaseLanguageの改善、および多くの新機能を強化します。

Use different separators depending on list position

リストの位置に応じて異なるセパレータを使用する

カーディナリティが(0、n)または(1、n)のノードを編集する場合、セパレータクエリ関数を実装することにより、値の間にカスタムセパレータを提供することができました。この機能は、クエリ関数(つまりprevNodeとnextNode)により多くの引数を渡すことでその機能を拡張し、値の各ペアにカスタムのセパレーターを提供できるようにします。次のスクリーンショットでは、「and」と「、」がセパレーターです。

さらに学習したい方に(英語)

Light patterns

光のパターン

パターン言語は、構造パターンを定義し、それらにノードを一致させるのに役立ちます。通常のコンセプトエディターを使用して、パターンを、それが受け入れるノードと同様に表示します。ただし、概念構造に正確に対応していない一部の複雑なエディターでは、必要な構造を文字どおりに記述するライトパターン(パターンビルダー)を使用する方が快適です。

さらに学習したい方に(英語)

Tooltips

ツールチップ

mbeddrのツールチップ(英語)プラットフォームのエディター拡張機能がMPSに追加されました。mbeddr言語の移行も提供されます。

さらに学習したい方に(英語)

Transform/substitute menus: merge named and default menus

メニューの変換/置換: 名前付きメニューとデフォルトメニューをマージする

これは、名前付き(SubstituteMenu_Named)およびデフォルト(SubstituteMenu_Default)のエディターメニューのカスタムコンセプトを削除することにより、TransformationメニューとSubstitutionメニューを簡素化する拡張機能です。両方の概念が親(SubstituteMenu)にマージされました。メニューエディターでメニュータイプが選択されます。同じリファクタリングが変換メニューに適用されました。

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

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

さらに学習したい方に(英語)

既存のテキストを上書き

既存のテキストの上書きは、投影エディターをテキストエディターのように感じさせる新しい機能です。テキストセルに入力するとき、入力した文字が既にカーソル位置にある場合、カーソルは既存の文字を上書きしたかのように移動します。この機能は、キーストロークを適切に処理できない場合にのみトリガーされ、それ以外の場合は無視されます(たとえば、定数セル内)、またはセルの内容が無効になります。

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

さらに学習したい方に(英語)

不要な言語拡張を排除する

これで、ジェネレーターは他の言語のエディター拡張機能を検出し、依存関係を明示的に示すコードを生成します。これは、言語設計者が言語間のこの特定の種類の依存関係を心配する必要がないことを意味します。エディター拡張機能をアクティブにするために、言語モジュール間の「拡張」依存関係が不要になりました。

さらに学習したい方に(英語)

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

ライブラリjarとともにライブラリのソースを保持するzipを指定するための新しいメカニズムがあります。MPSは、ソースからjavadocを抽出して、クラスファイルから抽出された情報とともにそれを表示することができます。

さらに学習したい方に(英語)

BaseLanguageの複数行コメント

SingleLineCommentの機能がわずかに強化され、新しいMultiLineCommentコンセプトがBaseLanguageに導入され、Javaと同じ方法で /* … */ シンボルで区切られたコメントをサポートするようになりました。

Java言語に触発されたBaseLanguageの機能拡張

BaseLanguageには、リソースを試して、複数の例外をキャッチする、ローカル変数の型推論、デフォルトおよびプライベートインターフェースメソッドが含まれています。特定のJava言語レベルを必要とするビルドプロセスとの互換性を提供するために、各ソリューションは、そのレベルと互換性のない言語機能を禁止するように構成できます。 j.m.baseLanguage.varVariableを必要とするローカル変数型推論機能を除いて、これらの機能は追加の言語インポートを必要としません。

移行ガイドを見る(英語)

その他の改善

非モーダルコミットインターフェース

コミットフローを合理化するために、すべてのコミット関連タスクを処理するための新しいコミットツールウィンドウを開発しました。変更されたファイルのリストとdiffのためのより多くのスペースを提供し、コミットの準備ができたら変更を追加し、コミットメッセージを繰り返し作成し、ステージングされた変更のどれをどのコミットに入れるかを選択できます。

デフォルトではアクティブ化されていないため、試してみたい場合は、Preferences/Settings | Version Control | Commitで非モーダルコミットインターフェースを使用を選択してください。

Zenモード

この新しいモードでは、全画面モードと集中モードを組み合わせることにより、コードに集中できます。Zenモードを試すには、View | Appearance | Enter Zen Modeにアクセスしてください。

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

Gitを手動でプレインストールする必要はなくなりました。既存のGitリポジトリを複製すると、IDEはマシン上でGit実行可能ファイルを探し、IDEが見つけられない場合はダウンロードしてセットアップするように提案します。

設定ファイルパス

MPS 2020.1では、構成ファイルへのパスが変更されていることに注意してください。

さらに学習したい方に

デフォルトでJetBrains Monoフォント

MPSは、新しいJetBrains Monoフォント(Preferences / Settings | Editor | Font)をデフォルトとして使用するようになりました。私たちのWebサイトで、開発者向けの新しい書体の詳細をすべてチェックしてください。

マーケットプレイスがMPSに到着

JetBrainsプラグインマーケットプレイス(英語)がMPSで利用可能になりました。これにより、プラグインを商品化できるため、新たな機会が生まれます。