OVH Cloud OVH Cloud

Perl et emacs

2 réponses
Avatar
Jean-Michel Caricand
Bonjour,

Excusez-moi si le sujet n'est pas vraiment un problème lié à Perl mais comme
j'imagine que beaucoup d'entre vous utilise Emacs je me lance.

J'ai un petit soucis avec la coloration syntaxique de Perl. Je donne mon
exemple :

=head2 __creer

La méthode B<__creer> est une méthode métier. Elle lance le processus de
création du nouveau service.

En cas de succès, l'utilisateur est redirigé vers la liste des services.
Dans le cas contraire, le formulaire de création du service est réaffiché.

=cut

sub __creer : Local {
my ($self, $c) = @_;

$c->log->info('Intranet::Controller::CreerService::__creer');
$c->res->redirect('/service/list');

...

Dès que j'utilise le signe "'" comme pour "l'utilisateur", Emacs considère
que je suis dans une chaine de caractère. Mon problème est que je suis dans
une section =head, donc son interprétation est fausse. Est-ce un problème
lié à mon installation ou un problème plus général ?

Merci.

2 réponses

Avatar
Paul Gaborit
À (at) Fri, 30 Jun 2006 11:05:32 +0200, Jean-Michel Caricand
écrivait (wrote):
Excusez-moi si le sujet n'est pas vraiment un problème lié à Perl m ais comme
j'imagine que beaucoup d'entre vous utilise Emacs je me lance.

J'ai un petit soucis avec la coloration syntaxique de Perl. Je donne mon
exemple :

=head2 __creer

La méthode B<__creer> est une méthode métier. Elle lance le process us de
création du nouveau service.

En cas de succès, l'utilisateur est redirigé vers la liste des servic es.
Dans le cas contraire, le formulaire de création du service est réaff iché.

=cut

sub __creer : Local {
my ($self, $c) = @_;

$c->log->info('Intranet::Controller::CreerService::__creer');
$c->res->redirect('/service/list');

...

Dès que j'utilise le signe "'" comme pour "l'utilisateur", Emacs consid ère
que je suis dans une chaine de caractère. Mon problème est que je sui s dans
une section =head, donc son interprétation est fausse. Est-ce un prob lème
lié à mon installation ou un problème plus général ?


C'est "normal"... Pour des raisons de performances, la coloration
syntaxique sous (X)Emacs est calculée localement. Or, vous êtes dans
un cas où il faudrait un calcul contextuel beaucoup plus large.

Vous pouvez quand même vous en sortir en appelant la fonction
'font-lock-fontify-buffer' à la main :

M-x font-lock-fontify-buffer

pour que (X)Emacs refasse une analyse globale pour calculer la
coloration syntaxique. Elle restera alors correcte jusqu'à la
prochaine modification du POD.

PS: si vous utilisez un autre module de coloration syntaxique que
'font-lock', la fonction à appeler n'est pas la même mais le mécanisme
est similaire.

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>

Avatar
Vincent Lefevre
Dans l'article ,
Paul Gaborit écrit:

À (at) Fri, 30 Jun 2006 11:05:32 +0200, Jean-Michel Caricand
écrivait (wrote):
[...]

J'ai un petit soucis avec la coloration syntaxique de Perl. Je
donne mon exemple :

=head2 __creer

La méthode B<__creer> est une méthode métier. Elle lance le processus de
création du nouveau service.

En cas de succès, l'utilisateur est redirigé vers la liste des services.
Dans le cas contraire, le formulaire de création du service est réaffiché.

=cut

sub __creer : Local {
my ($self, $c) = @_;

$c->log->info('Intranet::Controller::CreerService::__creer');
$c->res->redirect('/service/list');

...

Dès que j'utilise le signe "'" comme pour "l'utilisateur", Emacs
considère que je suis dans une chaine de caractère. Mon problème
est que je suis dans une section =head, donc son interprétation
est fausse. Est-ce un problème lié à mon installation ou un
problème plus général ?


C'est "normal"... Pour des raisons de performances, la coloration
syntaxique sous (X)Emacs est calculée localement. Or, vous êtes dans
un cas où il faudrait un calcul contextuel beaucoup plus large.
[...]


Il n'est pas capable de faire une coloration globale en arrière-plan?

Même dans les commentaires, il considère @ comme le début d'un
tableau! Par exemple, avec:

#

Je fais suivre sur f.c.a.e, car c'est plus un problème d'Emacs que
de Perl.

--
Vincent Lefèvre - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / SPACES project at LORIA