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.

Répondre à