|
|
4 months ago | |
|---|---|---|
| .. | ||
| Docs | 4 months ago | |
| fixtures | 4 months ago | |
| resolution | 4 months ago | |
| README.md | 4 months ago | |
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. Zusätzlich werden DFM/FMX-Formulardateien unterstützt, um UI-Komponenten und Event-Handler-Verknüpfungen zu erfassen.
| 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 + DfmExtractor |
Docs/07-DFM-FMX-Support.md |
DFM/FMX Form-Dateien: Format-Referenz & Extraktions-Konzept |
fixtures/ |
Delphi-Beispieldateien zum Testen (.pas, .dpr, .dfm) |
resolution/ |
Resolver-Heuristiken (Unit-Mapping, Call-Resolution) |
CodeGraph verwendet keine per-Sprache Plugin-Verzeichnisse. Die Integration erfolgt zentral in drei Dateien:
src/types.ts — Language Union-Type und DEFAULT_CONFIG.include Patternssrc/extraction/grammars.ts — Grammar-Loader, Extension-Mapping, Display-Namesrc/extraction/tree-sitter.ts — LanguageExtractor-Konfiguration in der EXTRACTORS MapDocs/06-Integration-Guide.md) — enthält die exakten Code-Änderungennpm install tree-sitter-pascal als Dependency hinzufügenuses → Unit-File, einfache Call-Auflösung)Pascal-Dateien (.pas, .dpr, .dpk, .lpr) werden mit tree-sitter-pascal geparst (AST-basierte Extraktion via LanguageExtractor).
DFM/FMX-Dateien (.dfm, .fmx) werden mit einem Custom Extractor (DfmExtractor) verarbeitet — analog zu LiquidExtractor und SvelteExtractor. Das DFM-Textformat ist zeilenbasiert und wird per Regex geparst. Besonders wertvoll: Event-Handler wie OnClick = Button1Click erzeugen references-Edges zu den zugehörigen Methoden in der .pas-Datei.