Unformatierter Lua-Code sammelt sich schnell an - inkonsistente Einrückung, uneinheitliche Abstände um Operatoren und Blöcke, die zwischen Teammitgliedern abweichen. Die richtige VS-Code-Erweiterung behebt all das automatisch. Dieser Leitfaden behandelt die besten Lua-Formatter-Erweiterungen für VS Code in 2026, wie man jede einrichtet, wie man Format-on-Save konfiguriert und was man verwendet, wenn man gar keine Erweiterungen installieren kann.
Warum Formatierung für Lua wichtig ist
Lua hat keinen durchgesetzten Style-Standard. Der Sprachparser akzeptiert jede gültige Einrückung, jede Operator-Abstände und jedes Block-Layout - was bedeutet, dass jeder Entwickler auf seine eigenen Gewohnheiten zurückfällt. In einem Soloprojekt ist das in Ordnung. In einer geteilten Codebasis, einem Spielmod oder einem Team-Skript-Repository erzeugt inkonsistente Formatierung Rauschen in jedem Diff, verlangsamt Code-Reviews und macht das Debuggen unnötig schwerer.
Die Kosten inkonsistenten Lua-Stils
Wenn zwei Personen Lua unterschiedlich schreiben - einer verwendet Vier-Leerzeichen-Einrückung, der andere Tabs; einer setzt Abstände um Operatoren, der andere nicht -, enthält jeder Commit Formatierungsänderungen gemischt mit Logikänderungen. Reviewer verbringen Zeit mit dem Lesen von Style-Diffs statt Logik-Diffs. Merge-Konflikte spritzen in die Höhe. Ein Formatter löst das, indem er jede Datei beim Speichern auf denselben Stil normalisiert und Diffs sauber und reviewbar macht.
- Konsistente Einrückung - `do`/`end`-, `if`/`end`-, `function`/`end`-Blöcke rücken jedes Mal gleich ein
- Einheitliche Abstände - Leerzeichen um `=`, `+`, `-`, `..` und andere Operatoren werden konsistent gesetzt
- Leerzeilen-Diziplin - überzählige Leerzeilen zwischen Funktionen und in Schleifen werden automatisch normalisiert
- Lesbare String-Behandlung - lange String-Verkettungen und mehrzeilige Strings werden vorhersehbar angeordnet
- Teamweite Durchsetzung - eine geteilte `.luarc.json` oder `stylua.toml` in der Versionskontrolle garantiert, dass alle dieselben Regeln verwenden
Note
Top-Lua-Formatter-Erweiterungen für VS Code
Der VS-Code-Marktplatz hat mehrere Lua-Erweiterungen, aber nur eine Handvoll wird aktiv gepflegt und bietet zuverlässige Formatierung. Hier sind die drei, die man 2026 kennen sollte, in Reihenfolge der Empfehlung.
1. Lua Language Server (sumneko.lua) - empfohlen
Der Lua Language Server, veröffentlicht als `sumneko.lua` auf dem VS-Code-Marktplatz, ist das mit Abstand vollständigste Lua-Entwicklungswerkzeug für VS Code. Er installiert eine vollständige Language-Server-Protocol(LSP)-Implementierung, die Diagnosen, Typinferenz, Gehe-zu-Definition, Hover-Dokumentation, workspace-weite Referenzsuche und einen integrierten Formatter bietet - alles in einer Erweiterung.
- Herausgeber: sumneko (Tang Liu)
- Marketplace-ID: `sumneko.lua`
- Aktive Installationen: 1M+ (Stand 2026)
- Unterstützte Lua-Versionen: 5.1, 5.2, 5.3, 5.4, LuaJIT
- Formatter: Integriert, konfiguriert über `.luarc.json`
- Format-on-Save: Nativ unterstützt
- Am besten für: Die meisten Lua-Workflows - Spiel-Scripting, eigenständige Tools, Embedded-Systeme
Tip
2. StyLua (jq-steuersoftware.stylua) - meinungsstarke Alternative
StyLua ist ein meinungsstarker Lua-Code-Formatter, geschrieben in Rust und von Prettier inspiriert. Die VS-Code-Erweiterung umschließt die StyLua-Binärdatei und integriert sie als Dokument-Formatter. Anders als der Lua Language Server ist StyLua ein reines Formatter-Tool - es bietet keine Diagnosen, Hover-Dokumentation oder Codevervollständigung. Was es bietet, ist ein deterministischer, debattenfreier Stil: Man akzeptiert den Stil und hält sich daran, so wie Prettier für JavaScript funktioniert.
- Herausgeber: jq-steuersoftware
- Marketplace-ID: `jq-steuersoftware.stylua`
- Unterstützte Lua-Versionen: 5.1, 5.2, 5.3, 5.4, LuaJIT, Luau (Roblox)
- Konfigurationsdatei: `stylua.toml` (optional - funktioniert gut mit Voreinstellungen)
- Format-on-Save: Nativ unterstützt
- Am besten für: Neue Projekte, Teams, die Prettier-artige Zero-Config-Formatierung wollen, Roblox-Luau-Entwicklung
3. LuaFormatter (Koihik.vscode-lua-format) - konfigurierbare Legacy-Option
LuaFormatter ist eine ältere Erweiterung, die das `lua-format`-Kommandozeilenwerkzeug umschließt. Sie bietet umfassende Konfiguration - Sie können Einrückungsbreite, maximale Zeilenlänge, Operator-Abstände, Fortsetzungseinrückung und viele andere Regeln einzeln einstellen. Dieses Maß an Kontrolle macht sie nützlich, wenn eine bestehende Codebasis migriert wird, die bereits einen etablierten Stil hat, den der Formatter respektieren muss. Allerdings hat sich die Entwicklung seit StyLuas Aufkommen verlangsamt, und die zugrunde liegende `lua-format`-Binärdatei erfordert auf manchen Plattformen einen separaten Installationsschritt.
- Herausgeber: Koihik
- Marketplace-ID: `Koihik.vscode-lua-format`
- Konfigurationsdatei: `.lua-format` (YAML-Format)
- Am besten für: Bestehende Codebasen mit komplexen Stilvorgaben, granulare Kontrolle pro Regel
- Einschränkung: Erfordert die separat installierte `lua-format`-Binärdatei unter Linux/Mac
Warning
Lua LS in VS Code einrichten
Die Installation des Lua Language Servers dauert unter zwei Minuten. Hier ist der komplette Einrichtungsweg von einer frischen VS-Code-Installation bis zum funktionierenden Format-on-Save.
Lua Language Server aus dem Marketplace installieren
Öffnen Sie VS Code und drücken Sie Strg+P (Cmd+P auf dem Mac), um die Schnellöffnen-Leiste zu öffnen. Tippen Sie `ext install sumneko.lua` und drücken Sie Enter. VS Code lädt die Erweiterung automatisch herunter und installiert sie. Zusätzliche Binärdateien sind nicht erforderlich - die Language-Server-Binärdatei ist in der Erweiterung gebündelt.
Eine .lua-Datei öffnen und Formatierung auslösen
Öffnen Sie eine beliebige `.lua`-Datei in Ihrem Projekt. Drücken Sie Shift+Alt+F (Shift+Option+F auf dem Mac), um „Dokument formatieren" auszuführen. Bei der ersten Verwendung zeigt VS Code eine Eingabeaufforderung, einen Standard-Formatter für Lua-Dateien zu wählen - wählen Sie Lua Language Server. Die Datei wird sofort formatiert und die Auswahl in Ihren Benutzereinstellungen gespeichert.
Eine .luarc.json für die Konfiguration auf Projektebene erstellen
Erstellen Sie eine `.luarc.json`-Datei im Projektstammverzeichnis, um Formatierungsregeln und das Verhalten des Language Servers teamweit konsistent zu steuern. Committen Sie diese Datei in die Versionskontrolle, damit jeder Beitragende identische Einstellungen erhält. Eine minimale Startkonfiguration zielt auf Lua 5.4 und deaktiviert die undefined-global-Diagnose für Projekte mit eigenen Globals.
{
"Lua.runtime.version": "Lua 5.4",
"Lua.diagnostics.globals": ["myGlobal", "anotherGlobal"],
"Lua.format.enable": true,
"Lua.format.defaultConfig": {
"indent_style": "space",
"indent_size": "4",
"max_line_length": "120",
"trailing_table_separator": "smart"
}
}Format-on-Save aktivieren
Öffnen Sie die VS-Code-Einstellungen mit Strg+, (Cmd+, auf dem Mac), suchen Sie `format on save` und schalten Sie Editor: Format On Save ein. Von nun an läuft der Formatter jedes Mal automatisch, wenn Sie eine `.lua`-Datei speichern. Um diese Einstellung nur auf Lua-Dateien zu begrenzen, ohne sie global zu aktivieren, fügen Sie sie stattdessen in die `.vscode/settings.json` Ihres Projekts ein.
{
"editor.formatOnSave": true,
"[lua]": {
"editor.defaultFormatter": "sumneko.lua"
}
}Lua-Formatter - Browserbasiert
Formatieren Sie Lua-Code sofort im Browser ohne Erweiterungen oder Installationen - Code einfügen und in Sekunden saubere, eingerückte Ausgabe erhalten.
Format-on-Save konfigurieren
Format-on-Save ist die wirkungsvollste einzelne Einstellung für die Lua-Entwicklung in VS Code. Einmal aktiv, lösen Sie den Formatter nie manuell aus - er läuft bei jedem Strg+S. So konfigurieren Sie ihn für verschiedene Teamszenarien richtig.
Benutzerebene vs. Workspace-Ebene
VS Code hat zwei Ebenen von Einstellungen: auf Benutzerebene (gilt für alle Projekte) und auf Workspace-Ebene (gilt nur für das aktuelle Projekt). Für die Formatierung ist die Workspace-Ebene fast immer die richtige Wahl - sie stellt sicher, dass jeder Beitragende im Projekt denselben Formatter verwendet, unabhängig von persönlichen Einstellungen. Workspace-Einstellungen liegen in `.vscode/settings.json` im Projektstamm und sollten committet werden.
Format-on-Save mit StyLua
Die StyLua-VS-Code-Erweiterung nutzt denselben Format-on-Save-Mechanismus. Setzen Sie den Standard-Formatter in Ihren Workspace-Einstellungen auf `jq-steuersoftware.stylua`. StyLua liest eine `stylua.toml`-Konfigurationsdatei, falls vorhanden - dort legen Sie column_width, indent_type, indent_width und quote_style fest. Ohne `stylua.toml` wendet StyLua seine Standardregeln an (Zwei-Leerzeichen-Einrückung, 120 Zeichen Zeilenlänge, doppelte Anführungszeichen).
column_width = 120
line_endings = "Unix"
indent_type = "Spaces"
indent_width = 4
quote_style = "AutoPreferDouble"
call_parentheses = "Always"Tip
Dateien von der Formatierung ausnehmen
Manche Lua-Dateien sollten nicht neu formatiert werden - Vendor-Bibliotheken, generierter Code oder minifizierte Skripte. In StyLua fügen Sie eine `.styluaignore`-Datei hinzu (gleiche Syntax wie `.gitignore`), um Pfade auszuschließen. Im Lua Language Server können Sie den Formatter mit der Einstellung `Lua.workspace.ignoreDir` in `.luarc.json` auf bestimmte Verzeichnisse begrenzen.
LuaFormatter vs. StyLua im Vergleich
Die beiden meistdiskutierten Lua-Formatter sind LuaFormatter und StyLua. Sie verfolgen grundlegend unterschiedliche Formatierungsphilosophien, und die richtige Wahl hängt von Ihrem Projektkontext ab. Hier ein direkter Vergleich.
| Aspekt | LuaFormatter (Koihik) | StyLua |
|---|---|---|
| Philosophie | Hochgradig konfigurierbar | Meinungsstark (Prettier-artig) |
| Konfigurationsdatei | `.lua-format` (YAML) | `stylua.toml` (TOML, optional) |
| Konfigurationsregeln | 30+ einzelne Optionen | ~6 Kernoptionen |
| Luau / Roblox | ✗ Nicht unterstützt | ✓ Native Luau-Unterstützung |
| Binärinstallation | ✗ Separater Schritt auf manchen OS | ✓ In der VS-Code-Erweiterung gebündelt |
| CI/CD-Nutzung | ✓ Über lua-format-CLI | ✓ Eigenständige Binärdatei |
| Aktive Pflege | ✗ Verlangsamt seit 2023 | ✓ Aktiv gepflegt |
| Am besten für | Bestehende Codebasen mit vorhandenem Stil | Neue Projekte, Roblox Luau |
Starten Sie ein neues Projekt, wählen Sie StyLua und committen Sie die Config. Erben Sie eine Codebasis mit vorhandenem Stil, konfigurieren Sie LuaFormatter entsprechend. Mischen Sie niemals beide Formatter in derselben Codebasis.
Lua Language Server vs. StyLua: Können sie koexistieren?
Lua Language Server und StyLua erfüllen unterschiedliche Hauptzwecke - Lua LS ist ein vollständiger Language Server für Diagnosen und Intellisense, StyLua ist nur ein Formatter. Sie können in derselben VS-Code-Einrichtung koexistieren: Installieren Sie Lua LS für Diagnosen und Code-Intelligenz und setzen Sie StyLua als Standard-Formatter für die Dokumentformatierung. Diese Kombination gibt Ihnen das Beste beider Werkzeuge. Konfigurieren Sie es in der .vscode/settings.json, indem Sie den defaultFormatter von [lua] auf jq-steuersoftware.stylua setzen und Lua LS für seine LSP-Funktionen installiert lassen.
Der integrierte Formatter von Lua LS: wann reicht er?
Für die meisten Entwickler ist der integrierte Formatter des Lua Language Servers ausreichend und macht eine zweite Erweiterung überflüssig. Er erledigt alle Standard-Formatierungsaufgaben und integriert sich sauber mit `.luarc.json`. Der Hauptgrund, StyLua zusätzlich einzusetzen, ist, wenn Ihr Team stärkere Stil-Durchsetzung wünscht (z. B. Vorgabe eines bestimmten Anführungszeichen-Stils oder Klammer-Konventionen bei Aufrufen), die der Lua-LS-Formatter derzeit nicht unterstützt.
Online-Lua-Formatter als Rückfallebene
VS-Code-Erweiterungen sind die richtige Lösung für die tägliche Entwicklung. Aber es gibt Szenarien, in denen Sie Lua-Code formatieren müssen, ohne überhaupt etwas zu installieren - und genau dort schließt ein browserbasiertes Werkzeug die Lücke sauber.
Wenn Sie keine Erweiterungen installieren können
- Geteilte oder gesperrte Rechner - Firmen-Arbeitsplätze, Labor-Computer oder CI-Umgebungen, in denen Sie keine VS-Code-Erweiterungen installieren können
- Schnelle Einmalbereinigung - ein Kollege schickt Ihnen einen Lua-Ausschnitt zur Review, und Sie möchten ihn formatieren, ohne den Kontext zu wechseln
- Code-Review ohne Dev-Umgebung - Review eines Pull Requests auf einem Rechner, auf dem Ihr volles Lua-Setup nicht konfiguriert ist
- Onboarding-Prüfungen - prüfen, ob eine Datei korrekt formatiert aussieht, bevor Sie committen, ohne auf die Installation der gesamten Toolkette zu warten
- Inspektion minifizierten Codes - Sie haben eine Lua-Minifier-Ausgabe und möchten sie zur Lesbarkeit neu formatieren
Der Lua-Formatter von Aback Tools deckt all diese Fälle ab. Fügen Sie Ihren Lua-Code in den Editor ein, und der Formatter wendet konsistente Einrückung an, normalisiert Operator-Abstände und räumt Leerzeilen auf - direkt in Ihrem Browser, ohne Anmeldung, ohne Installation und ohne dass Daten je Ihr Gerät verlassen.
Ergänzende Online-Lua-Werkzeuge
Formatierung ist ein Schritt in einem vollständigen Lua-Codequalitäts-Workflow. Mehrere weitere browserbasierte Werkzeuge decken angrenzende Aufgaben ab, die Sie regelmäßig neben der Formatierung brauchen:
- **Lua Beautifier** - konzentriert sich auf die Verbesserung des visuellen Layouts von syntaktisch korrektem, aber schwer lesbarem Code
- **Lua-Syntax-Validator** - prüft Code auf Parser-Ebene-Fehler mit Diagnosen auf Zeilenebene, bevor Sie ihn ausführen
- **Lua-Minifier** - entfernt Kommentare, Leerraum und Leerzeilen für das Produktions-Deployment und reduziert die Skriptgröße
- **Lua-Obfuscator** - benennt Variablen um und kodiert Strings, um Spielskripte vor beiläufiger Reverse-Engineering zu schützen
- **Lua-Deobfuscator-Helfer** - verbessert die Lesbarkeit obfuszierter Skripte für Debugging- und Analyse-Workflows
Lua Beautifier
Bereinigen Sie Lua-Code mit korrekter Einrückung, Abständen und Zeilenumbrüchen im Browser - ohne Erweiterungen, ohne Installation, ohne Uploads.
Best Practices für Lua-Formatierung
Ein Formatter kümmert sich um Leerraum, aber gute Lua-Codequalität geht weiter. Diese Praktiken arbeiten neben Ihrem Formatter, um Lua-Codebasen konsistent, lesbar und wartbar in jeder Größenordnung zu halten.
Committen Sie Ihre Formatter-Konfiguration in die Versionskontrolle
Eine `.luarc.json` für Lua LS, `stylua.toml` für StyLua oder `.lua-format` für LuaFormatter sollten alle im Projektstamm liegen und in Ihr Repository committet werden. Das stellt sicher, dass jeder Beitragende - und jeder CI-Lauf - identische Formatierungsregeln verwendet. Ohne committete Konfiguration fällt jeder Entwickler auf seine eigenen Erweiterungseinstellungen zurück, und Formatierungsdivergenz schleicht sich mit der Zeit wieder ein.
CI-Formatierungsprüfung ergänzen
Format-on-Save in VS Code hilft nur Leuten, die VS Code mit installierter Erweiterung verwenden. Eine CI-Prüfung fängt alles ab, was durchrutscht - Beitragende mit anderen Editoren, schnell gepatchte Dateien oder generierter Lua-Code. StyLuas `--check`-Flag beendet sich mit einem von null verschiedenen Code, wenn eine Datei nicht korrekt formatiert ist - so lässt sich ein GitHub-Actions- oder GitLab-CI-Job bei Stilverstößen leicht scheitern lassen.
Formatierungs-Commits von Logik-Commits trennen
Wenn Sie einen Formatter zum ersten Mal in eine bestehende Codebasis einführen, führen Sie ihn über alle Dateien in einem einzigen dedizierten Commit ohne andere Änderungen aus. Beschriften Sie ihn klar (z. B. `chore: apply lua formatter to all files`). So bleibt das Formatierungsrauschen in einem Commit, und alle nachfolgenden Commits enthalten nur Logikänderungen - und `git blame` bleibt für jede Zeile nützlich.
Tip
Konsistente Benennung lokaler Variablen verwenden
Formatter benennen keine Variablen um - das ist Ihre Aufgabe. Die Lua-Community folgt überwiegend `snake_case` für Variablen und Funktionen und `PascalCase` für Tabellen auf Modulebene und klassenähnliche Konstrukte. Vereinbaren Sie eine Konvention mit Ihrem Team und dokumentieren Sie sie in der `CONTRIBUTING.md` Ihres Projekts. Wenn Sie mit Roblox Luau arbeiten, spezifiziert der Roblox-Style-Guide `PascalCase` für Instanzen und Dienste und `camelCase` für lokale Variablen - kennen Sie die Unterscheidung, bevor Sie Lua-Community-Konventionen blind anwenden.
Warning
Key takeaways
- Der Lua Language Server (sumneko.lua) ist die beste Allround-Lua-Erweiterung für VS Code - er enthält Formatierung, Diagnosen, Typinferenz und Code-Intelligenz in einer Installation.
- StyLua ist die beste reine-Formatter-Wahl für neue Projekte und Roblox-Luau-Entwicklung, mit meinungsstarker Prettier-artiger Konsistenz bei minimaler Konfiguration.
- LuaFormatter ist eine konfigurierbare Legacy-Option für bestehende Codebasen mit granularem Stil-Kontrollbedarf, wird aber weniger aktiv gepflegt als die Alternativen.
- Committen Sie Ihre Formatter-Konfiguration (.luarc.json oder stylua.toml) in die Versionskontrolle, damit alle Beitragenden automatisch identisches Formatierungsverhalten erhalten.
- Ergänzen Sie eine CI-Formatierungsprüfung mit StyLua --check, um unformatierte Dateien vor dem Merge zu finden, unabhängig vom Editor der Beitragenden.
- Der Lua-Formatter von Aback Tools erledigt schnelle Einmal-Formatierungen in einem Browser-Tab - ohne Erweiterungen, ohne Installationen, ohne Server-Uploads.
- Führen Sie niemals einen Standard-Formatter auf obfuskiertem Lua aus; nutzen Sie zuerst den Lua-Deobfuscator-Helfer, um die Lesbarkeit vor der Formatierung wiederherzustellen.