2011-02-13 56 views
1

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

在一个插件我可以使用较高级别模型通过编程方式访问该文档:

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

作为一个例子。

有没有办法从MEF内部做这件事时,试图画边缘?

回答

1

好吧,可以这样做。

这种情况的一般过程是: 1)ITextBuffer - > ITextDocument(其中有一个文件名) 2)使用文件名查找项目项(例如:递归项目项) 3)从获得FCM项目和使用它

0

我不相信现在有任何方法可以自己解析它。

我认为编译器作为一个服务的东西,他们正在为将来的VS版本工作,将有助于此。