Dado un directorio que contiene un árbol fuente, ¿hay una manera simple desde la línea de comandos para reemplazar cada archivo fuente con su equivalente bellamente reformateado?
Tenga en cuenta que, por lo general, un árbol fuente para un proyecto también contiene archivos que no son fuente, y las fuentes mismas podrían estar en diferentes idiomas.
Estoy buscando alguna herramienta que admita tantos idiomas como sea posible, porque un proyecto generalmente contiene fuentes en muchos idiomas diferentes. En particular, estaría buscando algo compatible con xml / html, javascript, ruby y java.
Respuestas:
Puede usar vim en modo ex y comando, desde la terminal.
Para sangrar un solo archivo:
Para sangrar archivos de forma recursiva, cree el siguiente script:
sangría-con-vim.sh
Ahora, escriba:
Vim hará todo lo posible para reindentar los archivos. Puede mejorar algunos tipos de archivos específicos.
Para XML:
Instalar
xmllint
Agregar a su.vimrc
Para mejorar el formato PHP:
Descargue http://www.vim.org/scripts/download_script.php?src_id=15001 (descargará un archivo llamado php.vim)
Cree los siguientes directorios en su hogar:
~/.vim/indent
Y copiar
php.vim
a~/.vim/indent
Si no está satisfecho con el resultado para cualquier tipo de archivo, puede buscar alternativas en la web (como htb para HTML, https://github.com/vim-ruby/vim-ruby para mejoras para Ruby, etc.) )
De cualquier manera, usaría la técnica .vimrc o el archivo de sangría foo.vim para mejorar la sangría.
Además, puede cambiar los parámetros de búsqueda para aplicarlos solo a algunos tipos específicos, como:
fuente
Instale el
indent
paquete y luego ejecute el programa en los archivos.fuente
No es gratuito, no es una línea de comandos, probablemente demasiado complicado, pero IntelliJ Idea es un IDE que puede hacer esto. No lo he probado con java o ruby, pero funciona bastante bien con un proyecto django (python + javascript + HTML).
También tiene una amplia gama de opciones para configurar qué formatear.
Si se trata de un problema único, puede descargar una versión de prueba de forma gratuita.
Esta es una captura de pantalla de las opciones de formato HTML. Está tomado de PyCharm (la versión limitada de Python, no es compatible con Ruby o Java aquí), ya que es lo que uso, pero IntelliJ debería ser el mismo pero compatible con muchos más idiomas.
fuente
Google Java Format
Reformatea el código fuente de Java para cumplir con el estilo de Java de Google:
https://github.com/google/google-java-format
Consejos:
--replace
opción, junto conxargs
sponge
para poder sobrescribir directamente el archivo de entradafuente