[ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Top] | [Table des matières] | [Index] | [ ? ] |
Overlay properties are like text properties in that the properties that alter how a character is displayed can come from either source. But in most respects they are different. Voir la section Text Properties, for comparison.
Text properties are considered a part of the text; overlays and their properties are specifically considered not to be part of the text. Thus, copying text between various buffers and strings preserves text properties, but does not try to preserve overlays. Changing a buffer's text properties marks the buffer as modified, while moving an overlay or changing its properties does not. Unlike text property changes, overlay property changes are not recorded in the buffer's undo list.
These functions read and set the properties of an overlay:
This function returns the value of property prop recorded in
overlay, if any. If overlay does not record any value for that
property, but it does have a category
property which is a symbol,
that symbol's prop property is used. Otherwise, the value is
nil
.
This function sets the value of property prop recorded in overlay to value. It returns value.
This returns a copy of the property list of overlay.
See also the function get-char-property
which checks both overlay
properties and text properties for a given character. Voir la section Examining Text Properties.
Many overlay properties have special meanings; here is a table of them:
priority
This property's value (which should be a nonnegative integer number)
determines the priority of the overlay. The priority matters when two or
more overlays cover the same character and both specify the same property;
the one whose priority
value is larger takes priority over the
other. For the face
property, the higher priority value does not
completely replace the other; instead, its face attributes override the face
attributes of the lower priority face
property.
Currently, all overlays take priority over text properties. Please avoid using negative priority values, as we have not yet decided just what they should mean.
window
If the window
property is non-nil
, then the overlay applies
only on that window.
category
If an overlay has a category
property, we call it the category
of the overlay. It should be a symbol. The properties of the symbol serve
as defaults for the properties of the overlay.
face
This property controls the way text is displayed—for example, which font and which colors. Voir la section Faces, for more information.
In the simplest case, the value is a face name. It can also be a list; then each element can be any of these possibilities:
(foreground-color . color-name)
or (background-color . color-name)
. These elements specify
just the foreground color or just the background color.
(foreground-color . color-name)
has the same effect as
(:foreground color-name)
; likewise for the background.
mouse-face
This property is used instead of face
when the mouse is within the
range of the overlay.
display
This property activates various features that change the way text is
displayed. For example, it can make text appear taller or shorter, higher
or lower, wider or narrower, or replaced with an image. Voir la section The display
Property.
help-echo
If an overlay has a help-echo
property, then when you move the mouse
onto the text in the overlay, Emacs displays a help string in the echo area,
or in the tooltip window. For details see Text help-echo.
modification-hooks
This property's value is a list of functions to be called if any character within the overlay is changed or if text is inserted strictly within the overlay.
The hook functions are called both before and after each change. If the functions save the information they receive, and compare notes between calls, they can determine exactly what change has been made in the buffer text.
When called before a change, each function receives four arguments: the
overlay, nil
, and the beginning and end of the text range to be
modified.
When called after a change, each function receives five arguments: the
overlay, t
, the beginning and end of the text range just modified,
and the length of the pre-change text replaced by that range. (For an
insertion, the pre-change length is zero; for a deletion, that length is the
number of characters deleted, and the post-change beginning and end are
equal.)
If these functions modify the buffer, they should bind
inhibit-modification-hooks
to t
around doing so, to avoid
confusing the internal mechanism that calls these hooks.
Text properties also support the modification-hooks
property, but the
details are somewhat different (voir la section Properties with Special Meanings).
insert-in-front-hooks
This property's value is a list of functions to be called before and after
inserting text right at the beginning of the overlay. The calling
conventions are the same as for the modification-hooks
functions.
insert-behind-hooks
This property's value is a list of functions to be called before and after
inserting text right at the end of the overlay. The calling conventions are
the same as for the modification-hooks
functions.
invisible
The invisible
property can make the text in the overlay invisible,
which means that it does not appear on the screen. Voir la section Invisible Text,
for details.
intangible
The intangible
property on an overlay works just like the
intangible
text property. Voir la section Properties with Special Meanings, for details.
isearch-open-invisible
This property tells incremental search how to make an invisible overlay visible, permanently, if the final match overlaps it. Voir la section Invisible Text.
isearch-open-invisible-temporary
This property tells incremental search how to make an invisible overlay visible, temporarily, during the search. Voir la section Invisible Text.
before-string
This property's value is a string to add to the display at the beginning of the overlay. The string does not appear in the buffer in any sense—only on the screen.
after-string
This property's value is a string to add to the display at the end of the overlay. The string does not appear in the buffer in any sense—only on the screen.
evaporate
If this property is non-nil
, the overlay is deleted automatically if
it becomes empty (i.e., if its length becomes zero). If you give an empty
overlay a non-nil
evaporate
property, that deletes it
immediately.
local-map
If this property is non-nil
, it specifies a keymap for a portion of
the text. The property's value replaces the buffer's local map, when the
character after point is within the overlay. Voir la section Active Keymaps.
keymap
The keymap
property is similar to local-map
but overrides the
buffer's local map (and the map specified by the local-map
property)
rather than replacing it.
[ < ] | [ > ] | [ << ] | [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.