Visual Studio DSL (ドメイン固有言語) ツールでデコレータの表示名を追加するにはどうすればよいですか?
質問
私の DSL プロジェクトには、ドメイン クラスのプロパティにリンクされた多数のデコレータを含むシェイプがあります。ただし、各デコレータに DisplayName プロパティ (意味のある値に設定) があるとしても、生成された DSL プロジェクトには表示されません。(t4 ファイルを再生成することを忘れていません。)
表示したい値として表示名のみを持つプロパティごとに別のデコレーターを作成する必要がありますか、それとも今のところ理解できない他の方法があるのでしょうか?
解決
デコレータの表示名は、生成された DSL 内の要素を「Example = a_value」として表示することを意味していると思います。ここで、a_value は実際の値、Example はプロパティ名です。
私が過去にこれを使ってやったことは、ブラウズ可能ではなく、デコレータが実際に指すものである 2 番目のプロパティ "ExampleDisplay" を作成することでした。次に、ExampleDisplay の Kind プロパティを「計算済み」に設定します。次に、部分クラスを実行できるデコレータを表示するためにツールキットが呼び出そうとするメソッドを提供する必要があります。
partial class ExampleElement
{
string GetExampleDisplayValue()
{
return "Example : " + this.Example;
}
}
DSL ダイアグラムでプロパティを設定するにはプロパティ ウィンドウを使用する必要があるため、これは理想的ではありません。(基になるプロパティの更新にもフックしない限り、プロパティ ウィンドウに遅れが生じることがあります)。実際の DSL ツールキットのように GUI で滑らかな編集を行うことは可能かもしれませんが、その方法はわかりません。
聞いてみる価値はあるかもしれない VSX フォーラム まだそうしていない場合は。