Bester C ++ Code Formatierer / Verschönerer

127

Es gibt viele Tools zur Formatierung von Quellcode. Welche funktionieren am besten für C ++?

Ich interessiere mich für Befehlszeilentools oder andere Dinge, die beim Ein- und Auschecken von Code automatisch ausgeführt werden können, vorzugsweise ohne dass ein Editor oder eine IDE gestartet werden muss.

(Wenn Sie die gewünschte Antwort bereits als Antwort sehen, stimmen Sie ab. Wenn sie nicht vorhanden ist, fügen Sie sie hinzu.)

Kristopher Johnson
quelle

Antworten:

120

AStyle kann für C ++ und Java (und andere auch) sehr detailliert angepasst werden.

Dies ist ein Quellcode-Formatierungswerkzeug.


Das Clang-Format ist ein leistungsstarkes Befehlszeilen- Tool, das im Lieferumfang des Clang-Compilers enthalten ist und selbst die dunkelsten Sprachkonstrukte auf kohärente Weise verarbeitet.

Es kann in Visual Studio, Emacs, Vim (und andere) integriert werden und nur die ausgewählten Zeilen formatieren (oder mit git / svn, um einige Unterschiede zu formatieren).

Es kann mit einer Vielzahl von hier aufgeführten Optionen konfiguriert werden .

Bei Verwendung von Konfigurationsdateien können (benannte .clang-format) Stile pro Verzeichnis verwendet werden - die nächstgelegene solche Datei in übergeordneten Verzeichnissen soll für eine bestimmte Datei verwendet werden.

Stile können von einer Voreinstellung (z. B. LLVM oder Google) geerbt werden und später verschiedene Optionen überschreiben

Es wird von Google und anderen verwendet und ist produktionsbereit.


Schauen Sie sich auch das Projekt UniversalIndentGUI an . Sie können damit mit mehreren Einrückern experimentieren: AStyle, Uncrustify, GreatCode, ... und das Beste für Sie auswählen. Jeder von ihnen kann später über eine Befehlszeile ausgeführt werden.


Uncrustify bietet viele konfigurierbare Optionen. Sie benötigen wahrscheinlich auch die Universal Indent GUI (in Konstantins Antwort), um sie zu konfigurieren.

Bill the Lizard
quelle
1
Wir haben einige unordentliche Quelldateien voller komplizierter Makros, die es schwierig machen zu verstehen, wie man den Code ändert oder Haltepunkte setzt. Wir haben es mit gcc -E de-makroed, was zu sehr langen Zeilen verschachtelter for-Schleifen, if-Anweisungen usw. führte. Astyle hat dies so korrigiert, dass es lesbar ist, was uns viel Ärger erspart. Astyle hat einen festen Platz in meinem Software-Toolshelf!
DarenW
8
Vim-Tipp: Wenn Sie den Code in einer Datei verschönern möchten, verwenden Sie derzeit:%! Astyle
tonylo
Dies ist ein großartiges Werkzeug. Ich starte jedes Mal Astyle, wenn ich mit MSVStudio unter Windows (bei der Arbeit) und Emacs unter Linux (zu Hause) an demselben Projekt arbeiten muss. Ich verwende den BSD-Stil mit Emacs und Astyle (was dem Stil entspricht, den ich mit dem MSVC-Editor verwende), und ich habe immer richtig eingerückten Quellcode. Es sieht sogar unabhängig von der Tab-Größe wunderschön aus!
Alexandre C.
1
Ich habe es versucht. Es ist sehr einfach, ein schnelles Ergebnis zu erzielen (doc ist gut). Schade, dass es nicht so viele Möglichkeiten gibt! Einige Programmierer sind sehr kreativ in der Art und Weise, wie sie ihren Code mit Leerzeichen auffüllen, und AStyle verarbeitet nicht all diese Kreativität.
Wut
Es gibt keine Option für die maximale Linienbreite. Dies sollte ein Muss sein.
Sogartar