Ruby-Code formatieren

Es werden nur Leerzeichen neu geschrieben: Einrückung wird neu aufgebaut und lange Zeilen können umgebrochen werden; Strings, Heredocs und Operatoren werden Byte für Byte kopiert. Ein Layout-Formatierer, kein Linter — Syntax wird weder geprüft noch repariert.

Läuft lokal in deinem Browser
Kopieren

Ruby-Code im Browser formatieren

Fügen Sie ein Ruby-Snippet ein, und das Tool gibt dasselbe Programm mit neu aufgebauter Einrückung, einer Leerzeilen-Regel und optionalem Zeilenumbruch zurück. Neu geschrieben werden nur Leerzeichen zwischen Tokens: Strings, Heredocs, Prozent-Literale, reguläre Ausdrücke, Kommentare und Operatoren werden Byte für Byte kopiert, sodass das Ergebnis zum selben Syntaxbaum führt wie die Eingabe.

Der Formatierer läuft vollständig in diesem Browser-Tab, es wird nichts hochgeladen. Er ist ein Layout-Formatierer, kein Linter: Ruby wird nicht geprüft, ausgeführt oder repariert, und es wird nie ein Fehler gemeldet — ein Snippet mit fehlendem end kommt formatiert zurück, nicht korrigiert.

  1. Fügen Sie den Ruby-Code in das Feld ein und drücken Sie Ruby-Code formatieren oder Ctrl/⌘+Enter. Jeder Lauf ersetzt das vorherige Ergebnis.
  2. Wählen Sie die Einrückung (Tabulator oder 2, 3, 4 oder 8 Leerzeichen), wie viele Leerzeilen erhalten bleiben und ob lange Zeilen bei 80 oder 120 Zeichen umbrechen.
  3. Mit Kopieren übernehmen Sie das Ergebnis, mit Leeren werden beide Bereiche für das nächste Snippet geleert.
  4. Anweisungen, die außerhalb von Klammern mit einem Semikolon verbunden sind, werden auf eigene Zeilen verteilt; ein Semikolon innerhalb von Klammern bleibt stehen.

Was der Formatierer ändert — und was gleich bleibt

Was neu geschrieben und was kopiert wird

Neu geschrieben werden nur Leerzeichen zwischen Tokens: die führende Einrückung wird auf die gewählte Einheit gebracht, Leerzeichen am Zeilenende und überzählige Leerzeilen werden entfernt, lange Zeilen können umgebrochen werden. Alles andere wird Byte für Byte kopiert — Strings in einfachen, doppelten und Backtick-Anführungszeichen, Heredocs (<<, <<-, <<~ und zitierte Terminatoren wie <<-'end;'), Prozent-Literale (%w, %W, %i, %I, %q, %Q, %r, %s, %x), reguläre Ausdrücke auch über mehrere Zeilen, Symbole und Labels sowie Operatoren wie **, &., &:, ::, <<, -> und =>.

Eine schnelle Prüfung jedes Ergebnisses: die Ausgabe enthält dieselben Tokens in derselben Reihenfolge wie die Eingabe, nur anders gesetzt. Wenn in Ihrem Projekt zusätzlich RuboCop oder rufo im Editor läuft, ersetzt diese Seite das nicht — sie ist zum Lesen eines Ausschnitts gedacht, nicht für den Build.

Einrückung, Leerzeilen und Umbruch

Jede tiefere Einrückungsstufe der Eingabe wird zu einer Einheit der gewählten Breite, sodass Tabulator, 2, 3, 4 und 8 Leerzeichen dieselbe Blockstruktur ergeben. Rümpfe folgen auf def, class, module, if, unless, while, until, case, begin, for und do … end; Modifier-Formen wie x if y gelten nicht als Block, und eine Zeile, die einen unfertigen Ausdruck fortsetzt, bleibt an ihrer Anweisung.

Die Leerzeilen-Option begrenzt Serien leerer Zeilen: entfernen, höchstens eine oder zwei behalten (die Vorgabe behält zwei) oder alle behalten. Umbrüche erfolgen gierig nur nach einem Komma oder nach einem Wert mit binärem Operator — an Stellen, an denen Ruby die Zeile selbst fortsetzt —, kein Token wird also zerteilt; eine Zeile ohne solche Stelle bleibt lang statt abgeschnitten zu werden.

Was er nicht tut

Er ist kein Linter, kein Style-Fixer und kein Interpreter. Nichts wird ausgeführt, keine Namen werden umbenannt, requires nicht sortiert, Anführungszeichen nicht umgestellt, ein fehlendes end wird nicht gemeldet. Heredoc-Rümpfe, =begin/=end-Blöcke und der __END__-Datenabschnitt werden unverändert kopiert, samt der Leerzeichen darin.

Da das Programm nie geparst wird, kann die Seite nicht sagen, dass die Eingabe ungültig ist. Lassen Sie das Ergebnis durch ruby -c oder die Prüfung Ihres Editors laufen, wenn Sie wissen müssen, ob es gültig ist.

Zuletzt verwendet: