问题标签 [dsl-tools]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
30 浏览

visual-studio - Visual Studio 的 Find 可以与新的文件类型挂钩吗?

我创建了一个实体建模 DSL ( https://github.com/msawczyn/EFDesigner ),并希望用户能够在查看模型时搜索模型(对于类名、属性名、关联端点名称等) .)。

我想挂钩 Visual Studio 的Find功能并在窗口中显示搜索结果Find Results,然后在他们选择元素时将焦点放在元素上Find Results,就像选择Find Results代码条目将您导航到该代码行一样。我目前正在使用Error List窗口中的错误和警告进行这种导航。

我似乎在 API 的任何地方都找不到用于挂钩Find功能的文档。基于 Visual Studio 的体系结构,我假设这是一项服务。

这是一个扩展点吗?不可行吗?如果可以做到,有人可以指点我的文档吗?

提前致谢。

0 投票
1 回答
1473 浏览

visual-studio-2019 - 如何在 Visual Studio 2019 中创建 DSL 工具项目?

还有其他人在 Visual Studio 2019 中创建新的 dsl 工具项目时遇到问题吗?

我在任何地方都找不到“特定于域的语言设计器”解决方案模板(在 Visual Studio 2017 中命名)...

虽然官方文档在这里引用它并没有改变:

https://docs.microsoft.com/pt-pt/visualstudio/modeling/how-to-define-a-domain-specific-language?view=vs-2019

谁能指出我正确的方向?

0 投票
1 回答
120 浏览

vsix - 如何在 Visual Studio 2019 中异步加载 ModelingPackage(DSL 工具)?

我有一个我使用的 DSL 工具项目,[ProvideAutoLoad]因为它向 Visual Studio 添加了一组菜单命令,以允许用户转换代码(我们有很多文本模板)以及其他一些东西。

由于 VS2019不再允许自动加载同步包,即使启用自动加载选项,我也会收到烦人的警告。

显然,微软没有计划提供异步版本ModelingPackage(我实际上开始质疑他们是否不会完全停止使用 DSL 工具)。

有人找到解决此问题的方法吗?

我尝试使用另一个包 - 构建为AsyncPackage- 以便加载我的 DSL-tools 包,但我最终使用该服务InitializeAsync()遇到各种异常。IVsShell

0 投票
2 回答
132 浏览

parsing - 图形 DSL 工作台使用什么方法:解析器还是投影?

据我所知,DSL 编辑器使用两种方法:

1-开发文本 DSL 的基于解析器的方法:用户指定语法,工作台生成识别该语法的解析器。解析器构建一个抽象语法树,供代码生成器等使用。

2-投影方法:这里没有解析器。抽象语法树由用户的手势直接编辑,投影规则指定抽象语法树的呈现方式。这允许同时使用不同的符号(文本、图形、表格...)

现在,当我查看仅图形化的 DSL 工作台(例如 Microsoft 的 DSL 工具)时,我想知道它们使用什么方法以及定义 DSL 背后涉及的步骤是什么。如果它是投影方法,那么为什么它仅限于图形符号?

我的想法是它同时使用两者。使符号图形化的投影方法,但模型以特定格式(例如 XML)保存并解析。

谢谢你。

0 投票
1 回答
156 浏览

visual-studio - Visual Studio 2019 DSL 工具箱(Microsoft Corporation .Net 组件的 4.0.0.0 版)

我已经建立了一个已经正常工作一段时间的 dsl。但是,在最近对域模型进行更改后,单个项目的一个项目工具箱(所有其他工具箱项目都正常运行)

最近的更改是在域模型上扩展类属性,并且初始测试工作正常。在我下次打开项目并运行 vs-experimental 时签入并关闭后,工具箱已取消同步。

它在工具箱上可见,我可以通过 DSL Explorer(右键单击,新建 xxx)“手动”添加类,并且对象正确显示。所有其他对象都在工具箱中工作(拖放),只是单个对象。有问题的项目显示消息“Microsoft Corporation .Net 组件的版本 4.0.0.0”。如果我使用调试日志运行 vs,我会得到以下输出。

我已经重置了工具箱,删除了 tdb 文件,并在实验和核心与实例中重新初始化和删除了工具箱注册表项。仍然没有运气。

有没有人看到/修复工具箱的类似问题?可以正确添加和显示类(dsl explorer),而不是通过工具箱。

非常感谢

0 投票
2 回答
686 浏览

.net - VS2022 可扩展性:如何解决“在 T4 模板执行中,‘Assembly 1’和‘Assembly2’中都存在类型‘XXX’

我有一个扩展,我正在从 VS2019 更新到 VS2022。它是使用建模 SDK 的 DSL,并通过 T4 模板生成代码。

我几乎已经转换了,但是在运行 T4s 时,我得到了

并且无法弄清楚如何解决这个问题。

我没有在我的主文件中包含这些程序集,也没有在我的或项目.tt中引用它们,但我从其他一些错误中了解到我必须解决这个问题,并且作为环境 VS2022 环境的一部分隐式可用。由于它们不属于我的项目,因此我无法使用 Visual Studio机制来消除歧义。DslDslPackageEnvDTE8.0Microsoft.VisualStudio.InteropAlias

我已经阅读了关于类似问题的其他问题,但没有一个是这个问题,他们的解决方案真的不适用。

感谢任何人可以提供的任何帮助或指导。