🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: fr.comp.applications.emacs
7 messages
7 total messages Started by jack-mac Wed, 13 Jun 2012 10:07
Comment mettre à jour la propriété face pour que get-text-property fonctionne correctement?
#19
Author: jack-mac
Date: Wed, 13 Jun 2012 10:07
36 lines
2688 bytes
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é.

(get-text-property (point) 'face) => nil

J'ai essayé (font-lock-fontify-buffer) mais ça ne provoque pas la mise
à jour que je souhaite.

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.

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
Re: Comment mettre � jour la propri�t� face pour que get-text-property fonctionne correctement?
#21
Author: Vincent Bela�che
Date: Thu, 14 Jun 2012 19:58
28 lines
2252 bytes
jack-mac <duthen.mac@gmail.com> writes:


[...]


> 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.
>
> 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

As-tu essay� font-lock-fontify-block

Sinon essaie peut-�tre juste avant de faire le get-text-property un truc
de ce genre 

(let ((inhibit-read-only))
     (delete-region (point) (progn (insert 32) (point))))

histoire de provoquer un rafraichissement du texte � cet endroit.

   Vincent.
Re: Comment mettre à jour la propriété face pour que get-text-property fonctionne correctement?
#22
Author: jack-mac
Date: Fri, 15 Jun 2012 15:58
42 lines
2909 bytes
On 14 juin, 21:58, vincent.belai...@gmail.com (Vincent Belaïche)
wrote:
> jack-mac <duthen....@gmail.com> writes:
>
> [...]
>
> > 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.
>
> > 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
>
> As-tu essayé font-lock-fontify-block
>
> Sinon essaie peut-être juste avant de faire le get-text-property un truc
> de ce genre
>
> (let ((inhibit-read-only))
>      (delete-region (point) (progn (insert 32) (point))))
>
> histoire de provoquer un rafraichissement du texte à cet endroit.
>
>    Vincent.

Bonjour,
merci d'avoir répondu!
Pour rafraichir le texte autour du point, on peut utiliser (sit-for
0), mais c'est très lourd.
En fait, j'ai eu la réponse sur gnu.emacs.help :
Pour forcer la fontification, il faut utiliser jit-lock-fontify-now
Mais, en plus, ce n'est pas la bonne méthode:
Pour vérifier si le point est dans un commentaire ou une chaine, etc.,
il vaut mieux utiliser syntaxe-ppss
)jack(
Re: Comment mettre � jour la propri�t� face pour que get-text-property fonctionne correctement?
#23
Author: Vincent Bela�che
Date: Sun, 24 Jun 2012 20:53
24 lines
2140 bytes
jack-mac <duthen.mac@gmail.com> writes:


[...]

>
> Bonjour,
> merci d'avoir r�pondu!
> Pour rafraichir le texte autour du point, on peut utiliser (sit-for
> 0), mais c'est tr�s lourd.
> En fait, j'ai eu la r�ponse sur gnu.emacs.help :
> Pour forcer la fontification, il faut utiliser jit-lock-fontify-now
> Mais, en plus, ce n'est pas la bonne m�thode:
> Pour v�rifier si le point est dans un commentaire ou une chaine, etc.,
> il vaut mieux utiliser syntaxe-ppss
> )jack(

Merci de l'info... Apr�s avoir cherch� cette fonction, c'est:

   syntax-ppss

J'avoue que c'est un aspect d'EMACS que je connais tr�s mal...

  Vincent.
Re: Comment mettre à jour la propriété face pour que get-text-property fonctionne correctement?
#24
Author: valrik
Date: Mon, 25 Jun 2012 13:28
6 lines
1689 bytes
vincent.belaiche@gmail.com (Vincent Belaïche) writes:
>
> J'avoue que c'est un aspect d'EMACS que je connais très mal...

Moi, encore plus!
En deux mots, ça consiste en quoi une "propriété face"?
Re: Comment mettre à jour la propriété face pour que get-text-property fonctionne correctement?
#42
Author: duthen.cnv
Date: Mon, 30 Jul 2012 10:56
15 lines
2435 bytes
Le lundi 25 juin 2012 15:28:14 UTC+2, (inconnu) a écrit :
> (Vincent Belaïche) writes:
> > J'avoue que c'est un aspect d'EMACS que je connais très mal...
> 
> Moi, encore plus!
> 
> En deux mots, ça consiste en quoi une "propriété face"?

Lorsque Emacs affiche une partie du texte en couleurs (coloration syntaxique, par exemple), il se passe quelque chose en interne!
Xemacs utilise un mécanisme d'overlays (que je décrirai pas).
Gnu FSF Emacs utilise un mécanisme de propriétés.  Dans GNU FSF Emacs, si tu places le curseur à l'intérieur d'un mot en couleur et que tu tapes M-: (get-text-property (point) 'face) RET, emacs affichera la propriété 'face' du point courant.
Re: Comment mettre à jour la propriété face pour que get-text-property fonctionne correctement?
#46
Author: valrik
Date: Sat, 25 Aug 2012 17:38
22 lines
2524 bytes
duthen.cnv@gmail.com writes:

>> 
>> Moi, encore plus!
>> 
>> En deux mots, ça consiste en quoi une "propriété face"?
>
> Lorsque Emacs affiche une partie du texte en couleurs (coloration syntaxique, par exemple), il se passe quelque chose en interne!
> Xemacs utilise un mécanisme d'overlays (que je décrirai pas).
> Gnu FSF Emacs utilise un mécanisme de propriétés.  Dans GNU FSF Emacs, si tu places le curseur à l'intérieur d'un mot en couleur et que tu tapes M-: (get-text-property (point) 'face) RET, emacs affichera la propriété 'face' du point courant.


Ok, merci pour ta réponse. J'ai essayé la manip, et effectivement, ça
m'affiche un message. Je n'arrive pas à l'interpréter correctement pour
l'instant, mais je garde l'info dans un recoin de mon cerveau... car il
se pourrait bien qu'elle me soit utile dans quelques temps.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads