Dado um diretório que contém uma árvore de origem, existe uma maneira simples da linha de comando de substituir cada arquivo de origem pelo seu equivalente lindamente reformatado?
Lembre-se de que geralmente uma árvore de origem de um projeto também contém arquivos que não são de origem e as próprias fontes podem estar em idiomas diferentes.
Estou procurando por uma ferramenta que ofereça suporte ao maior número possível de idiomas, porque um projeto geralmente contém fontes em vários idiomas diferentes. Em particular, eu estaria procurando algo que suporte xml / html, javascript, ruby e java.
Respostas:
Você pode usar o vim nos modos ex e command, a partir do terminal.
Para recuar um único arquivo:
Para recuar arquivos recursivamente, crie o seguinte script:
indent-with-vim.sh
Agora, digite:
O Vim fará o possível para reindentar os arquivos. Você pode melhorar alguns tipos de arquivos específicos.
Para XML:
Instalar
xmllint
Adicione ao seu.vimrc
Para melhorar a formatação do PHP:
Faça o download http://www.vim.org/scripts/download_script.php?src_id=15001 (ele fará o download de um arquivo chamado php.vim)
Crie os seguintes diretórios em sua casa:
~/.vim/indent
E copie
php.vim
para~/.vim/indent
Se você não estiver satisfeito com o resultado de qualquer tipo de arquivo, poderá procurar alternativas na Web (como htb para HTML, https://github.com/vim-ruby/vim-ruby para obter melhorias no Ruby e assim por diante. )
De qualquer maneira, você usaria ou a técnica .vimrc ou o arquivo de recuo foo.vim para melhorar o recuo.
Além disso, você pode alterar os parâmetros de localização para aplicar apenas a alguns tipos específicos, como:
fonte
Instale o
indent
pacote e execute o programa nos arquivos.fonte
Não é livre, nem linha de comando, provavelmente muito complicado, mas o IntelliJ Idea é um IDE capaz de fazer isso. Eu não testei com java ou ruby, mas funciona muito bem com um projeto django (python + javascript + HTML).
Ele também possui uma ampla variedade de opções para configurar o que reformatar.
Se esse for um problema único, você pode baixar uma avaliação gratuitamente.
Esta é uma captura de tela das opções de formato HTML. Ele foi retirado do PyCharm (a versão limitada do python, sem suporte a ruby ou java aqui) como é o que eu uso, mas o IntelliJ deve ser o mesmo, mas suporta muito mais idiomas.
fonte
Formato Java do Google
Reformata o código-fonte Java para estar em conformidade com o Google Java Style:
https://github.com/google/google-java-format
Dicas:
--replace
opção, juntamente comxargs
sponge
para substituir diretamente o arquivo de entradafonte