[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master 2aae063: User-friendly display of error messages at
From: |
Juri Linkov |
Subject: |
[Emacs-diffs] master 2aae063: User-friendly display of error messages at the end of minibuffer |
Date: |
Mon, 3 Jun 2019 16:27:25 -0400 (EDT) |
branch: master
commit 2aae063055283ee64ecf339c812a1fe6d1cb106e
Author: Juri Linkov <address@hidden>
Commit: Juri Linkov <address@hidden>
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)
---
etc/NEWS | 6 ++++++
lisp/simple.el | 22 ++++++++++++++++++++++
2 files changed, 28 insertions(+)
diff --git a/etc/NEWS b/etc/NEWS
index 975fab4..980f512 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -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'.
diff --git a/lisp/simple.el b/lisp/simple.el
index 4454791..6bc3bc5 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -2440,6 +2440,28 @@ 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")
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master 2aae063: User-friendly display of error messages at the end of minibuffer,
Juri Linkov <=