我正在为 ReSharper 7 编写一个插件,我希望能够从我的插件内部使用呼叫跟踪。我在 SDK 中没有遇到任何可以让我这样做的东西,这可能吗?
具体来说,我希望能够从我的IRecursiveElementProcessor
.
我正在为 ReSharper 7 编写一个插件,我希望能够从我的插件内部使用呼叫跟踪。我在 SDK 中没有遇到任何可以让我这样做的东西,这可能吗?
具体来说,我希望能够从我的IRecursiveElementProcessor
.
ReSharper 中的“呼叫跟踪”是一种用户端功能,但不是用于其他功能的通用引擎。基本上它使用两个 API - Find Usages 和 Resolve。要查找方法或属性的用法(调用),您必须使用 IPsiServices:Finder 并查找从给定代码块调用的方法和属性,您必须使用 RecursiveElementProcessor 处理它的语法树,请求每个树节点的引用 ITreeNode:GetReferences( ) 并使用 IReference:Resolve 解析每个引用。您应该为这些操作使用的基本接口是: ITreeNode IReference IDeclaredElement IDeclaration