indent code beauty beautiful c++ code-formatting clang-format

c++ - code - ¿Cómo puedo aplicar solo una acción de formato clang?



clang format download (1)

Creo que el formato de Clang simplemente no fue diseñado para esto. Las reglas no son cosas que se apliquen de forma incremental, el programa se construye alrededor, analiza todo el programa y olvida (la mayoría de) los espacios en blanco antiguos, y genera nuevos espacios en blanco según las reglas que seleccione.

Puede ver una descripción general de la arquitectura aquí: http://www.llvm.org/devmtg/2013-04/jasper-slides.pdf

Primero ejecuta clang lexer y parser, luego divide grupos de tokens en "líneas desenvueltas" que son "tokens que nos gustaría juntar en una sola línea si no hubiera un límite de columnas". Luego, un diseñador determina el formato de cada línea sin envolver en función de las diversas restricciones y la optimización de las diversas penalizaciones.

Por lo tanto, no creo que "una acción de formato de un solo sonido" sea realmente una cosa, el diseño me parece bastante monolítico.

Quiero usar clang-format para alinear mis comentarios, pero nada más.

La opción para eso es: AlignTrailingComments (bool) .

Pero cuando corro lo siguiente:

clang-format-3.6 -i -style=''{AlignTrailingComments: true}'' <file>

Realiza todo tipo de otras opciones de formato que supongo que tienen un valor predeterminado cuando no se especifican.

¿Cómo puedo ejecutar solo una regla de formato de clang en el código base?

Tener todos estos valores predeterminados dificulta ver el efecto completo que una sola opción de formato tiene en el código. Tengo que analizar a través de la diferencia de todos estos otros cambios y decidir si fue la opción que especifiqué la que realmente lo hizo.

Noté que hay una opción DisableFormat , pero no importa cómo lo use, evita que ocurra el formateo.

clang-format-3.6 -i -style=''{AlignTrailingComments: true, DisableFormat: true}'' clang-format-3.6 -i -style=''{DisableFormat: true, AlignTrailingComments: true}''

Ambas provocan que el formato de lenguaje no genere ningún código en ninguna parte.