|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre Expert
![]() Inscription : avril 2008 Messages : 799 ![]() |
Bonjour vénérables emacsiens.
Comment faire pour que la propriété "face" soit mise à jour, soit pour tout le fichier, soit autour du "point"? J'ai écrit une fonction emacs-lisp qui effectue une recherche sur du texte et sur la propriété 'face'. Cette fonction marche parfaitement lorsque le buffer a été entièrement affiché (via un scroll, par exemple). Mais, lorsque je viens juste d'ouvrir un fichier, j'ai constaté que la propriété "face" du texte qui n'a pas encore été affiché reste à nil tant qu'il n'a pas été affiché. Code :
(get-text-property (point) 'face) => nil Dans le temps, il y avait un lazy-lock, mais il n'existe pas dans mon emacs. Comment faire pour que la propriété "face" soit mise à jour, soit pour tout le fichier, soit autour du "point"? Merci d'avance pour votre aide. )jack( Rq: Pour éviter tout problème de .emacs, j'ai lancé: "emacs -Q" et évalué seulement ma fonction. GNU Emacs 23.1.1 (i686-pc-linux-gnu, GTK+ Version 2.22.0) of 2011-03-04 on roseapple, modified by Debian |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() frederic francesConsultant informatique Inscription : juin 2009 Messages : 1 848 ![]() |
Sur les versions récente d'emacs (23.1 est une version récente) il faut utiliser la propriété 'font-lock-face au lieu de 'face.
La propriété 'face n'est pas affecté par font-lock-mode, ce qui explique que font-lock-fontify-buffer n'as pas d'effets. Je t'invite à aller lire cet article pour plus de précisions: http://emacswiki.org/emacs/TextProperties .
__________________
bazar: http://www.improetcompagnie.com/publ...ctacles-6.html BÉPO la disposition de clavier francophone, ergonomique et libre: http://bepo.fr/wiki/Accueil Emacs Wiki: http://www.emacswiki.org/ En attente de ce que produira: http://www.pushmid.com |
|
|
00
|
|
|
#3 | |||||||||||||
|
Membre Expert
![]() Inscription : avril 2008 Messages : 799 ![]() |
Citation:
Je n'ai pas trouvé la réponse à ma question dans le lien que tu m'as proposé... car le problème n'est pas là! Pour être plus précis, lorsque je positionne le point à l'intérieur d'un commentaire et que je demande la liste (que j'imagine complète) des propriétés ou seulement la propriété qui m'intéresse, j'obtiens ceci: Code :
Pour moi, ça ressemble plutôt à quelque chose comme un problème de caching... En fait, voici une manière extrêmement simple de mettre en évidence le trait/bug (?). J'ouvre un fichier avec emacs -Q, je vais "loin" dans le fichier (au moins une page, a priori). Je place le point dans un commentaire et j'évalue: Code :
Code :
Remarque: si, dans l'état initial, je tape: Code :
Si j'utilise (sit-for 0), ça marche (en rouvrant le même fichier): Code :
Code :
)jack( |
|||||||||||||
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Inscription : avril 2008 Messages : 799 ![]() |
Ne cherchez plus! J'ai eu ma réponse sur gnu.emacs.help.
Je poste un résumé demain. |
|
|
00
|
|
|
#5 | |
|
Membre Expert
![]() Inscription : avril 2008 Messages : 799 ![]() |
Citation:
Mais, ici, ce n'est pas la bonne méthode: Avec Emacs, pour vérifier si le point courant est à l'intérieur d'un commentaire ou d'une chaine, etc., il vaut mieux utiliser syntaxe-ppss (je confirme que ça marche très bien!). )jack( |
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com