[ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Top] | [Table des matières] | [Index] | [ ? ] |
Instead of computing text properties for all the text in the buffer, you can arrange to compute the text properties for parts of the text when and if something depends on them.
The primitive that extracts text from the buffer along with its properties
is buffer-substring
. Before examining the properties, this function
runs the abnormal hook buffer-access-fontify-functions
.
This variable holds a list of functions for computing text properties.
Before buffer-substring
copies the text and text properties for a
portion of the buffer, it calls all the functions in this list. Each of the
functions receives two arguments that specify the range of the buffer being
accessed. (The buffer itself is always the current buffer.)
The function buffer-substring-no-properties
does not call these
functions, since it ignores text properties anyway.
In order to prevent the hook functions from being called more than once for
the same part of the buffer, you can use the variable
buffer-access-fontified-property
.
If this variable's value is non-nil
, it is a symbol which is used as
a text property name. A non-nil
value for that text property means,
“the other text properties for this character have already been computed.”
If all the characters in the range specified for buffer-substring
have a non-nil
value for this property, buffer-substring
does
not call the buffer-access-fontify-functions
functions. It assumes
these characters already have the right text properties, and just copies the
properties they already have.
The normal way to use this feature is that the
buffer-access-fontify-functions
functions add this property, as well
as others, to the characters they operate on. That way, they avoid being
called over and over for the same text.
[ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Top] | [Table des matières] | [Index] | [ ? ] |
Ce document a été généré par Eric Reinbold le 13 Octobre 2007 en utilisant texi2html 1.78.