2

我正在尝试将 Margin(通过 MEF)构建为 VS 插件。我需要获取包含方法定义的行。我发现有人在做这样的事情,但似乎大多数人都在解析测试。这似乎是一个非常糟糕的主意,因为它显然只适用于您知道如何解析的语言。

在插件中,我可以使用更高级别的模型以编程方式访问文档:

var fcm = _application.ActiveDocument.ProjectItem.FileCodeModel;
var elem = fcm.CodeElementFromPoint(point, vsCMElement.vsCMElementFunction);

举个例子。

无论如何,在尝试绘制边距时,是否可以从 MEF 内容中执行此操作?

4

3 回答 3

2

好的,所以它可以完成。

这样做的一般流程是:1)ITextBuffer -> ITextDocument(有文件名) 2)使用文件名查找项目项(例如:递归项目项) 3)从项目项中获取FCM并使用

于 2011-02-25T14:46:08.987 回答
0

我不相信现在有任何方法可以在不自己解析的情况下做到这一点。

我认为他们正在为未来版本的 VS 开发的编译器即服务将对此有所帮助。

于 2011-02-13T21:39:56.993 回答
0

他们添加了一些可以提供帮助的 CodeDOM 内容。您将能够导航代码树并搜索文本。这是一个非常基本的介绍:http: //msdn.microsoft.com/en-us/library/y2k85ax6%28v=vs.110%29.aspx

于 2014-07-22T22:06:51.833 回答