Variable: set-message-functions

set-message-functions is a customizable variable defined in minibuffer.el.gz.

Value

(set-minibuffer-message)

Documentation

List of functions to handle display of echo-area messages.

Each function is called with one argument that is the text of a message. If a function returns nil, a previous message string is given to the next function in the list, and if the last function returns nil, the last message string is displayed in the echo area. If a function returns a string, the returned string is given to the next function in the list, and if the last function returns a string, it's displayed in the echo area. If a function returns any other non-nil value, no more functions are called from the list, and no message will be displayed in the echo area.

Useful functions to add to this list are:

 inhibit-message(var)/inhibit-message(fun) -- if this function is the first in the list,
                             messages that match the value of
                             inhibit-message-regexps will be suppressed.
 set-multi-message -- accumulate multiple messages and display them
                             together as a single message.
 set-minibuffer-message -- if the minibuffer is active, display the
                             message at the end of the minibuffer text
                             (this is the default).

This variable was added, or its default value changed, in Emacs 29.1.

View in manual

Probably introduced at or before Emacs version 29.1.

Source Code

;; Defined in /usr/src/emacs/lisp/minibuffer.el.gz
(defcustom set-message-functions '(set-minibuffer-message)
  "List of functions to handle display of echo-area messages.
Each function is called with one argument that is the text of a message.
If a function returns nil, a previous message string is given to the
next function in the list, and if the last function returns nil, the
last message string is displayed in the echo area.
If a function returns a string, the returned string is given to the
next function in the list, and if the last function returns a string,
it's displayed in the echo area.
If a function returns any other non-nil value, no more functions are
called from the list, and no message will be displayed in the echo area.

Useful functions to add to this list are:

 `inhibit-message'        -- if this function is the first in the list,
                             messages that match the value of
                             `inhibit-message-regexps' will be suppressed.
 `set-multi-message'      -- accumulate multiple messages and display them
                             together as a single message.
 `set-minibuffer-message' -- if the minibuffer is active, display the
                             message at the end of the minibuffer text
                             (this is the default)."
  :type '(choice (const :tag "No special message handling" nil)
                 (repeat
                  (choice (function-item :tag "Inhibit some messages"
                                         inhibit-message)
                          (function-item :tag "Accumulate messages"
                                         set-multi-message)
                          (function-item :tag "Handle minibuffer"
                                         set-minibuffer-message)
                          (function :tag "Custom function"))))
  :version "29.1")