elisp: Overlay Arrow

 
 37.13.6 The Overlay Arrow
 -------------------------
 
 The “overlay arrow” is useful for directing the user’s attention to a
 particular line in a buffer.  For example, in the modes used for
 interface to debuggers, the overlay arrow indicates the line of code
 about to be executed.  This feature has nothing to do with “overlays”
 (SeeOverlays).
 
  -- Variable: overlay-arrow-string
      This variable holds the string to display to call attention to a
      particular line, or ‘nil’ if the arrow feature is not in use.  On a
      graphical display the contents of the string are ignored; instead a
      glyph is displayed in the fringe area to the left of the display
      area.
 
  -- Variable: overlay-arrow-position
      This variable holds a marker that indicates where to display the
      overlay arrow.  It should point at the beginning of a line.  On a
      non-graphical display the arrow text appears at the beginning of
      that line, overlaying any text that would otherwise appear.  Since
      the arrow is usually short, and the line usually begins with
      indentation, normally nothing significant is overwritten.
 
      The overlay-arrow string is displayed in any given buffer if the
      value of ‘overlay-arrow-position’ in that buffer points into that
      buffer.  Thus, it is possible to display multiple overlay arrow
      strings by creating buffer-local bindings of
      ‘overlay-arrow-position’.  However, it is usually cleaner to use
      ‘overlay-arrow-variable-list’ to achieve this result.
 
    You can do a similar job by creating an overlay with a
 ‘before-string’ property.  SeeOverlay Properties.
 
    You can define multiple overlay arrows via the variable
 ‘overlay-arrow-variable-list’.
 
  -- Variable: overlay-arrow-variable-list
      This variable’s value is a list of variables, each of which
      specifies the position of an overlay arrow.  The variable
      ‘overlay-arrow-position’ has its normal meaning because it is on
      this list.
 
    Each variable on this list can have properties ‘overlay-arrow-string’
 and ‘overlay-arrow-bitmap’ that specify an overlay arrow string (for
 text terminals) or fringe bitmap (for graphical terminals) to display at
 the corresponding overlay arrow position.  If either property is not
 set, the default ‘overlay-arrow-string’ or ‘overlay-arrow’ fringe
 indicator is used.