ロギング
jetbrains.mps.baselanguage.logging 言語には、MPS ログとメッセージツールビューパネルに任意の情報を書き込むためのステートメントが含まれています。LogLowLevelStatement コンセプト (別名「ログエラー ...」) はシステムロガーを使用してログを記録するために使用され、MsgStatement (別名「メッセージエラー ...」) はメッセージツールウィンドウにログを記録するために使用されます。
メッセージツールウィンドウは画面下部にあります。
MPS ログファイルはメニューを使ってすばやく移動することができます:
この言語は、さまざまな重大度のログメッセージをサポートしています。
トレース
情報
デバッグ
警告
エラー
致命的
log ステートメントをコードに挿入したいときはいつでも、"log" か "message" のどちらかに続けて希望の重大度を入力することから始めます。
完了すると、空のメッセージを含むログステートメントが挿入されます。
重大度はいつでも変更できます。
log ステートメントは、指定される例外もサポートしています。
MsgStatement には、プロジェクトを指定するための追加のパラメーターが含まれています。
MPS で複数のプロジェクトが同時に開かれている場合、各プロジェクトには独自の MPS ウィンドウ (フレーム) が与えられ、独自のメッセージビューも与えられます。プロジェクトパラメーターは、適切なプロジェクトのメッセージウィンドウにログメッセージを出力するために使用されます。パラメーターを空のままにすると、メッセージは開いているすべてのプロジェクトのメッセージツールビューに記録されます。
現在のプロジェクトオブジェクトの取得
現在のプロジェクトを表すオブジェクトを取得するのは少々難しいです。さらに悪いことに、Project クラスとインターフェースは複数存在し、それぞれが異なる状況で使用されます。
com.intellij.openapi.project.Project - プラットフォームからのインターフェース
org.jetbrains.mps.openapi.Project - MPS のインターフェース
jetbrains.mps.project.Project - org.jetbrains.mps.openapi.Project インターフェースを実装する MPS の抽象クラス
jetbrains.mps.project.MPSProject - jetbrains.mps.project.Project の具体的なサブクラスの 1 つ
jetbrains.mps.ide.project.ProjectHelper - 便利な変換ユーティリティクラス
ログ言語のステートメントでは、org.jetbrains.mps.openapi.Project のインスタンスが想定されます。つまり、jetbrains.mps.project.Project クラスまたはその jetbrains.mps.project.MPSProject サブクラスも許可されます。プラットフォーム com.intellij.openapi.project.Project インターフェースは許可されませんが、jetbrains.mps.ide.project.ProjectHelper を使用して、プラットフォームと MPS 固有のプロジェクトオブジェクト間の変換を行うことができます。
たとえば、アクションなどの一部の要素は、パラメーターとしてプロジェクトを取得します。editorContext または genContext のいずれかが使用可能なその他の場所では、jetbrains.mps.ide.project.ProjectHelper を使用してリポジトリからプロジェクトを解決できます。