ReSharper 7のプラグインを作成していますが、プラグイン内からコールトラッキングを使用できるようにしたいと考えています。SDKでこれを可能にするものは何も見つかりませんでしたが、それは可能ですか?
具体的には、メソッドの「着信」と「発信」を自分の内部から取得できるようにしたいIRecursiveElementProcessor
。
ReSharper 7のプラグインを作成していますが、プラグイン内からコールトラッキングを使用できるようにしたいと考えています。SDKでこれを可能にするものは何も見つかりませんでしたが、それは可能ですか?
具体的には、メソッドの「着信」と「発信」を自分の内部から取得できるようにしたいIRecursiveElementProcessor
。
ReSharperの「コールトラッキング」はユーザーエンド機能ですが、他の機能で使用するための汎用エンジンではありません。基本的に、2つのAPIを使用します-使用法の検索と解決。メソッドまたはプロパティの使用法(呼び出し)を見つけるには、IPsiServices:Finderを使用する必要があり、特定のコードブロックから呼び出されるメソッドとプロパティを見つけるには、RecursiveElementProcessorを使用して構文ツリーを処理し、各ツリーノードの参照を要求する必要がありますITreeNode:GetReferences( )そしてIReference:Resolveを使用して各参照を解決します。これらの操作に使用する必要のある基本的なインターフェイスは次のとおりです。ITreeNodeIReferenceIDeclaredElementIDeclaration