ドキュメントファセット
導入
ドキュメント言語を使用すると、言語構造をドキュメント化できます。ドキュメントは、情報ポップアップダイアログ (別名トゥーチップ) と専用のドキュメントツールウィンドウを通じて、言語の構造モデルのユーザーに即座に提供されます。さらに、ドキュメントは HTML javadoc スタイルのドキュメントとして生成することもできます。
始め方
言語のドキュメントを有効にするのは非常に簡単です:
言語のモジュールプロパティに移動します。
ファセットタブでドキュメントファセットを有効にします。

生成されたドキュメントの出力ディレクトリを選択し、「適用」または「OK」をクリックしてダイアログを閉じます。

これで、言語の構造モデル内の任意の概念定義にドキュメントを追加できるようになりました。概念がエディターで開いているときに、インテンションメニューからドキュメントの追加インテンションを使用します。
ドキュメントの作成
言語のドキュメント化には、いくつかの言語が関係しています。具体的には、jetbrains.mps.lang.core.doc 言語、jetbrains.mps.lang.docText 言語、および主に jetbrains.mps.lang.text 言語です。これらの言語は、ドキュメントの実際のテキストが表現される言語です。これらの言語を個別にインポートすることも、jetbrains.mps.devkit.documentation 開発キットをインポートすることもできます。
実際のテキストを作成できる jetbrains.mps.lang.text 言語は、いくつかの重要な概念で構成されています。
単語
個々の単語を表します。単語のスタイル (太字、斜体、下線) を変更したり、オプションで URL リンクを追加したりできます。これらはすべて、個々の単語のインスペクターツールウィンドウで設定されます。

ショートカットと MarkDown 構文を使用して、個々の単語やテキストの大部分にスタイルを設定することもできます (単語に MarkDown スタイルを適用するには Enter キーを押します)。
斜体 (Control + I) - * 単語 * または _ 単語 _
太字 (Control + B) - ** 単語 ** または __ 単語 __
太字斜体 - *** 単語 *** または ___ 単語 ___
下線付き (Control + U) - ~~ 単語 ~~
URL は、インスペクターツールウィンドウまたは「URL の追加」インテンションを使用して単語に追加できます。
ノードへの参照はドキュメントテキストに挿入することもできます。参照するノードの名前を入力するだけで、補完メニューに一致する利用可能なノードがすべて表示されます。

ドキュメントテキストにコードを挿入するには、「```」と入力してスペースキーを押します。コードを保持できる空のフィールド (MPS ノードとも呼ばれます) が表示されます。

次に、Control + Space を押して、補完メニューから目的のノードを選択します。
行数
さまざまな線の種類から柔軟に選択できます。

線の種類を変更するには、インテンションメニューから選択するか、特定の構文またはショートカットを使用します。
要素 | MarkDown 構文 | ショートカット |
|---|---|---|
ヘッダー 1 | # H1 | Control + 1 |
ヘッダー 2 | ## H2 | Control + 2 |
ヘッダー 3 | ### H3 | Control + 3 |
ヘッダー 4 | #### H4 | Control + 4 |
ヘッダー 5 | ##### H5 | Control + 5 |
ヘッダー 6 | ###### H6 | Control + 6 |
ヘッダー 1 | Control + 0 |

リスト
箇条書きリストと番号付きリストの両方が利用可能です。MarkDown またはインテンションを使用して、リストスタイルを線に設定または変更できます。
要素 | MarkDown 構文 |
|---|---|
箇条書き | - ライン |
番号付き行 | 1. 行 |

ドキュメントの表示
ドキュメントを含むポップアップダイアログを表示するには、概念への参照の上にマウスを移動するか、カーソルが参照上にあるときに F1 キーを押します。

ドキュメントの生成
論理ビューの構造アスペクトモデルをクリックし、リストから生成されたドキュメントをプレビューするを選択します。

生成されたすべての HTML および CSS ファイルは、言語のモジュールプロパティダイアログのドキュメントファセットタブで選択したフォルダーに保存されます。
生成されたドキュメントには、1 つのインデックスファイルと、言語の構造モデル内のすべての概念の HTML ファイルが含まれます。


関連ページ:
軽量 DSL
MPS コア言語を何年にもわたって進化させてきたため、IDE 統合のための言語記述 DSL の繰り返しパターンを認識するようになりました。概念的には、それらは、いくつかの高レベルのインターフェースを実装するプレーンクラスによって表現される高レベルの構造のように見え、動作しました。言語指向プログラミングの良い伝統では、これらのパターンを言語に反映し、プレーンな BaseLanguage クラスの上に薄い抽象化として再実装することにしました。このような抽象化を可能にするために、新しい軽量 DSL 言語が作...
基本言語
BaseLanguage は、Java とほぼ同じ構造のセットを共有するため、Java に対応する MPS です。BaseLanguage は、MPS でのコード生成の最も一般的なターゲットであり、同時に最も広範囲に拡張された言語です。Java との統合を簡素化するために、MPS のすべてのモジュールのクラスパスを指定することができます。クラスパスで見つかったクラスは、@java_stub モデルに自動的にインポートされるため、BaseLanguage を使用するプログラムで直接使用できます。MPS の...