MPS 2020.3 ヘルプ

解決方法を見つける

このドキュメントは MPS に関する問題を解決するために何をすべきか、どこを見ればよいかについてステップバイステップのアドバイスを提供するべきです。それは私たち自身の経験を取り入れたパターンと使い方の体系的な集まりです。

リフレクションエディター

投影エディターはその性質上、制御された方法でモデルをユーザーに提示します。言語設計者の意図に応じて、言語はユーザからいくつかの情報またはいくつかのノードを隠し、コードを操作するためのいくつかの方法を禁止することがあります。また、ある意味でエディターの定義が壊れていたり不完全だったりすると、エディターはユーザが望む方法でコードを修正することをユーザに許可しないかもしれません。リフレクションエディターは、言語エディターを抑制し、代わりにデフォルトのツリーのような形式でモデルを表示する手段を提供します。このようにして、開発者はモデルへの完全かつ直接的なアクセスを持ちます。

Ref1

Ref2

F5 returns the editor to the normal.

ノードエクスプローラー

The Alt/Control + X keyboard shortcut gives the user a way to visualise the AST that represents the piece of code that has been selected in the editor.

Exp1

ノードの種類を確認する

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

Type

carret のノードの概念を確認してください

The Control/Cmd + Shift + S keyboard shortcut will get you to the definition of the concept of the node you are currently looking at or that you have selected.

carret のノードのエディターを確認してください

The Control/Cmd + Shoft + E keyboard shortcut will get you to the definition of the editor for the concept you are currently looking at or that you have selected. This may be in particular useful if you want to familiarize yourself with the concrete syntax of a concept and all the options it gives you.

Gte

型システムトレース

When you run into problems with types, the Type-system Trace tool will give you an insight into how the types are being calculated and so could help you discover the root of the issues. Check out the details in 型システムデバッグ

構造を調べる

新しい言語を学んでいるとき、その言語の構造的な側面はほとんどの場合調査を始めるのに最も良い場所です。概念を簡単にナビゲートして使用方法を検索するためのショートカットは確かに便利です。undefined

Go to

You should definitely familiarize youself with Ctrl+Space (Go To Definition), Control/Cmd + N (Go To Root Node), Control/Cmd + Shift + S (Go To Concept Declaration) and Alt+F7 (Find usages) to make your investigation smooth and efficient.
Go to concept

Before you learn the shortcuts by heart, you can find most of them in the Navigate menu:
Navigate menu

要素をインポートする

要素または言語機能を使用しようとしていますが、MPS は言語構成を認識しないか、コード補完ダイアログでその要素を提供しません。そのため、コードを希望どおりに更新できません。これは、典型的な初心者の問題の単純化です - インポートと使用言語の欠落。

  • In order to use language constructs from a language, the language has to listed among Used Languages.

  • To be able to enter elements from a model, the model must be imported first.

  • Also, for your languages to enhance capabilities of another language, the language must be listed among the Extended Languages.

Prop1

To quickly and conveniently add models or languages to the lists, you may use a couple of handly keyboard shortcuts in addition to the Properties dialog:
Model shortcuts

過渡モデルを保存

If you are getting errors from the generator, you may consider turning the Save Transient Models functionality on. This will preserve all intermediate stages of code generation for your inspection.

Transient on off

Transient

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

Warning report

You see that MPS is unhappy about some piece of code and you want to find out why. Use Control + Alt + Click / Cmd + Alt + Click to open up a dialog with the details.

Warning dialog

The Go To Rule button will get you to the rule that triggers the error/warning.

関連ページ:

型システムのデバッグ

型システムをデバッグするために、MPS は型システムトレースを提供します - それは型システムエンジンの中で起こる評価プロセスへのインサイトをあなたに与える統合された視覚的なツールです。自分で試してみる:型システムを簡単に試すことができるように、専用のサンプル言語を用意しました。MPS にバンドルされている式サンプルプロジェクトを開きます。これは、ユーザーホームフォルダー内のサンプルプロジェクトの中で使用可能になります。サンプル言語実験する言語は、いくつかの型、4 つの算術演算(+、-、*、/...

エディターの指示

MPS でコーディングしている場合、テキストエディターでの通常のコード入力方法と MPS でのコードの編集方法にいくつかの違いがあることに気付くでしょう。MPS では、プロジェクションエディターでコードを入力するときに AST を直接操作します。エディターはテキストの編集のような錯覚を与えますが、それには限界があります。そのため、カーソルを配置できる場所とその位置に入力できるものがわずかに制限されます。信じているように、プロジェクションエディターは多くの分野で大きなメリットをもたらします。慣れる...

言語プラグインのインストール方法

MPS は他の言語でも簡単に拡張できます。言語は通常の zip ファイルとしてパッケージされています。MPSプラグインディレクトリに解凍し、再起動時に MPS がロードされます。言語プラグインをインストールする最も便利な方法は、設定 / 環境設定ダイアログ で利用可能なプラグインマネージャーを使