Commit 2aae0630 authored by Juri Linkov's avatar Juri Linkov

User-friendly display of error messages at the end of minibuffer

* lisp/simple.el (minibuffer-setup-hook): Add minibuffer-error-initialize.
(minibuffer-error-initialize, minibuffer-error-function): New functions.
(Bug#34939)
parent 9d72d6a3
Pipeline #1886 failed with stage
in 7 seconds
......@@ -471,6 +471,12 @@ its functions.
names match certain regular expressions as big. Ido won't attempt to
list the contents of such directories when completing file names.
** Minibuffer
---
*** Minibuffer now uses 'minibuffer-message' to display error messages
at the end of the active minibuffer.
** map.el
*** Now also understands plists.
*** Now defined via generic functions that can be extended via 'cl-defmethod'.
......
......@@ -2439,6 +2439,28 @@ in the search status stack."
Go to the history element by the absolute history position HIST-POS."
(goto-history-element hist-pos))
(add-hook 'minibuffer-setup-hook 'minibuffer-error-initialize)
(defun minibuffer-error-initialize ()
"Set up minibuffer error processing."
(setq-local command-error-function 'minibuffer-error-function))
(defun minibuffer-error-function (data context caller)
"Display error messages in the active minibuffer.
The same as `command-error-default-function' but display error messages
at the end of the minibuffer using `minibuffer-message' to not obscure
the minibuffer contents."
(discard-input)
(ding)
(let ((string (error-message-string data)))
;; If we know from where the error was signaled, show it in
;; *Messages*.
(let ((inhibit-message t))
(message "%s%s" (if caller (format "%s: " caller) "") string))
;; Display an error message at the end of the minibuffer.
(minibuffer-message (concat context string))))
;Put this on C-x u, so we can force that rather than C-_ into startup msg
(define-obsolete-function-alias 'advertised-undo 'undo "23.2")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment