Emacs Lisp: Overlay Highlighting

By Xah Lee. Date: . Last updated: .

Here's example of using overlay mechanism to highlight text.

(defun xah-make-overlay-bold-region (*begin *end)
  "make the region bold, using overlay.
Version 2016-11-01"
  (interactive "r")
  (progn
    (overlay-put (make-overlay *begin *end) 'face 'bold)
    (setq mark-active nil )))

(defun xah-remove-overlays-region (*begin *end)
  "Remove overlays.
Version 2016-11-01"
  (interactive "r")
  (remove-overlays *begin *end))

Emacs has 2 mechanisms for coloring:

  1. text property: a region of text can have a property list, and this properly list specifies the color, font, size, etc.
  2. text overlay: create an “overlay” object, and this overlay can be placed on a region of text. You can think of it as a covering layer.

Vast majority of coloring in emacs are done with text properties. This is faster, and suitable for lots of coloring, such as syntax coloring of a programing language. When text are copied by user or in elisp, the text properties come with it by default. Font Lock mode stores coloring info in text properties, and vast majority of programing language modes use font lock mode to color text.

〔►see Emacs Lisp: Text Properties

〔►see Emacs Lisp: Font Lock Mode Basics

Overlay is useful for smaller number of coloring, or on and off coloring, such as temporary highlight of words.

(info "(elisp) Overlays")

Writing Major Mode Topics

  1. How to Write a Emacs Major Mode for Syntax Coloring
  2. Emacs Lisp: html6-mode
  3. Emacs Lisp: Font Lock Mode Basics
  4. Emacs Lisp: How to Define Face
  5. Emacs Lisp: How to Color Comment in Major Mode
  6. Emacs Lisp: How to Write Comment Command in Major Mode
  7. Emacs Lisp: How to Write Your Own Comment Command from Scratch
  8. Emacs Lisp: How to Write Keyword Completion Command
  9. Emacs Lisp: How to Create Keymap for Major Mode
  10. Emacs Lisp: Create Abbrev and Templates for Major Mode
  11. Emacs Lisp: Text Properties
  12. Emacs Lisp: Overlay Highlighting
  13. Emacs: Lookup Google, Dictionary, Documentation

  1. Emacs Lisp: How to Name Your Major Mode
  2. Emacs Lisp: What's “feature”?
  3. Emacs Lisp: require, load, load-file, autoload, feature, Explained

Syntax Table

  1. Emacs Lisp: Syntax Table Tutorial
  2. Emacs Lisp: How to Find Syntax of a Character?
  3. Emacs Lisp: How to Modify Syntax Table Temporarily
  4. Emacs Lisp: How to Determine If Cursor is Inside String or Comment
  5. Emacs Lisp: Find Matching Bracket Character
Like it? Buy Xah Emacs Tutorial. Thanks.