UNPKG

symref

Version:

Static code checker for AI code agents (Windsurf, Cline, etc.)

119 lines 4.66 kB
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