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 BrowserFü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.
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.
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.
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.