通过SDK从插件内部使用ReSharper“呼叫跟踪”

本文关键字:呼叫 跟踪 呼叫跟踪 ReSharper SDK 插件 内部 通过 | 更新日期: 2024-11-06 16:18:56

我正在为 ReSharper 7 编写一个插件,我希望能够从我的插件内部使用呼叫跟踪。我在SDK中没有遇到任何可以让我这样做的东西,有可能吗?

具体来说,我希望能够从我的IRecursiveElementProcessor内部获取方法的"来电"和"传出电话"。

通过SDK从插件内部使用ReSharper“呼叫跟踪”

ReSharper中的"呼叫跟踪"是用户端功能,但不是用于其他功能的通用引擎。基本上它使用两个API - 查找用法和解析。若要查找方法或属性的用法(调用),必须使用 IPsiServices:Finder,要查找从给定代码块调用的方法和属性,必须使用 RecursiveElementProcessor 处理其语法树,请求每个树节点 ITreeNode:GetReferences() 的引用,并使用 IReference:Resolve() 解析每个引用。用于这些操作的基本接口应为:ITreeNode参考IDeclaredElement身份声明