☰ Menu

02.10.2026 · Signal Titans Editorial

Erstellung von Aufrufgraph-Analysen in TypeScript mit VS-Code-APIs

Erfahren Sie, wie Sie VS-Code-APIs und TypeScript nutzen, um mehrstufige Aufrufgraphen für Software-Analysen zu erstellen.

Eine minimalistische Vektorillustration eines leuchtenden zentralen Knotens, der auf einem dunkelblauen Hintergrund mit zwei kleineren Knotenpunkten verbunden ist.

Da KI-gestützte Programmierassistenten Hunderte von Codezeilen über zahlreiche Dateien hinweg generieren, lassen sich traditionelle Code-Review-Verfahren immer schwerer aufrechterhalten. Die Erstellung von Quelltext mithilfe großer Sprachmodelle übersteigt oft die Fähigkeit von Entwickelnden, den architektonischen Kontext vollständig zu überblicken. Um dieser Herausforderung zu begegnen, kann eine Codebasis nicht mehr nur als Ansammlung einzelner Dateien betrachtet werden, sondern als strukturierter Aufrufgraph, in dem Funktionen als Knoten und Aufrufe als Kanten dienen. Ein technischer Fachartikel auf freeCodeCamp beschreibt, wie Entwickler TypeScript und die internen Sprach-APIs von VS Code nutzen können, um solche mehrstufigen Aufrufgraphen automatisiert zu erzeugen.

Nutzung von Sprachserver-Intelligenz

Anstatt eigene Parser für einzelne Programmiersprachen zu schreiben, können Entwickler detaillierte semantische Informationen direkt aus der Erweiterungsinfrastruktur von VS Code extrahieren. Durch den Einsatz von Befehlsprovidern wie executeDocumentSymbolProvider und prepareCallHierarchy können benutzerdefinierte Erweiterungen bestehende Sprachserver abfragen – etwa den nativen Dienst von TypeScript, gopls für Go oder Pyright für Python. Dieser Ansatz lagert die dateiübergreifende Symbolauflösung und das Import-Tracking an die bereits vorhandene Analyse-Ebene des Editors aus.

Stabile Identifikation und Deduplizierung

Um einen präzisen Aufrufgraphen über komplexe Codebasen hinweg aufzubauen, reichen Funktionsnamen allein nicht aus, da Namenskollisionen in unterschiedlichen Dateien auftreten können. Die vorgestellte Architektur kombiniert Datei-URIs mit Startpositionen – konkret den Eigenschaften von selectionRange –, um eindeutige Symbol-Bezeichner zu generieren. Ein zentrales Symbol-Register verfolgt eingehende und ausgehende Aufrufe, um Referenzen zu deduplizieren. Dadurch werden Funktionen, die in mehreren Dateien importiert werden, innerhalb der visuellen Ausgabe zu einzelnen logischen Knoten zusammengefasst.

BFS-Traversierung und Nebenläufigkeitssteuerung

Das Navigieren durch mehrstufige Aufrufbeziehungen erfordert die systematische Traversierung eingehender und ausgehender Aufrufe ausgehend von einer aktiven Datei oder einem Symbol. Die Anwendung der Breitensuche (Breadth-First Search, BFS) ermöglicht es der Graph-Engine, Abhängigkeiten Ebene für Ebene bis zu einer definierten Tiefe zu untersuchen. Da die Abfrage von Sprachservern asynchrone Aufrufe innerhalb der Erweiterung beinhaltet, verhindert die Steuerung der Ausführungslimits über begrenzte Warteschlangen Leistungseinbußen bei tiefen Graph-Analysen.

KI-generierte redaktionelle Illustration; kein Dokumentarfoto.

Quelle: How to Build a Code Graph in TypeScript Using VS Code's Language APIs