2009-05-08 16 views
127

Esistono molti strumenti di formattazione del codice sorgente. Quali funzionano meglio per C++?Miglior formattatore di codice C++/Beautifier

Sono interessato a strumenti da riga di comando o altri elementi che possono essere eseguiti automaticamente durante il controllo del codice in/out, preferibilmente senza dover avviare un editor o IDE.

(Se vedi quello che ti piace già elencato come una risposta, votare in su. Se non è lì, inserirlo.)

risposta

120

AStyle possono essere personalizzati in modo molto dettagliato per C++ e Java (e altri ancora)

Questo è uno strumento di formattazione del codice sorgente.


clang-format è un potente strumento a riga didi comando in bundle con il compilatore clang che gestisce anche i costrutti del linguaggio più oscuri in modo coerente.

Può essere integrato con Visual Studio, Emacs, Vim (e altri) e può formattare solo le linee selezionate (o con git/svn per formattare alcune diff).

Può essere configurato con una varietà di opzioni elencate here.

Quando si utilizzano i file di configurazione (denominati .clang-format) gli stili possono essere per directory: il file più simile nelle directory padre deve essere utilizzato per un determinato file.

stili possono essere ereditate da un preset (dicono LLVM o Google) e possono poi ignorare le diverse opzioni

E 'utilizzato da Google e altri ed è pronto per la produzione.


Guarda anche il progetto UniversalIndentGUI. Puoi sperimentare con diversi indentatori che lo usano: AStyle, Uncrustify, GreatCode, ... e scegli il meglio per te. Ognuno di essi può essere eseguito in seguito da una riga di comando.


Uncrustify ha un sacco di opzioni configurabili. Probabilmente avrai bisogno di Universal Indent GUI (nella risposta di Konstantin) per configurarlo.

+1

Abbiamo alcuni file sorgente disordinati pieni di macro complicate, rendendo difficile capire come modificare il codice o impostare i breakpoint. Abbiamo de-macinato con gcc -E, ottenendo linee molto lunghe di loop nidificati, se le istruzioni, ecc. Astyle ha risolto il problema per essere leggibili, risparmiandoci un sacco di problemi. Astyle ha un posto fisso nel mio software toolshelf! – DarenW

+8

Suggerimento Vim: se si desidera abbellire il codice in un file che si sta modificando, utilizzare:%! Astyle – tonylo

+0

Questo è un ottimo strumento. Eseguo astyle ogni volta che devo lavorare sullo stesso progetto con MSVStudio su Windows (al lavoro) ed emacs su Linux (a casa). Uso lo stile BSD con emacs e astyle (che è vicino allo stile che uso con l'editor MSVC) e ho sempre codice sorgente correttamente indentato. Sembra anche bello indipendentemente dalle dimensioni della scheda! –

Problemi correlati