カスタムアスペクト
構造、エディター、型システムなどの通常の言語アスペクトと並んで、言語制作者はカスタム言語アスペクト(たとえば、インタープリター、代替型システムなど)を作成し、言語ランタイムに生成してから実行することができます。コードからこれらの生成されたアスペクトを使用してください。
カスタムアスペクトとは何ですか?
MPSの言語定義は、構造、エディター、type-system、ジェネレータ (1) というアスペクトの集まりと考えることができます。
言語の各側面は、別々の側面モデルで定義されています。例:言語Lのエディターの側面はL.editorモデルで定義されています。
このアスペクトは実行時、つまり言語がMPSの内部で使用されているときに言語のアスペクトランタイム (2)に生成できます。生成されたクラスは(3) LanguageRuntime.getAspect()を通じて対応するサブシステムによって取得され、さらに(4)を使用することができます。
カスタムアスペクト記述子
言語アスペクトのIDE部分は、SimpleLanguageAspectDescriptorによって記述されます。SimpleLanguageAspectDescriptorは、言語のプラグインモデルで作成できます。
アスペクト名 | アスペクトの名前他の言語でこの名前を持つモデルを作成することは可能でしょう、そのモデルは与えられた他の言語のためのこの局面のモデルとして考えられるでしょう。 |
---|---|
主な言語 | アスペクトの「主要」言語はこのアスペクトを記述するモデルに自動的にインポートされ、これらの言語の概念は「新規ノード」メニューの上に表示されます。 |
追加言語 | 現在は実装されていません。これらは、この種のアスペクトモデルでユーザーが使用することを望んでいる可能性がある言語です(ただしそうは思わないかもしれません)。それらはアスペクトに関するいくつかの「ヒント」で示されます。これは発見の目的のためだけのものです。editor.tables言語は、「エディター」の側面にとってはそのような「追加の言語」かもしれません。 |
ヘルプURL | このURLはこの概念のコンテキストヘルプを表示するために使用されます。 |
アイコン | この種のアスペクトモデルの近くの論理ビューに表示するアイコン。 |
クックブック
SimpleLanguageAspectDescriptorの概念は、この側面のIDE統合のみをカバーしています。あなたの側面のためのランタイムを生成するためにジェネレータ部分を実装する方法と対応するサブシステムから生成されたコードを使用する方法を学ぶためにカスタム言語アスペクトクックブックを参照してください。
関連ページ:

カスタム言語アスペクトクックブック
構造、エディター、型システムなどの通常の言語アスペクトと並んで、言語制作者はカスタム言語アスペクト(たとえば、インタープリター、代替型システムなど)を作成し、言語ランタイムに生成してから実行することができます。コードからこれらの生成されたアスペクトを使用してください。このドキュメントでは、MPSにバ...

リファクタリング
リファクタリングのサポートは、すべての成熟した言語のIDE機能の非常に重要な部分です。MPSは、リファクタリングアクションの開発を簡素化するためのいくつかの機能を提供します。簡単なリファクタリングは、jetbrains.mps.lang.refactoring言語を使用して作成できます。この言語を使...

軽量DSL
MPSコア言語の長年の進化により、IDE統合用の言語記述型DSLの繰り返しパターンが認識されるようになりました。概念的には、それらはいくつかのより高いレベルのインターフェースを実装するプレーンなクラスによって表現されるより高いレベルの構造のように見え、ふるまいました。言語指向プログラミングの優れた伝...