解決方法を見つける
このドキュメントは MPS に関する問題を解決するために何をすべきか、どこを見ればよいかについてステップバイステップのアドバイスを提供するべきです。それは私たち自身の経験を取り入れたパターンと使い方の体系的な集まりです。
リフレクションエディター
射影エディターはその性質上、制御された方法でモデルをユーザーに提示します。言語設計者の意図に応じて、言語はユーザからいくつかの情報またはいくつかのノードを隠し、コードを操作するためのいくつかの方法を禁止することがあります。また、ある意味でエディターの定義が壊れていたり不完全だったりすると、エディターはユーザが望む方法でコードを修正することをユーザに許可しないかもしれません。リフレクションエディターは、言語エディターを抑制し、代わりにデフォルトのツリーのような形式でモデルを表示する手段を提供します。このようにして、開発者はモデルへの完全かつ直接的なアクセスを持ちます。
F5 は、エディターを通常の状態に戻します。
ノードエクスプローラー
Alt/Control + X キーボードショートカットを使用すると、エディターで選択されたコードを表す AST を視覚化できます。
ノードの種類を確認する
見ている要素のタイプを知ることはあなたに非常に有用なインサイトを与えるかもしれません。Ctrl+Shift+P を押すだけで、MPS はキャレットにある要素のタイプを示すダイアログウィンドウをポップアップします。
carret のノードの概念を確認する
Control/Cmd + Shift + S キーボードショートカットを使用すると、現在表示している、または選択したノードの概念を定義できます。
carret のノードのエディターを確認する
Control/Cmd + Shoft + 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 マーケットプレイスにアップロー...