Auto-Repair & Self-Healing Builds
VelinScript geht einen Schritt weiter als klassische Compiler: Es sagt Ihnen nicht nur, was falsch ist, sondern versucht aktiv, es zu reparieren.
Ideal für
- •Syntax-Fehler - Behebt häufige Syntax-Fehler automatisch
- •Fehlende Klammern - Fügt fehlende {}, (), [] ein
- •Flüchtigkeitsfehler - Korrigiert Tippfehler in Keywords
- •Lernhilfe - Zeigt, wie Fehler korrekt behoben werden
NICHT gedacht für
- •Logische Fehler - Kann keine logischen Programmfehler beheben
- •Type-Fehler - Für Type-Checking nutzen Sie
velin check - •Security - Für Security nutzen Sie den Security Scanner
- •Performance - Für Performance nutzen Sie den Profiler
Funktionsweise
Die AutoFix Engine analysiert Fehler im Kontext und patcht den Code iterativ:
Fehlererkennung
Parser meldet z.B. "Expected '}'"
Analyse
Engine prüft Einrückung und offene Blöcke
Patching
Code wird im Speicher automatisch korrigiert
Re-Run
Compiler verarbeitet gepatchten Code erneut
Der Prozess ist iterativ: VelinScript kann bis zu 5 Reparatur-Durchläufe machen, um Kaskadenfehler zu beheben.
Was wird repariert? (Neu in 3.1.0)
Klammern & Generics
Fehlende }, ], ) oder unbalancierte Generics wie List<string
Let & Const Fixes
let x; -> let x = null; (Expected '=' fixes)
Funktions-Signaturen
fn test(x number) -> fn test(x: number)
Literal zu Typ
let x: 0.0 -> let x: number (Ersetzt Literale durch Typen)
Satzzeichen
Fehlende Semikolons, Doppelpunkte oder => in Match-Patterns
Struct Literale
Fügt fehlende Kommas oder Doppelpunkte in Structs ein
Beispiele für Parse-Fehler-Fixes
let x;
fn test(x number) {}
return;let x = null;
fn test(x: number) {}
return null;match x { 1, 2 }
let y: 0.0;match x { 1 => {}, 2 => {} }
let y: number;Konfiguration
[compiler.autofix]
# Aktiviert AutoFix standardmäßig für 'velin compile'
enabled = true
# Maximale Anzahl der Iterationen
max_passes = 5
# Welche Kategorien sollen repariert werden?
rules = [
"braces", # Klammern
"semicolons", # Semikolons
"keywords", # Tippfehler in Keywords
"imports", # Auto-Imports (nur LSP)
"types" # Literal zu Typ Konvertierung
]
# Soll vor dem Überschreiben ein Backup erstellt werden?
backup = trueVelin CLI Output
$ velin compile -i main.velin --autofix
🔧 AutoFix aktiviert
[AutoFix] 3 Fehler behoben:
✓ main.velin:45 -> Fehlende '}' ergänzt
✓ main.velin:12 -> Typ 'List<String' zu 'List<String>' korrigiert
✓ utils.velin:8 -> Semikolon eingefügt
✓ Kompilierung erfolgreich
✓ Alle Fehler automatisch behoben