Each extent has a property list associating property names with
values. Some property names have predefined meanings, and can usually
only assume particular values. Assigning other values to such a
property either cause the value to be converted into a legal value
(e.g., assigning anything but nil to a Boolean property will
cause the value of t to be assigned to the property) or will
cause an error. Property names without predefined meanings can be
assigned any value. An undefined property is equivalent to a property
with a value of nil, or with a particular default value in the
case of properties with predefined meanings. Note that, when an extent
is created, the end-open and detachable properties are set
on it.
If an extent has a parent, all of its properties actually derive from that parent (or from the root ancestor if the parent in turn has a parent), and setting a property of the extent actually sets that property on the parent. See Extent Parents.
This function returns extent's value for property, or default if no such property exists.
This function returns a list of all of extent's properties that do not have the value of
nil(or the default value, for properties with predefined meanings).
This function sets property to value in extent. (If property has a predefined meaning, only certain values are allowed, and some values may be converted to others before being stored.)
Change some properties of extent. plist is a property list. This is useful to change many extent properties at once.
The following table lists the properties with predefined meanings, along with their allowable values.
detacheddetach-extent. See Detached Extents.
destroyeddelete-extent.
priorityset-extent-priority and accessed with extent-priority.
start-openstart-closedstart-open but with the opposite sense. Setting
this property clears start-open and vice-versa.
end-opent by default.
See Extent Endpoints.
end-closedend-open but with the opposite sense. Setting
this property clears end-open and vice-versa.
read-onlyfacenil) The face
in which to display the extent's text. This property can also be set
with set-extent-face and accessed with extent-face.
Note that if a list of faces is specified, the faces are merged together,
with faces earlier in the list having priority over faces later in the
list.
mouse-facenil) The face
used to display the extent when the mouse moves over it. This property
can also be set with set-extent-mouse-face and accessed with
extent-mouse-face. Note that if a list of faces is specified,
the faces are merged together, with faces earlier in the list having
priority over faces later in the list. See Extents and Events.
pointertext-pointer-glyph
and nontext-pointer-glyph variables. If for any reason this
glyph is an invalid pointer, the standard glyphs will be used as
fallbacks. See External Glyphs.
detachablet by default. See Detached Extents.
duplicableuniqueduplicable.
When this is set, there may be only one instance of
this extent attached at a time. See Duplicable Extents.
invisiblet, text under this extent will not be displayed –
it will look as if the text and the begin-glyph is not there at all.
The end-glyph will still be displayed.
keymapnil) This keymap is consulted for mouse clicks on this
extent or keypresses made while point is within the extent.
See Extents and Events.
copy-functionpaste-functionbegin-glyphnil) This extent's begin glyph.
See Annotations.
end-glyphnil) This extent's end glyph.
See Annotations.
begin-glyph-layouttext, whitespace, inside-margin, or
outside-margin) The layout policy for this extent's begin glyph.
Defaults to text. See Annotations.
end-glyph-layouttext, whitespace, inside-margin, or
outside-margin) The layout policy for this extent's end glyph.
Defaults to text. See Annotations.
initial-redisplay-functionThis is used by lazy-shot to implement lazy font-locking. The
functionality is still experimental, and may change without further
notice.
The following convenience functions are provided for accessing particular properties of an extent.
This function returns the
faceproperty of extent. This might also return a list of face names. Do not modify this list directly! Instead, useset-extent-face.Note that you can use
eqto compare lists of faces as returned byextent-face. In other words, if you set the face of two different extents to two lists that areequalbut noteq, then the return value ofextent-faceon the two extents will return the identical list.
This function returns the
mouse-faceproperty of extent. This might also return a list of face names. Do not modify this list directly! Instead, useset-extent-mouse-face.Note that you can use
eqto compare lists of faces as returned byextent-mouse-face, just like forextent-face.
This function returns the
begin-glyph-layoutproperty of extent, i.e. the layout policy associated with the extent's begin glyph.
This function returns the
end-glyph-layoutproperty of extent, i.e. the layout policy associated with the extent's end glyph.
This function returns the
begin-glyphproperty of extent, i.e. the glyph object displayed at the beginning of extent. If there is none,nilis returned.
This function returns the
end-glyphproperty of extent, i.e. the glyph object displayed at the end of extent. If there is none,nilis returned.
The following convenience functions are provided for setting particular properties of an extent.
This function sets the
priorityproperty of extent to priority.
This function sets the
mouse-faceproperty of extent to face.
This function sets the
keymapproperty of extent to keymap. keymap must be either a keymap object, ornil.
This function sets the
begin-glyph-layoutproperty of extent to layout.
This function sets the
end-glyph-layoutproperty of extent to layout.
This function sets the
begin-glyphandglyph-layoutproperties of extent to begin-glyph and layout, respectively. (layout defaults totextif not specified.)