GNU Emacs Lisp Reference Manual
Overlay properties are like text properties in some respects, but the differences are more important than the similarities. Text properties are considered a part of the text; overlays 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 propery changes, overlay changes are not recorded in the buffer's undo list.
prioritypriority value is larger takes priority over the other, and its face attributes override the face attributes of the lower priority overlay. 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.
windowwindow property is non-nil, then the overlay applies only on that window.categorycategory 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.facemouse-faceface when the mouse is within the range of the overlay. This feature may be temporary, like face.modification-hooksThe 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.)
insert-in-front-hooksmodification-hooks functions.insert-behind-hooksmodification-hooks functions.invisibleinvisible property can make the text in the overlay invisible, which means that it does not appear on the screen. See Invisible Text, for details.intangibleintangible property on an overlay works just like the intangible text property. See Special Properties, for details.before-stringafter-stringevaporatenil, the overlay is deleted automatically if it ever becomes empty (i.e., if it spans no characters).These are the functions for reading and writing the properties of an overlay.
category property which is a symbol, that symbol's prop property is used. Otherwise, the value is nil.See also the function get-char-property which checks both overlay properties and text properties for a given character. See Examining Properties.