39.13.4 Fringe Bitmaps
The fringe bitmaps are the actual bitmaps which represent the logical fringe indicators for truncated or continued lines, buffer boundaries, overlay arrows, etc. Each bitmap is represented by a symbol. These symbols are referred to by the variable fringe-indicator-alist
, which maps fringe indicators to bitmaps (see Fringe Indicators), and the variable fringe-cursor-alist
, which maps fringe cursors to bitmaps (see Fringe Cursors).
Lisp programs can also directly display a bitmap in the left or right fringe, by using a display
property for one of the characters appearing in the line (see Other Display Specs). Such a display specification has the form
(fringe bitmap [face])
fringe
is either the symbol left-fringe
or right-fringe
. bitmap
is a symbol identifying the bitmap to display. The optional face
names a face whose foreground and background colors are to be used to display the bitmap, using the attributes of the fringe
face for colors that face
didnβt specify. If face
is omitted, that means to use the attributes of the default
face for the colors which the fringe
face didnβt specify. For predictable results that donβt depend on the attributes of the default
and fringe
faces, we recommend you never omit face
, but always provide a specific face. In particular, if you want the bitmap to be always displayed in the fringe
face, use fringe
as face
.
For instance, to display an arrow in the left fringe, using the warning
face, you could say something like:
(overlay-put
(make-overlay (point) (point))
'before-string (propertize
"x" 'display
`(left-fringe right-arrow warning)))
Here is a list of the standard fringe bitmaps defined in Emacs, and how they are currently used in Emacs (via fringe-indicator-alist
and fringe-cursor-alist
):
left-arrow
, right-arrow
β
Used to indicate truncated lines.
left-curly-arrow
, right-curly-arrow
β
Used to indicate continued lines.
right-triangle
, left-triangle
β
The former is used by overlay arrows. The latter is unused.
up-arrow
, down-arrow
β
bottom-left-angle
, bottom-right-angle
β
top-left-angle
, top-right-angle
β
left-bracket
, right-bracket
β
empty-line
β
Used to indicate buffer boundaries.
filled-rectangle
, hollow-rectangle
β
filled-square
, hollow-square
β
vertical-bar
, horizontal-bar
β
Used for different types of fringe cursors.
exclamation-mark
, question-mark
β
Not used by core Emacs features.
The next subsection describes how to define your own fringe bitmaps.
function
fringe-bitmaps-at-pos \&optional pos windowβ
This function returns the fringe bitmaps of the display line containing position pos
in window window
. The return value has the form (left right ov)
, where left
is the symbol for the fringe bitmap in the left fringe (or nil
if no bitmap), right
is similar for the right fringe, and ov
is non-nil
if there is an overlay arrow in the left fringe.
The value is nil
if pos
is not visible in window
. If window
is nil
, that stands for the selected window. If pos
is nil
, that stands for the value of point in window
.