Étant donné un répertoire contenant une arborescence source, existe-t-il un moyen simple à partir de la ligne de commande pour remplacer chaque fichier source par son équivalent magnifiquement reformaté?
Gardez à l'esprit que généralement une arborescence source pour un projet contient également des fichiers qui ne sont pas sources, et les sources elles-mêmes peuvent être dans différentes langues.
Je recherche un outil qui prend en charge autant de langues que possible, car un projet contient généralement des sources dans de nombreuses langues différentes. En particulier, je chercherais quelque chose prenant en charge xml / html, javascript, ruby et java.
Réponses:
Vous pouvez utiliser vim en mode ex et commande, depuis le terminal.
Pour mettre en retrait un seul fichier:
Pour indenter des fichiers de manière récursive, créez le script suivant:
indent-with-vim.sh
Maintenant, tapez:
Vim fera de son mieux pour réindenter les fichiers. Vous pouvez améliorer certains types de fichiers spécifiques.
Pour XML:
Installer
xmllint
Ajouter à votre.vimrc
Pour améliorer le formatage PHP:
Téléchargez http://www.vim.org/scripts/download_script.php?src_id=15001 (il téléchargera un fichier nommé php.vim)
Créez les répertoires suivants sur votre domicile:
~/.vim/indent
Et copiez
php.vim
vers~/.vim/indent
Si vous n'êtes pas satisfait du résultat pour n'importe quel type de fichier, vous pouvez rechercher des alternatives sur le Web (comme htb pour HTML, https://github.com/vim-ruby/vim-ruby pour des améliorations pour Ruby, etc.) ).
Dans tous les cas, vous utiliseriez la technique .vimrc ou le fichier d'indentation foo.vim pour améliorer l'indentation.
En outre, vous pouvez modifier les paramètres de recherche à appliquer à certains types spécifiques uniquement, tels que:
la source
Installez le
indent
package, puis exécutez le programme sur les fichiers.la source
Pas gratuit, pas en ligne de commande, probablement trop compliqué, mais IntelliJ Idea est un IDE capable de le faire. Je ne l'ai pas testé avec java ou ruby, mais cela fonctionne plutôt bien avec un projet django (python + javascript + HTML).
Il dispose également d'une gamme assez étendue d'options pour configurer les éléments à reformater.
S'il s'agit d'un problème ponctuel, vous pouvez télécharger un essai gratuit.
Ceci est une capture d'écran des options de format HTML. Il est tiré de PyCharm (la version limitée de python, pas de support ruby ou java ici) car c'est ce que j'utilise, mais IntelliJ devrait être le même mais en supportant beaucoup plus de langues.
la source
Format Java de Google
Reformate le code source Java pour qu'il soit conforme à Google Java Style:
https://github.com/google/google-java-format
Conseils:
--replace
option, avecxargs
sponge
pour écraser directement le fichier d'entréela source