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.
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")