Pass 1Self-Healing

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. Die AutoFix Engine ist tief integriert und behebt Syntax-Fehler vollautomatisch.

Ideal für

  • Syntax-Fehler automatisch beheben
  • Fehlende Klammern {}, (), [] ergänzen
  • Tippfehler in Keywords korrigieren
  • Entwicklungszeit massiv reduzieren
  • Lernhilfe durch Korrektur-Vorschläge
  • CI/CD-Integration für stabile Builds

Nicht gedacht für

  • Logische Programmfehler (Logik-Bugs)
  • Type-Fehler (Nutzen Sie velin check)
  • Code-Qualität & Stil (Linter nutzen)
  • Security-Vulnerabilities (Security Scanner)
  • Performance-Engpässe (Profiler nutzen)

1. Funktionsweise

1

Fehlererkennung

Der Parser meldet z.B. 'Unerwartetes Dateiende, } erwartet'.

2

Analyse

Die AutoFix Engine analysiert den Kontext (Einrückung, offene Blöcke).

3

Patching

Der Code wird im Speicher korrigiert (z.B. wird } eingefügt).

4

Re-Run

Der Compiler versucht erneut, den gepatchten Code zu verarbeiten.

5

Persistierung

Bei Erfolg werden Änderungen optional in die Datei zurückgeschrieben.

Der Prozess ist iterativ: VelinScript kann bis zu 5 Reparatur-Durchläufe machen, um Kaskadenfehler zu beheben.

2. Nutzung

Im CLI (--autofix)

Reparatur explizit anfordern oder nur Vorschläge anzeigen:

# Versucht zu kompilieren und repariert Fehler automatisch
velin compile -i main.velin --autofix

# Prüft nur und zeigt an, was repariert würde (Dry Run)
velin check -i main.velin --autofix

In der IDE

Die VS Code Extension nutzt dieselbe Engine für Quick Fixes.

Interaktion

Klicken Sie auf die rote Unterstreichung oder drücken Sie Ctrl+.

Aktion

Wählen Sie "Fix syntax error automatically".

3. Was wird repariert?

Klammersetzung

  • Fehlende }, ], ) am Ende
  • Unbalancierte Generics: List<string

Satzzeichen

  • Fehlende Semikolons
  • Falsche Kommas in Listen

Typos (Exp.)

  • funtion -> fn
  • retrun -> return

4. Konfiguration

Steuern Sie die Aggressivität der Engine in der velin.toml:

[compiler.autofix]
# Aktiviert AutoFix standardmäßig für 'velin compile'
enabled = true

# Maximale Anzahl der Iterationen (Verhindert Endlos-Schleifen)
max_passes = 5

# Welche Kategorien sollen repariert werden?
rules = [
    "braces",       # Klammern
    "semicolons",   # Semikolons
    "keywords",     # Tippfehler in Keywords
    "imports"       # Auto-Imports (nur LSP)
]

# Soll vor dem Überschreiben der Datei ein Backup erstellt werden?
backup = true

5. Sicherheit & Grenzen

Die AutoFix Engine ist konservativ. Sie wird niemals Logik ändern oder raten, was Sie gemeint haben könnten, wenn es mehrdeutig ist.

Reparierbar

if (x > 0 {
if (x > 0) {

Nicht reparierbar

let x = y + (Unklarer Operand)

Best Practice

Nutzen Sie AutoFix als Lernwerkzeug. Schauen Sie sich die Änderungen an (z.B. via git diff), um zu verstehen, was falsch war und wie es korrekt gelöst wurde.

VelinScript AutoFix - Terminal
$ velin compile -i main.velin --autofix
🔧 AutoFix aktiviert
[AutoFix] 3 Fehler behoben:
✓ main.velin:45 -> Fehlende } ergänzt
✓ main.velin:12 -> Typ 'List<String' korrigiert
✓ utils.velin:8 -> Semikolon eingefügt
✓ Kompilierung erfolgreich
✓ Alle Fehler automatisch behoben
Vorher:
fn process(data: List<string {
Nachher:
fn process(data: List<string>) {