symref
Version:
Static code checker for AI code agents (Windsurf, Cline, etc.)
90 lines (89 loc) • 3.27 kB
TypeScript
import { SymbolAnalysisOptions, ReferenceResult, SymbolInfo, CallGraphResult, RuntimeTraceOptions, RuntimeTraceResult } from '../types/index.js';
/**
* TypeScriptコードのシンボル参照を分析するクラス
*/
export declare class SymbolReferenceAnalyzer {
private projectManager;
private symbolFinder;
private nodeUtils;
private callGraphAnalyzer;
private runtimeTraceAnalyzer;
private options;
private basePath;
/**
* コンストラクタ
* @param options 設定オプション
*/
constructor(options: RuntimeTraceOptions);
/**
* シンボルの参照を分析する
* @param symbolName 分析対象のシンボル名
* @param options 分析オプション
* @returns 参照分析結果
*/
analyzeSymbol(symbolName: string, options?: SymbolAnalysisOptions): ReferenceResult;
/**
* ファイル内の未参照シンボルをチェック
* @param filePath チェック対象のファイルパス
* @returns 他のファイルから参照されていないシンボルのリスト
*/
checkFile(filePath: string): SymbolInfo[];
/**
* トップレベルのシンボルをチェックする
* @param sourceFile ソースファイル
* @param checkedSymbols チェック済みシンボルのセット
* @param unreferencedSymbols 未参照シンボルのリスト
*/
private checkTopLevelSymbols;
/**
* クラスメンバーをチェックする
* @param sourceFile ソースファイル
* @param checkedSymbols チェック済みシンボルのセット
* @param unreferencedSymbols 未参照シンボルのリスト
*/
private checkClassMembers;
/**
* メソッド参照を検索する
* @param className クラス名
* @param methodName メソッド名
* @returns 参照の配列
*/
private findMethodReferences;
/**
* プロパティ参照を検索する
* @param className クラス名
* @param propertyName プロパティ名
* @returns 参照の配列
*/
private findPropertyReferences;
/**
* 呼び出しグラフを構築する
* @returns 構築されたノード数
*/
buildCallGraph(): number;
/**
* 2つのシンボル間の呼び出し経路を分析
* @param fromSymbol 開始シンボル
* @param toSymbol 終了シンボル
* @returns 呼び出し経路の分析結果
*/
traceCallPath(fromSymbol: string, toSymbol: string): CallGraphResult;
/**
* シンボルを呼び出すすべての経路を分析
* @param symbol 対象シンボル
* @returns 呼び出し経路の分析結果
*/
findCallers(symbol: string): CallGraphResult;
/**
* プロジェクトインスタンスを取得する
* @returns プロジェクトインスタンス
*/
getProject(): import("ts-morph").Project;
/**
* 2つのシンボル間の呼び出し経路を動的に分析
* @param fromSymbol 開始シンボル
* @param toSymbol 終了シンボル
* @returns 呼び出し経路の分析結果
*/
traceCallPathRuntime(fromSymbol: string, toSymbol: string): Promise<RuntimeTraceResult>;
}