Je n'ai toujours aps eu le temps de tester et finaliser l'indentation d'un
fichier PHP, mais voici d�j� un petit bout pour ceux qui sont press�s.
Tout d'abord, sachez qu'il existe plusieurs versions, sur le net, de php-mode
pour *emacs. Il se peut qu'elles diff�rent par les fonctionalit�s et
librairies dont chacune a besoin. C'est la raison pour laquelle je voulais en
tester un pour vous mais le temps me manque vraiment ces cours-ci.J'ai un RPM
de ~25 k que je peux fournir � ceux qui le d�sire.
Deuxi�mement, le (ou les) fichier php-mode.el peut-�tre charg� automatiquement
par votre *emacs lors de l'�dition d'un quelconque fichier php. Ceci devrait
etre r�gl� par l'installation du RPM qui, sauf erreur, d�pose un fichier
php-mode.el(c) dans /usr/share/*emacs/site-lisp.
Troisi�mement, j'utilise xemacs car celui-ci poss�de un mode -vanilla qui ne
charge que les fichiers *.el explicitememt. Sous SuSe, emacs appelle d�j� un
certain nombre de libs qui sont ind�sirables et ralentissent l'ex�cution du
script.
Voil�, maintenant le script (auquel vous donnerez le nom que vous voulez)
#!/bin/bash
ProgName=$(basename $0)
tfile="/var/opt/tmp/${ProgName}$$"
trap 'cd /tmp; rm -rf ${tfile}*; exit' 0 1 2 3 15
if [ -z "$1" ]
then
print -u2 "Usage: ${ProgName} <FIleName>"
exit 2
fi
File=$1
cat >${tfile} <<!_EOF
(load-file "php-mode.el") ;; Chargement des fonctions d'indentation
(php-mode) ;; Commutation en php-mode
(mark-whole-buffer) ;; Set mark (beg -> end)
(indent-according-to-mode) ;; indentation de tout le buffer
(write-file "${File}.New") ;; Ecriture du nouveau fichier indent�
!_EOF
xemacs -batch -vanilla -i ${File} -l ${tfile}
############ Fin de script #######################
Vous pouvez toujours faire un load-file avec un php-mode.el. Si celui-ci
n'existe pas, vous pouvez en cr�er un (dans votre emacs) en utilisant
'byte-compile-file'. Comme je ne sais pas le genre de risque vous voulez
prendre, le fichier indent� se trouvera dans <VotreFichier>.New. �a vous
�vitera de pleurer apr�s coup :-)
Je le dis encore une fois... je n'ai pas eu le temps de tester...
Daniel
--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question. Ouais, pour se d�sabonner aussi.