2009-01-04 18 views
14

Estoy trabajando para una empresa que tiene pautas estrictas de estilo de codificación pero no cuenta con una herramienta automática para validarlas. He mirado alrededor y las únicas herramientas que pude encontrar fueron herramientas parecidas a las pelusas que parecen estar dirigidas a verificar lo que hace el código, y prevenir errores y no asegurarse de que el estilo de codificación sea correcto.Comprobador de estilo de codificación para C

¿Qué herramienta deberíamos usar, en todo caso?

NOTA: Estoy buscando algo para el código C, aunque algo que funciona para C++ sería bueno también.

Respuesta

12

El embellecimiento tradicional indent, disponible en todas las máquinas Unix. La versión que se encuentra en algunos es GNU indent, que se puede compilar e instalar en cada máquina. guión de GNU puede leer un conjunto de reglas a partir del archivo ~/.indent.pro, por ejemplo:

--original --dont-format-first-column-comments --no-blank-lines-after-commas --parameter-indentation 8 --indent-level 8 --line-length 85 --no-space-after-parentheses --no-comment-delimiters-on-blank-lines 

lo tanto, sólo se ejecuta guión antes de comprometerse garantiza la uniformidad de la presentación. Si desea hacer cumplir, defina un enlace precompromiso en el sistema de control de versiones que utiliza, que ejecutará la sangría y rechazará la confirmación si la versión confirmada difiere de lo que produce la sangría.

10

Está buscando un 'code beautifier'. Uncrustify es gratis.

Solo tiene que poder describir su estilo de codificación en su archivo de configuración, y se asegurará de que todos los archivos se ajusten al estilo descrito.

2

Discutiría contra el uso de una herramienta formal aquí. La mejor aplicación de los estándares de codificación es la presión de grupo. La presión de los compañeros y el respeto mutuo entre los miembros del equipo son elementos clave de ese entorno de formación de equipos ... no es diferente del buen acoso que es necesario cuando alguien inadvertidamente "rompe la construcción", etc.

Revisión de los miembros más nuevos del equipo "El código es una parte clave del proceso de aprendizaje y la integración en el equipo y el aprendizaje de los estándares de codificación, etc. Si el estándar de codificación es demasiado complicado o sutil para ser recogido de esta manera, entonces, en lugar de buscar una herramienta para validar el estándar, debería buscar un nuevo estándar de codificación.

+1

Es por eso que sugiero en su lugar un embellecedor que obtendrá los archivos en el estilo requerido en lugar de un validador que no servirá para nada. Puede codificar con el estilo que desee y, antes de realizar el check in, ejecuta el embellecedor, que se asegurará de que se ajuste a los requisitos. –

+0

@Vinko - usted podría hacer eso, y que podría ser útil a los contribuyentes a tiempo parcial o la importación de código externo, sino por miembros de pleno derecho del equipo de tiempo, realmente creo que desea que todos sean "pensando en la codificación estándar" de manera que se obtiene el beneficio real de tener un estándar de codificación en primer lugar. –

+1

No puedo estar más de acuerdo. La revisión del código y los estándares de codificación bien definidos deberían hacer el trabajo. – Ilya

4

Hay (o hubo) numerosas herramientas para esto. Uno de los más antiguos es cb (C Beautifier) ​​que fue de alrededor en las versiones antiguas de Unix - sentido, en este caso, Versión 7 Unix:

CB (1) UNIX Programmer’s Manual CB (1) 

NAME 
    cb – C program beautifier 
SYNOPSIS 
    cb 
DESCRIPTION 
    Cb places a copy of the C program from the standard input on the standard 
    output with spacing and indentation that displays the structure of the 
    program. 
BUGS 

GNU indent es un beastie mucho más complejo y configurable. También había herramientas comerciales. Por ejemplo, Abraxas Software proporciona una herramienta CodeCheck, por ejemplo; lo usamos brevemente a mediados de los 90, pero los cambios que queríamos que hiciéramos eran (muy necesarios, pero) demasiado intrusivos para la administración.

9

AStyle hace lo que quiere:

Estilo artístico es un código fuente penetrador, formateador y embellecedor para el C, C++, C# y lenguajes de programación Java.

Hay un AStyle Plugin disponible para Eclipse.

Eclipse también tiene un formateador de código, pero no estoy seguro de si funciona en CDT.

2

De una pregunta similar: Vera++: "Vera ++ se puede utilizar para encontrar violaciones de estilo de código y convenciones." Hay una Community Edition gratuita y "todas sus reglas están implementadas como scripts (Tcl) que pueden ser modificados o agregados por el usuario".

-7

Utilice VIM y disfrute de la facilidad. Puede hacer cualquier cosa relacionada con la programación de fuente mediante comandos simples. También puede hacer que el VIM sea más confiable y poderoso editando el archivo .vimrc. La ayuda en esto te ayudará mucho.

/g renjith

+2

Usted está siendo degradado porque la pregunta original era sobre el código de la impresora bonita o un inspector de estilo. Y usted está respondiendo con un editor de texto. La diferencia es que el editor de texto es donde se escribe el código, y un verificador de estilo comprueba el formato del código fuente independientemente del editor de texto que se utilizó. por ejemplo, este es un comprobador de estilo: https://en.wikipedia.org/wiki/Checkstyle – elviejo79

2

Trate UniversalIndentGUI, que es una envoltura alrededor de GUI populares penetradores/embellecedores como Uncrustify, estilo artístico, y GNU sangría. Su interfaz gráfica de usuario y función de vista previa en vivo hacen que sea muy fácil probar diferentes indenters, y una vez que haya encontrado un indentador y configuración que le guste, puede exportar la configuración o incluso exportar un script de shell. Genial si todavía estás probando cosas.

Cuestiones relacionadas