2010-03-14 13 views
12

Tengo una base de código que afecta a muchas personas. Si bien la mayoría de la gente hace un esfuerzo para mantener el código bien formateado (por ejemplo, indentación consistente y uso de llaves), algunos no lo hacen, e incluso aquellos que sí lo hacen no siempre lo hacen porque todos usamos diferentes editores, por lo que las configuraciones como espacios vs . Las pestañas son diferentes.¿Hay alguna herramienta de pelusa para C y C++ que verifique el formateo?

¿Hay alguna herramienta de pelusa que cheques que el código es el formato correcto, pero en realidad no lo cambian (como indent pero que devuelve sólo los errores y advertencias)?

Aunque esta pregunta podría responderse en general, mi atención se centra en C y C++, porque eso es lo que este proyecto está escrito en

+1

¿copiar el archivo, aplicar sangría en él, y luego diferir los dos? – kennytm

+0

Quiero hacer esto automáticamente como parte del proceso de compilación. Me pregunto si hay una mejor manera. –

Respuesta

3

El núcleo de Linux utiliza una herramienta que hace exactamente esto -. Se llama checkpatch. Tendría que modificarlo para verificar sus estándares de codificación en lugar de los de ellos, pero podría ser una buena base para trabajar. (También está diseñado para el código C en lugar de C++).

+0

¿Es esto parte de las distribuciones estándar de Linux? –

+0

No, pero es solo un script de Perl (disponible en el enlace en mi respuesta: http://www.kernel.org/pub/linux/kernel/people/apw/checkpatch/) – caf

1

Existen varios programas que pueden formatearse automáticamente al guardar (como Eclipse). Puede tener configuraciones de formato que todos puedan usar para garantizar el mismo formato.

También es posible aplicar automáticamente dicho formato cuando se confirma el código. Cuando usa SVN, el sistema para hacer esto se llama svn hooks. Esto básicamente inicia un programa para procesar (o verificar y denegar) el formateo cuando ocurre una confirmación.

This site explica cómo puede hacer la suya propia. Pero también existen ya para hacer esto.

+4

Tenga en cuenta que para SVN, el cambio de archivos en no se recomienda un enlace precompromiso: http://svnbook.red-bean.com/en/1.5/svn.reposadmin.create.html#svn.reposadmin.create.hooks – sbi

+1

Tiene razón, es mejor negar el confirmar cuando el formateo es incorrecto (pero eso solo funciona si todo el formateo está automatizado) – Thirler

+2

Se recomienda no usar SVN en absoluto (Linus Torvalds recomienda git :) – Frank

7

Google utiliza cpplint. Este es su style guide.

+3

Lástima que el cpplint de Google no se configure fácilmente. – dalle

1

Eche un vistazo a Vera++, tiene un número de rules ya disponible, pero lo bueno es que puede modificarlos o escribir el suyo.

Cuestiones relacionadas