symref
Version:
Static code checker for AI code agents (Windsurf, Cline, etc.)
119 lines • 4.66 kB
TypeScript
import { AnalyzerOptions, SymbolAnalysisOptions, ReferenceResult, SymbolInfo, CallGraphResult } from '../types/index.js';
import { ProjectManager } from './ProjectManager.js';
import { SymbolFinder } from './SymbolFinder.js';
import { NodeUtils } from '../utils/NodeUtils.js';
import { CallGraphAnalyzer } from './CallGraphAnalyzer.js';
/**
* TypeScriptコードのシンボル参照を分析するクラス
*/
export declare class SymbolReferenceAnalyzer {
private projectManager;
private symbolFinder;
private nodeUtils;
private callGraphAnalyzer;
private basePath;
/**
* コンストラクタ
* @param options 設定オプション
* @param dependencies 依存コンポーネント(オプション、テスト用)
*/
constructor(options: AnalyzerOptions, dependencies?: {
projectManager?: ProjectManager;
symbolFinder?: SymbolFinder;
nodeUtils?: NodeUtils;
callGraphAnalyzer?: CallGraphAnalyzer;
});
/**
* シンボルの参照を分析する
* @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;
/**
* シンボルが存在するかどうかを確認する
* @param symbolName シンボル名
* @returns シンボルが存在する場合はtrue、存在しない場合はfalse
*/
hasSymbol(symbolName: string): boolean;
/**
* プロジェクトインスタンスを取得する
* @returns プロジェクトインスタンス
*/
getProject(): import("ts-morph").Project;
/**
* クラスメンバーの種類を判定する(内部メソッド)
* @param className クラス名
* @param memberName メンバー名
* @returns シンボルの種類
*/
private determineClassMemberType;
/**
* クラスメンバーノードを検索する(内部メソッド)
* @param classNameOrNode クラス名またはクラスのノード
* @param memberName メンバー名
* @returns メンバーノード
*/
private findClassMemberNode;
/**
* クラスのプロパティまたはメソッドの参照を分析する
* @param containerName コンテナ名(クラス/インターフェース名)
* @param memberName メンバー名(メソッド/プロパティ名)
* @param options 分析オプション
* @returns 参照分析結果
*/
analyzePropertyOrMethod(containerName: string, memberName: string, options?: SymbolAnalysisOptions): ReferenceResult;
}
//# sourceMappingURL=SymbolReferenceAnalyzer.d.ts.map