- Alle Docs auf verifizierte AST-Knotentypen aktualisiert (declClass, declIntf, declProc, etc.) - Scaffold/ entfernt und durch konkreten Integration Guide ersetzt (06-Integration-Guide.md) - Neue Docs: AST-Referenz (03), NodeKind-Mapping (05), Integration Guide (06) - Checklist um bekannte Einschränkungen erweitert (with-Statements, .dfm/.fmx, Generics) - UAuth.pas erweitert: Sichtbarkeitsbereiche, Felder, Properties, Constructor/Destructor - UTypes.pas neu: Enums, Records, Type-Aliase, Konstanten, Class Methods, verschachtelte Typen - UnitResolution.md mit konkreten AST-Strukturen aktualisiert - README.md an neue Architektur-Beschreibung angepasst
CodeGraph Pascal/Delphi Support — Konzept & Bauplan
Dieses Verzeichnis enthält einen umsetzbaren Bauplan für Pascal/Delphi-Support in CodeGraph. Es basiert auf der tatsächlichen CodeGraph-Architektur und den verifizierten AST-Knotentypen von tree-sitter-pascal.
Ziel: CodeGraph soll Pascal/Delphi-Dateien indexieren und daraus Nodes (Units, Klassen, Methoden, Properties, Enums, …) sowie Edges (uses/imports, calls, extends, implements, …) extrahieren.
Inhalt
| Verzeichnis / Datei | Beschreibung |
|---|---|
Docs/01-Implementation-Plan.md |
Implementierungs-Roadmap mit konkreten AST-Typen |
Docs/02-Capture-Convention.md |
Wie Pascal an CodeGraphs LanguageExtractor-Interface andockt |
Docs/03-AST-Referenz.md |
Verifizierte AST-Knotentypen aus tree-sitter-pascal |
Docs/04-Checklist.md |
Umsetzungs-Checkliste mit bekannten Einschränkungen |
Docs/05-NodeKind-Mapping.md |
Explizite Zuordnung Delphi → CodeGraph NodeKind/EdgeKind |
Docs/06-Integration-Guide.md |
Konkrete Code-Diffs für grammars.ts, types.ts, tree-sitter.ts |
fixtures/ |
Delphi-Beispieldateien zum Testen der Extraktion |
resolution/ |
Resolver-Heuristiken (Unit-Mapping, Call-Resolution) |
Architektur-Übersicht
CodeGraph verwendet keine per-Sprache Plugin-Verzeichnisse. Die Integration erfolgt zentral in drei Dateien:
src/types.ts—LanguageUnion-Type undDEFAULT_CONFIG.includePatternssrc/extraction/grammars.ts— Grammar-Loader, Extension-Mapping, Display-Namesrc/extraction/tree-sitter.ts—LanguageExtractor-Konfiguration in derEXTRACTORSMap
Wie du damit arbeitest
- Integration Guide lesen (
Docs/06-Integration-Guide.md) — enthält die exakten Code-Änderungen npm install tree-sitter-pascalals Dependency hinzufügen- Änderungen in den drei Dateien vornehmen (types.ts, grammars.ts, tree-sitter.ts)
- Resolver erweitern (mindestens
uses→ Unit-File, einfache Call-Auflösung) - Fixtures in die Tests aufnehmen und Assertions hinzufügen
Grammar
Verwendet wird: tree-sitter-pascal (npm: tree-sitter-pascal)
- Unterstützt: Delphi, FreePascal, Standard-Pascal
- Dateierweiterungen:
.pas,.dpr,.dpk,.lpr