我为Visual Studio 2008编写了基本的语言服务扩展,用于我的工作室专有脚本语言。它的工作原理非常好,我已经实现了一个基本的符号表,以跟踪脚本定义和调用,允许goto定义功能。

我遇到的问题是,我只知道如何解析当前的活动视图,我想扫描整个解决方案的内容,以便用户可以获取他们尚未尚未定义的脚本的定义开放并解析。我已经弄清楚了如何生成解决方案中所有文件的列表,但是现在我需要创建一个新的microsoft.visualstudio.package。资源 它需要microsoft.visualstudio.textmanager.interop。ivstextlines 而且我不知道如何根据文件创建一个新的。

也许我以错误的方式解决问题,有人可以将我指向一种更好的方法,以使文件被语言解析。

问候,科林

有帮助吗?

解决方案

我发现视觉工作室需要一个新来源的原因是,它保留了它们的内部列表,它们就像编辑器保存的文本文件中的视图一样。

我得出的结论是,关闭的文件不需要IVStextLines或要输入源文件的内部列表,因为我没有直接在其上进行任何操作,在这种情况下,我所关心的只是构建表符号及其相应的文本范围。因此,我为我的解析器创建了一个新的API,该API只是拿起一个字符串并构建了我的AST,而不是从parserequest中抓住文本,并且只担心我需要记录的特定类型的符号。然后,我将其推入后台工作者。

所以我想我正在以错误的方式解决这个问题。尽管看起来确实很奇怪,但我不能仅仅触发一个文件即可打开到源列表中。

有趣的是,我在他们的支持论坛上向微软提出了这个问题,他们建议我我必须购买一些服务和支持计划,以回答我的问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top