Diese Fähigkeit benötigt Bun. Das Skript verwendet bun:sqlite.
Verfolgt die Aufrufkette von der gegebenen Codeposition rückwärts zu allen Einstiegspunkten, die sie erreichen können.
Unterstützte Sprachen: alle von CodeGraph indizierten Sprachen (C#, Java, Kotlin, Go, TypeScript, JavaScript, Rust, C, C++, Vue, JSX, TSX, Terraform, Helm YAML, …)
Eingabe: Ein Symbolname, Dateipfad oder file:line-Referenz. Beispiele:
FindToolNameCollisionsToolsMappingExtensions.cs:145src/services/auth.ts:89CheckCertificate
Voraussetzung: CodeGraph muss in diesem Projekt indiziert sein (.codegraph/-Verzeichnis muss existieren). Fehlt es, weisen Sie den Benutzer an, zuerst codegraph init auszuführen.
Schritte
1. Skript ausführen
Das Skript ist scripts/find-call-chain.ts im Basisverzeichnis dieser Fähigkeit. Führen Sie es aus dem Projektordner aus, da es .codegraph/ aus dem aktuellen Ordner sucht:
bun <skill-base-directory>/scripts/find-call-chain.ts "<input>"
Zeigen Sie dem Benutzer die vollständige Ausgabe wortwörtlich an.
2. Mehrere Symboltreffer
Wenn das Skript "Multiple symbols matched" ausgibt, listen Sie die angezeigten Kandidaten auf und bitten Sie den Benutzer, es erneut mit einer file:line-Referenz für das gewünschte Symbol auszuführen.
3. Kein Symbol gefunden
Wenn das Skript mit "No symbol found" beendet wird:
- Probieren Sie alternative Schreibweisen oder eine
file:line-Referenz - Überprüfen Sie, ob CodeGraph aktuell ist:
codegraph index
Erkennung von Endknoten (im Skript eingebaut – keine LLM-Beurteilung)
Das Skript beendet die Verfolgung eines Zweigs, wenn:
| Bedingung | Beispiele |
|---|---|
kind = route (CodeGraph nativ) | Routenknoten eines Frameworks |
| Sprachmustererkennung | *Controller (C#/Java), *Activity (Kotlin), main (Go/Rust/C), *Page/*Route (TS/JS) |
| Keine Aufrufer gefunden | Blattknoten im Aufrufgraph |
| Tiefenbegrenzung (6 Hops) | Im Baum als ⚠ depth cap markiert |
| Zyklus erkannt | Im Baum als ⟳ cycle markiert |