Miglior formatter / beautifier di codice C ++


127

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

Sono interessato agli strumenti da riga di comando o ad altre cose che possono essere eseguiti automaticamente durante il check in / out del codice, preferibilmente senza la necessità di avviare un editor o un IDE.

(Se vedi quello che ti piace già elencato come una risposta, votalo. Se non è lì, aggiungilo.)

Risposte:


120

AStyle può essere personalizzato nei minimi dettagli per C ++ e Java (e anche per altri)

Questo è uno strumento di formattazione del codice sorgente.


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

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

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

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

Gli stili possono essere ereditati da una preimpostazione (ad esempio LLVM o Google) e possono successivamente sostituire diverse opzioni

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


Guarda anche il progetto UniversalIndentGUI . Puoi sperimentare diversi rientri utilizzandolo: AStyle, Uncrustify, GreatCode, ... e seleziona il meglio per te. Ognuno di essi può essere eseguito in seguito da una riga di comando.


Uncrustify ha molte opzioni configurabili. Probabilmente avrai bisogno della GUI di Universal Indent (nella risposta di Konstantin) per configurarla.


1
Abbiamo alcuni file sorgente disordinati pieni di macro complicate, il che rende difficile capire come modificare il codice o impostare i punti di interruzione. Lo abbiamo de-macro con gcc -E, risultando in linee molto lunghe di loop nidificati, se istruzioni ecc. Astyle occupa un posto permanente nel mio software!
DarenW

8
Suggerimento Vim: se vuoi abbellire il codice in un file che stai attualmente modificando, usa:%! Astyle
tonylo

Questo è un grande strumento. Corro astyle ogni volta che devo lavorare allo stesso progetto sia con MSVStudio su Windows (al lavoro) che 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 un codice sorgente correttamente indentato. Sembra persino bello indipendentemente dalle dimensioni della scheda!
Alexandre C.

1
Provato. È molto facile ottenere un risultato rapido (doc è buono). È un peccato che non ci siano così tante opzioni! Alcuni programmatori sono molto creativi nel modo in cui riempiono il loro codice di spazi e AStyle non gestisce tutta quella creatività.
furia

Non esiste alcuna opzione di larghezza massima della linea. Questo dovrebbe essere un must.
Sogartar,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.