如何在 Visual Studio DSL(域特定语言)工具中添加装饰器的显示名称?

发布于 2024-07-06 08:49:02 字数 200 浏览 6 评论 0原文

在我的 DSL 项目中,我有一个带有许多装饰器的形状,这些装饰器链接到我的域类上的属性。 但即使 ieach 装饰器具有 DisplayName 属性(设置为有意义的值),它也不会出现在生成的 DSL 项目中。 (我没有忘记使用重新生成 t4 文件。)

我是否必须为每个仅将显示名称作为我希望显示的值的属性创建另一个装饰器,或者是否有其他我无法弄清楚的方法现在?

In my DSL project I have a shape with a number of decorators that are linked to properties on my domain class. But even though ieach decorator has a DisplayName property (set to a meaningfull value) it does not appear in the generated DSL project. (I have not forgtten to use regenerate the t4 files.)

Do I have to create another decorator for each property that only has the display name as a value that I wish to display or is there some other way that I can't figure out right now?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

红衣飘飘貌似仙 2024-07-13 08:49:02

我假设装饰器的显示名称意味着您希望生成的 DSL 中的元素显示为“Example = a_value”,其中 a_value 是实际值,Example 是属性名称。

我过去所做的就是创建第二个属性“ExampleDisplay”,它不可浏览,并且是装饰器实际指向的。 然后,我将 ExampleDisplay 的 Kind 属性设置为“Calculated”。 然后,您需要提供工具包尝试调用的方法来显示您可以执行部分​​类的装饰器。

partial class ExampleElement
{
    string GetExampleDisplayValue()
    {
        return "Example : " + this.Example;
    }
}

这并不理想,因为您没有在 DSL 图上设置属性的好方法,您必须使用属性窗口。 (属性窗口有时会出现滞后,除非您也挂钩底层属性的更新)。 在 GUI 中获得实际 DSL 工具包所做的流畅编辑也许是可能的,但我还没有找到如何实现。

如果您还没有,也许值得询问 VSX 论坛已经这样做了。

I assume by a display name for the decorator you mean you want the element in the generated DSL to appear as "Example = a_value" where a_value is the actual value and Example is the property name.

What I've done with this in the past is to create second property "ExampleDisplay" that's not browsable and is what the decorator actually points to. I then set the Kind property of the ExampleDisplay to "Calculated". You then need to provide the method that the toolkit tries to call to display the decorator which you can do a partial class.

partial class ExampleElement
{
    string GetExampleDisplayValue()
    {
        return "Example : " + this.Example;
    }
}

This is not ideal as you don't get a good way of setting the property on the DSL diagram you have to use the properties window. (There's sometime lags from the property window unless you hook into the update of the underlying property too). Getting the slick editing in the GUI that actual DSL toolkit does maybe possible but I haven't found out how.

It maybe worth ask VSX forums if you haven't already done so.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文