解決方法を見つける
このドキュメントは、MPS に関する問題を解決するために何をすべきか、どこを探せばよいかを、段階的に分かりやすく解説したものです。これは、私たちの経験に基づいたパターンと使い方を体系的にまとめたものです。
リフレクションエディター
射影エディターは、その性質上、モデルを制御された方法でユーザーに提示します。言語設計者の意図によっては、言語は一部の情報やノードをユーザーから隠蔽したり、コード操作の一部を禁止したりする場合があります。また、エディターの定義が何らかの点で破損していたり不完全だったりすると、エディターはユーザーが望む方法でコードを変更することを許可しない可能性があります。リフレクションエディターは、言語エディターを抑制し、代わりにモデルをデフォルトのツリー状形式で表示する手段を提供します。これにより、開発者はモデルに完全かつ直接的にアクセスできるようになります。


F5 は、エディターを通常の状態に戻します。
ノードエクスプローラー
Alt/Control + X キーボードショートカットを使用すると、エディターで選択されたコードを表す AST を視覚化できます。

ノードの種類を確認する
見ている要素のタイプを知ることはあなたに非常に有用なインサイトを与えるかもしれません。Ctrl+Shift+P を押すだけで、MPS はキャレットにある要素のタイプを示すダイアログウィンドウをポップアップします。

キャレット下のノードの概念を確認する
Control/Cmd + Shift + S キーボードショートカットを使用すると、現在表示している、または選択したノードの概念を定義できます。
カーソル下のノードのエディターを確認する
Control/Cmd + Shift + E のキーボードショートカットを使うと、現在表示している、または選択している概念のエディター定義画面にアクセスできます。これは、概念の具体的な構文や利用可能なオプションを詳しく知りたい場合に特に便利です。

型システムトレース
型に関する問題が発生した場合、型システムトレースツールは、型がどのように計算されているかについてのインサイトを提供するため、問題の根本を発見できます。型システムデバッグの詳細を確認してください。
構造を調べる
新しい言語を学んでいるとき、その言語の構造的な側面はほとんどの場合調査を始めるのに最も良い場所です。概念を簡単に移動して使用方法を検索するためのショートカットは確かに便利です。

調査をスムーズかつ効率的に進めるためには、Ctrl+Space (定義へ移動)、Control/Cmd + N(ルートノードへ移動)、Control/Cmd + Shift + S(概念宣言へ移動)、Alt+F7 (使用箇所の検索)といった機能の使い方を必ず覚えておきましょう。

ショートカットを暗記する前に、移動メニューでそれらのほとんどを見つけることができます。

要素をインポートする
要素または言語機能を使用しようとしていますが、MPS がその言語構造を認識しないか、コード補完ダイアログにその要素が表示されないため、意図したとおりにコードを更新できません。これは、インポートの不足や使用言語の誤りなど、初心者によくある問題の症状です。
ある言語の言語構造を使用するには、その言語が「使用言語」リストに登録されている必要があります。
モデルから要素を入力できるようにするには、最初にモデルをインポートする必要があります。
また、言語が別の言語の機能を強化するには、その言語が拡張言語の中にリストされている必要があります。

モデルまたは言語をリストにすばやく簡単に追加するには、プロパティダイアログに加えて、いくつかの便利なキーボードショートカットを使用できます。

過渡モデルを保存
ジェネレーターからエラーが発生した場合は、一時モデルの保存機能をオンにすることを検討してください。これにより、インスペクションのコード生成のすべての中間段階が保持されます。


一体なぜこのエラーや警告が出ますか?

MPS がコードの一部に不満を持っていることがわかり、その理由を知りたいと考えています。Control + Alt + Click/Cmd + Alt + Click を使用して、詳細を示すダイアログを開きます。

ルールに移動ボタンをクリックすると、エラー / 警告をトリガーするルールに移動します。
関連ページ:
型システムのデバッグ
型システムをデバッグするために、MPS は型システムトレースを提供します - それは型システムエンジンの中で起こる評価プロセスへのインサイトをあなたに与える統合された視覚的なツールです。自分で試してみる:型システムを簡単に試すことができるように、専用のサンプル言語を用意しました。MPS にバンドルされている式サンプルプロジェクトを開きます。これは、ユーザーホームフォルダー内のサンプルプロジェクトの中で使用可能になります。サンプル言語実験する言語は、いくつかの型、4 つの算術演算(+、-、*、/...
エディターの指示
MPS でコーディングすると、テキストエディターで通常コードを入力する方法と MPS でコードを編集する方法にいくつかの違いがあることに気づくでしょう。MPS では、射影エディターを通してコードを入力しながら AST を直接操作します。このエディターはテキストを編集しているような錯覚を与えますが、それには限界があります。そのため、カーソルを置ける場所やその位置に入力できる内容には若干の制限があります。射影エディターは多くの分野で大きなメリットをもたらすと考えています。慣れるまでには少し時間がかか...
言語プラグインのインストール方法
MPS は他の言語でも簡単に拡張できます。言語は通常の zip ファイルとしてパッケージされています。MPS プラグインディレクトリに解凍し、再起動時に MPS がロードされます。言語プラグインをインストールする最も便利な方法は、設定ダイアログで利用できるプラグインマネージャーを使用することです。以前に受け取った zip ファイルをインストールするか(ディスクからプラグインをインストールオプション)、リポジトリの参照ボタンをクリックして JetBrains マーケットプレイスで利用可能なプラグイン...