En la anterior entrega comenté los diferentes estilos de formato de código y cómo reconfigurar el formateador de código de Eclipse para formatear con el Estilo Allman .
Pero ... ¿y los programadores de C, C++ o Java que no utilizan Eclipse? ¿Alguna buena opción para reformatear el código a un estándar si todos los ficheros del proyecto no lo cumplen?
La solución es AStyle.
Según la documentación, una vez instalado (bien descargado manualmente o bien con "yum install" o "apt-get install" astyle, podemos hacer cosas como:
astyle --style=allman ~/project/foo.cpp
astyle --style=allman --recursive ~/project/*.cpp ~/project/*.h
astyle [options] < OriginalSourceFile > BeautifiedSourceFile
Si no especificamos ninguna opción adicional, se usarán 4 espacios para los tabuladores.
Si no queremos tener que especificar manualmente ni el estilo ni las opciones largas, podemos crear un fichero $HOME/.astylerc en Linux o %USERPROFILE%\astylerc en Windows, conteniendo las opciones por defecto que queremos, así como opciones que por defecto no podríamos solicitar por la línea de comandos:
#The best formatting style:
--style=allman
# Options:
--indent-classes
--indent-switches
--indent-cases
--indent-namespaces
--indent-labels
--indent-preprocessor
--indent-col1-comments
--break-blocks
--convert-tabs
#--add-brackets <-- add="" after="" codelines="" else...="" font="" if="" single="" to="">-->
# Short options:
-s4 -p
Además de llamarlo desde línea de comandos, podemos formatear el buffer actual entero en Vim en modo comando con:
:%!astyle
Con esto se filtrará el buffer entero a través de astyle, sustituyendo al actual texto. Se utilizarán los parámetros del .astylerc.
De hecho, si lo usamos normalmente, lo habitual será mapearse una tecla para ello:
map <F8>
Ojo, esto reformateará el archivo entero, ya que tal y como lo estamos haciendo, si le pasamos a Astyle texto seleccionado (:!astyle en una selección) no verá el contexto lo formateará, pero dejándolo en indentado 0 (algo que podríamos solucionar después con >>)...
No hay comentarios:
Publicar un comentario