Le fichier de configuration de perltidy
( ~/.perltidyrc) suivant permet de respecter les
règles de mise en forme proposé par Damian Conway dans son livre
' Perl Best Practices'
-l=78 # Longueur maximale 78 colonnes
-i=4 # Niveau d'indentation 4 colonnes
-ci=4 # Indentation de continuation 4 colonnes
-st # Sortie vers STDOUT
-se # Sortie vers STDERR
-vt=2 # Serrage vertical maximal
-cti=0 # Pas d'indentation pour parentheses fermantes
-pt=1 # Serrage moyen des parentheses
-bt=1 # Serrage moyen des accolades
-sbt=1 # Serrage moyen des crochets
-bbt=1 # Serrage moyen des accolades de bloc
-nsfs # Pas d'espace avant point-virgule
-nolq # Ne pas désindenter les longues chaînes quotées
-wbb="% + - * / x != == >= <= =~ !~ < > | & >= < = **= += *= &= <<= &&= -= /= |= >>= ||= .= %= ^= x="
# Scinder avant tous les opérateurs
Prenons l'exemple du fichier toto.pl très mal
formé en Perl :
my $a="toto";
if($a eq "titi")
{ $b=1;$c="Une très longue ligne de plus de 78 caratères pout montrer l'utilité de perltidy" }else{
# un commentaire
$b=2};print $b,
$a,$c . "\n";Ci-desssous le code en sortie de:
perltidy toto.pl
my $a = "toto";
if ( $a eq "titi" ) {
$b = 1;
$c
= "Une très longue ligne de plus de 78 caratères pout montrer l'utilité de perltidy";
}
else {
# un commentaire
$b = 2;
}
print $b, $a, $c . "\n";Tout de même plus lisible non ?
Mais la ligne centrale dépasse les 78 caractères conseillé par
Darmian Conway. Pour y remédier nous pouvons utiliser le script
break_long_quotes.pl fourni avec perltidy.
break_long_quotes.pl toto.pl | perltidy
my $a = "toto";
if ( $a eq "titi" ) {
$b = 1;
$c = "Une très longue ligne de plus de 78 caratères pout montrer "
. "l'utilité de perltidy";
}
else {
# un commentaire
$b = 2;
}
print $b, $a, $c . "\n";L'indentation avec vim et emacs :
Pour permettre une 'bonne' indentation sous vim ajouter les lignes suivantes au fichier
~/.vimrc
set tabstop=4 "Un niveau d'indentation toutes les 4 colonnes set expandtab "Convertir les tabulations en espaces" set shiftwidth=4 "Indenter/Déindenter de 4 colonnes" set shiftround "Toujours indenter/désindenter à l'arrêt le plus proche"
Et son équivalent pour emacs
( ~/.emacs)
(defalias 'perl-mode 'cperl-mode) ;; indentation de 4 espaces en mode cperl '(cperl-close-parent-offset -4) '(cperl-continued-statement-offset 4) '(cperl-indent-level 4) '(cperl-indent-parents-as-block t) '(cperl-tab-always-indent t)



Commentaires: