Comment embellir les fichiers JavaScript de manière récursive?


1

J'ai beaucoup de *.jsfichiers dans les sous-dossiers et les sous-dossiers de mon projet Node.js que j'ai écrits avec témérité, et maintenant je recherche un outil qui peut parcourir tous les fichiers et les embellir.

J'ai trouvé le paquet js-beautify mais je ne suis pas sûr qu'il fasse ce que je veux. De plus, je doute qu'un paquet de nœuds soit ce que je veux. Je pense avoir besoin d'un logiciel que je peux appeler depuis le terminal Ubuntu.

Réponses:


3

Vim prend en charge le formatage des fichiers de code source avec le commannd gg=G. ggest un mouvement (probablement redondant) qui saute au début du fichier; =est la commande indent, et le Gmouvement signifie "exécuter jusqu'à la fin du fichier". Je sais, cela ressemble à une conversation extraterrestre ...

Afin de l'exécuter sur de nombreux fichiers, vous pouvez créer un fichier et le nommer comme vous le souhaitez, par exemple vim-indent.txt, dans lequel tapez ce qui suit:

gg=G:wq

avec un saut de ligne de fuite.

Fondamentalement, ce fichier contient un enregistrement des clés sur lesquelles nous souhaitons appuyer lors de l'exécution de VIM. La :wq<ENTER>commande signifie "write and quit", et elle doit être terminée par un saut de ligne. Sans cela, vim tapera simplement la commande et attendra que vous appuyiez sur Entrée manuellement.

Vous pouvez ensuite exécuter le script sur un fichier comme celui-ci:

vim -s vim-indent.txt your_file.js

Le résultat est que VIM ouvrirait le fichier your_file.jset "appuierait" sur toutes les touches enregistrées vim-indent.txt, ce qui aurait pour effet d'appliquer l'indentation, d'écrire le fichier et de quitter.

Vous pouvez automatiser l'exécution de cette commande sur toute une arborescence de fichiers en utilisant find:

find [path/to/your/directory] -type f -name '*.js' -exec vim -s vim-indent.txt "{}" \;

Notez qu'il est fortement recommandé de copier l'intégralité du répertoire, d'opérer sur la copie et de vérifier si le résultat vous convient.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.