Mejor formateador / embellecedor de código C ++

127

Hay muchas herramientas de formato de código fuente por ahí. ¿Cuáles funcionan mejor para C ++?

Estoy interesado en las herramientas de línea de comandos u otras cosas que se pueden ejecutar automáticamente al registrar la entrada / salida del código, preferiblemente sin necesidad de iniciar un editor o IDE.

(Si ve el que le gusta ya aparece como respuesta, vote por él. Si no está allí, agréguelo).

Kristopher Johnson
fuente

Respuestas:

120

AStyle se puede personalizar con gran detalle para C ++ y Java (y otros también)

Esta es una herramienta de formato de código fuente.


clang-format es una poderosa herramienta de línea de comandos incluida en el compilador clang que maneja incluso las construcciones de lenguaje más oscuras de una manera coherente.

Se puede integrar con Visual Studio, Emacs, Vim (y otros) y puede formatear solo las líneas seleccionadas (o con git / svn para formatear algunas diferencias).

Se puede configurar con una variedad de opciones enumeradas aquí .

Cuando se usan archivos de configuración (con nombre .clang-format), los estilos pueden ser por directorio: el archivo más cercano en directorios principales se usará para un archivo en particular.

Los estilos se pueden heredar de un preajuste (por ejemplo, LLVM o Google) y luego pueden anular diferentes opciones

Es utilizado por Google y otros y está listo para la producción.


Mire también el proyecto UniversalIndentGUI . Puede experimentar con varios penetradores usándolo: AStyle, Uncrustify, GreatCode, ... y seleccione el mejor para usted. Cualquiera de ellos se puede ejecutar más tarde desde una línea de comandos.


Uncrustify tiene muchas opciones configurables. Probablemente necesitará también la GUI de sangría universal (en la respuesta de Konstantin) para configurarla.

Bill the Lizard
fuente
1
Tenemos algunos archivos fuente desordenados llenos de macros complicadas, lo que dificulta la comprensión de cómo modificar el código o establecer puntos de interrupción. Lo desmacronizamos con gcc -E, lo que resulta en líneas muy largas de bucles anidados para bucles, declaraciones, etc. Astyle arregló eso para que fuera legible, ahorrándonos muchos problemas. ¡Astyle tiene un lugar permanente en mi estante de herramientas de software!
DarenW
8
Consejo de Vim: si desea embellecer el código en un archivo que está editando actualmente, use:%! Astyle
tonylo
Esta es una gran herramienta. Ejecuto un estilo cada vez que tengo que trabajar en el mismo proyecto con MSVStudio en Windows (en el trabajo) y emacs en Linux (en casa). Uso el estilo BSD con emacs y astyle (que está cerca del estilo que uso con el editor MSVC), y siempre tengo el código fuente sangrado correctamente. ¡Incluso se ve hermoso independientemente del tamaño de la pestaña!
Alexandre C.
1
Lo intenté. Es muy fácil obtener un resultado rápido (el documento es bueno). ¡Es una pena que no haya tantas opciones! Algunos programadores son muy creativos con la forma en que rellenan su código con espacios, y AStyle no maneja toda esa creatividad.
furia
No hay una opción de ancho de línea máximo. Esto debería ser imprescindible.
Sogartar