symref
Version:
Static code checker for AI code agents (Windsurf, Cline, etc.)
67 lines • 2.69 kB
TypeScript
import { Project, Node } from 'ts-morph';
import { SymbolLocation } from '../types/index.js';
/**
* シンボルの定義と参照を検索するクラス
*/
export declare class SymbolFinder {
private project;
private nodeUtils;
/**
* コンストラクタ
* @param project ts-morphのプロジェクトインスタンス
*/
constructor(project: Project);
/**
* シンボルの定義ノードを見つける
* @param symbolName シンボル名
* @returns 定義ノード(見つからない場合はundefined)
*/
findDefinitionNode(symbolName: string): Node | undefined;
/**
* 定義情報を抽出する
* @param definitionNode 定義ノード
* @returns 定義情報
*/
extractDefinitionInfo(definitionNode: Node): SymbolLocation;
/**
* シンボルの参照を収集する
* @param symbolName シンボル名
* @param definitionNode 定義ノード
* @param includeInternalReferences 内部参照を含めるかどうか
* @returns 参照情報の配列
*/
collectReferences(symbolName: string, definitionNode: Node, includeInternalReferences?: boolean): SymbolLocation[];
/**
* 定義ノードがクラスまたはインターフェースの定義かどうかを判定する
* @param node 定義ノード
* @returns クラスまたはインターフェースの定義かどうか
*/
private isClassOrInterfaceDefinition;
/**
* 参照情報を抽出する
* @param node 参照ノード
* @param currentFile 現在のファイルパス
* @param contextPrefix コンテキスト情報の接頭辞 (例: "JSX Element")
* @returns 参照情報
*/
private extractReferenceInfo;
/**
* シンボルが存在するかどうかを確認する
* @param symbolName シンボル名
* @returns シンボルが存在する場合はtrue、存在しない場合はfalse
*/
hasSymbol(symbolName: string): boolean;
/**
* プロジェクト内のすべてのエクスポートされたシンボルを取得
* @param filterType 特定のシンボルタイプでフィルタリングする場合(オプション)
* @returns シンボル名とその位置情報のマップ
*/
getAllExportedSymbols(filterType?: 'class' | 'interface' | 'function' | 'enum' | 'variable'): Map<string, SymbolLocation>;
/**
* 宣言がエクスポートされているかどうかを確認
* @param node 宣言ノード
* @returns エクスポートされている場合はtrue
*/
private isExported;
}
//# sourceMappingURL=SymbolFinder.d.ts.map