エラーを抑制する
MPS でコードの品質を高く維持する最も効果的な方法の 1 つは、コード内のエラー、警告、潜在的な問題を直接ハイライト表示する、即時のオンザフライコード分析です。他のコード品質レポートツールと同様に、誤検出が繰り返し報告されないように、ユーザーが誤検出をマークできることが重要です。MPS は、エラーを抑制し、エディターとモデルチェッカーツールに表示されないようにする 2 つのメカニズムを提供します。
まず、言語開発者が利用できる一般的な機能があります。言語拡張を設計したり、既存の言語を新しい言語に組み込んだりする場合、既存の言語のチェッカーではエラーとみなされるものの、実際には言語の組み合わせの観点からは有効な箇所がいくつか発生する可能性があります。このような場合、新しい言語のバインディング概念で ISuppressErrors インターフェースを実装することで、誤ったエラーを抑制できます。この機能が役立つもう 1 つの箇所はジェネレーターです。たとえば、テンプレートでは型エラーが避けられない場合があるためです。デフォルトでは、何らかの概念が ISuppressErrors インターフェースを実装している場合、そのノードとそのすべての子孫にあるすべての言語の問題が非表示になります。例: BaseLanguage のコメントは ISupressErrors を実装します。さらに、ノードが ISuppressErrors を実装する概念の属性を持っている場合、そのノードの問題も抑制されます。問題を抑制する特定の子孫と問題の種類を定義することで、問題を選択的に抑制することも可能です。カスタマイズは、ISupressErrors インターフェースのブール型メソッド suppress(ReportItem) をオーバーライドすることで実装できます。
2 番目のメカニズムは、最初のメカニズムの特殊なケースとして実装されていますが、言語開発者向けではなく、言語のユーザー向けです。チェッカーが誤検出を出すことがわかっている場合、ユーザーはモデル内でこれらの箇所をマークしたいと思うかもしれません。言語開発者はこのような可能性を言語の一部として組み込むことができますが、MPS には、SuppressErrorsAttribute と呼ばれる ISuppressErrors ノード属性の便利なデフォルト実装があります。これは、ICanSuppressErrors のインスタンスであるノードにのみ適用できます。
SuppressErrorsAttribute 属性と対応するインテンションの使用例。
エディターには 3 つのエラーがあり、そのうちの 2 つは文字列リテラルに関するものです。

BaseLanguage ステートメントは ICanSuppressErrors を実装しているため、ユーザーはインテンションを適用して、ステートメント内の任意の場所でこの種のエラー(文字列リテラル)またはすべての型システムエラーを抑制することができます。

抑制されたエラーはハイライトされなくなりましたが、左ペインに新しく追加された十字アイコンがあります。

ある種類のエラーを抑制した後、他の種類のエラーも抑制できます。
抑制属性は、対応するインテンションを適用するか、×印を押すことで削除できます。

関連ページ:
実行構成
導入:実行構成により、ユーザーは自分の言語で書かれたプログラムの実行方法を定義できます。既存の実行構成は、メインツールバーにある実行構成ボックスから実行できます。メインメニューのファイル名を指定して実行メニュー項目または実行 / デバッグポップアップ(Alt + Shift + F10 /Alt + Shift + F9)を使用します。実行構成は、ノード、モデル、モジュール、プロジェクトに対して実行 / 作成することもできます。例: JUnit 実行構成では、選択したプロジェクト、モジュール、...
モジュールのクローニング
言語または解決策のコピーを作成する必要があるとき、状況に遭遇するかもしれません。モジュールのクローン作成を使用すると、モジュールのコピーを簡単に作成できます。モジュールを複製するには、プロジェクトツールウィンドウでそのモジュールを選択します。モジュールを右クリックし、コンテキストメニューから「ソリューション / 言語の複製」を選択します。表示されるダイアログで、新しいモジュールの名前と場所を選択します。OK を押すと、モジュールは複製されて使用可能になります。新しいモジュールには、古いモジュール...