help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: When are the face text properties actually set?


From: Eli Zaretskii
Subject: Re: When are the face text properties actually set?
Date: Wed, 13 Jun 2012 18:39:58 +0300

> From: jack-mac <duthen.mac@gmail.com>
> Date: Wed, 13 Jun 2012 07:32:31 -0700 (PDT)
> 
> I start "emacs -Q", open any emacs-lisp file which containing more
> than
> one page of text.  I choose a point (e.g. 2400) which is beyond the
> first page and type the following:
> 
>       M-: (get-text-property 2400 'face) RET
>         => nil
> 
>         M-: (progn (goto-char 2400) (get-text-property 2400 'face))
>         => nil
> 
> Now, point 2400 is visible.
> 
>       M-: (get-text-property 2400 'face) RET
>         => font-lock-comment-face
> 
> The function get-text-property returns nil only when the point given
> as argument has not yet been displayed.
> 
> So, I can reproduce it each time I close and reopen the file. (C-x C-v
> RET)
> 
> Is this normal or is it a bug?

Normal.

> If it's normal, is there any way to force the text properties to be
> set the way they will be set when the point is displayed?

Yes, but it's slow: you need to get the whole buffer fontified by
font-lock.  Normally, Emacs only fontifies the portion of text that is
about to be displayed.

> I tried the following which works more or less:
> 
>         M-: (progn (goto-char 2400) (sit-for 0) (get-text-property
> 2400 'face))
>         => font-lock-comment-face

Yes, because sit-for causes Emacs to prepare the text for display.

Why do you need that?



reply via email to

[Prev in Thread] Current Thread [Next in Thread]