【发布时间】:2012-08-06 18:43:50
【问题描述】:
我正在为 ReSharper 7 编写一个插件,我希望能够在我的插件中使用 Call Tracking。我在 SDK 中没有遇到任何可以让我这样做的东西,有可能吗?
具体来说,我希望能够从我的IRecursiveElementProcessor 中获取方法的“传入调用”和“传出调用”。
【问题讨论】:
标签: c# resharper-plugins
我正在为 ReSharper 7 编写一个插件,我希望能够在我的插件中使用 Call Tracking。我在 SDK 中没有遇到任何可以让我这样做的东西,有可能吗?
具体来说,我希望能够从我的IRecursiveElementProcessor 中获取方法的“传入调用”和“传出调用”。
【问题讨论】:
标签: c# resharper-plugins
ReSharper 中的“呼叫跟踪”是一种用户端功能,但不是用于其他功能的通用引擎。基本上它使用两个 API - Find Usages 和 Resolve。要查找方法或属性的用法(调用),您必须使用 IPsiServices:Finder 并查找从给定代码块调用的方法和属性,您必须使用 RecursiveElementProcessor 处理它的语法树,请求每个树节点的引用 ITreeNode:GetReferences( ) 并使用 IReference:Resolve 解析每个引用。 您应该用于这些操作的基本接口是: ITreeNode 参考 IDeclaredElement 声明
【讨论】: