bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#21112: 25; Patch: show minibuffer messages with a face


From: Juri Linkov
Subject: bug#21112: 25; Patch: show minibuffer messages with a face
Date: Thu, 27 Jun 2019 00:30:33 +0300
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (x86_64-pc-linux-gnu)

>> But since a message is displayed at different part of the minibuffer,
>> it should be highlighted using a new separate customizable variable
>> similar to minibuffer-prompt-properties:
>
> 1. If you go that route, which lets libraries and
> users easily change the properties (good), please
> separate Isearch and `minibuffer-message'.  Use two
> different variables.  They are not the same species.
>
> The default value could be, but it need not be,
> the same for both.

OK, implemented in the following patch.

> On the other hand, it could be helpful to separate
> out property `face', defining an actual face (for
> each of Isearch and `minibuffer-message') that
> users can customize for this.  That also has the
> benefit that one can inherit from one to the other.
>
> The other properties would be applied first, so that
> if `face' is among them for some reason it will be
> overridden by the face provided specifically for this.

There are already too many faces in M-x list-faces-display
for users to comprehend that adding three more faces with
the same color would make matters worse.

> 2. The doc string of `minibuffer-message-properties'
> should not say that the properties are added to
> "minibuffer messages" - that's too broad.  It should
> say that they are added to the text shown by function
> `minibuffer-message' - or else describe that text,
> and only that text, in another way.

OK, fixed in the attached patch.

> The doc string of the similar variable for Isearch
> should say that the properties are added to "the
> search prompt" or some such.  Not sure whether the
> right description is "prompt", but whatever is the
> best way to describe it should be used in the doc
> string.

OK, added to this patch:

diff --git a/lisp/isearch.el b/lisp/isearch.el
index f150a3bba4..94c30eb57b 100644
--- a/lisp/isearch.el
+++ b/lisp/isearch.el
@@ -1992,13 +1992,17 @@ isearch-define-mode-toggle
   (setq isearch-regexp (not isearch-regexp))
   (if isearch-regexp (setq isearch-regexp-function nil)))
 
+(defvar isearch-message-properties minibuffer-prompt-properties
+  "Text properties that are added to the isearch prompt.")
+
 (defun isearch--momentary-message (string)
   "Print STRING at the end of the isearch prompt for 1 second"
   (let ((message-log-max nil))
     (message "%s%s%s"
              (isearch-message-prefix nil isearch-nonincremental)
              isearch-message
-             (propertize (format " [%s]" string) 'face 'minibuffer-prompt)))
+             (apply #'propertize (format " [%s]" string)
+                    isearch-message-properties)))
   (sit-for 1))
 
 (isearch-define-mode-toggle lax-whitespace " " nil
@@ -3202,18 +3206,18 @@ isearch-message-prefix
                        (concat " [" current-input-method-title "]: "))
                     ": ")
                   )))
-    (propertize (concat (isearch-lazy-count-format)
+    (apply #'propertize (concat (isearch-lazy-count-format)
                         (upcase (substring m 0 1)) (substring m 1))
-               'face 'minibuffer-prompt)))
+          isearch-message-properties)))
 
 (defun isearch-message-suffix (&optional c-q-hack)
-  (propertize (concat (if c-q-hack "^Q" "")
+  (apply #'propertize (concat (if c-q-hack "^Q" "")
                      (isearch-lazy-count-format 'suffix)
                      (if isearch-error
                          (concat " [" isearch-error "]")
                        "")
                      (or isearch-message-suffix-add ""))
-             'face 'minibuffer-prompt))
+        isearch-message-properties))
 
 (defun isearch-lazy-count-format (&optional suffix-p)
   "Format the current match number and the total number of matches.
diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el
index 57702760fb..9a473b6867 100644
--- a/lisp/minibuffer.el
+++ b/lisp/minibuffer.el
@@ -693,6 +693,9 @@ minibuffer
   :link '(custom-manual "(emacs)Minibuffer")
   :group 'environment)
 
+(defvar minibuffer-message-properties minibuffer-prompt-properties
+  "Text properties added to the text shown by `minibuffer-message'.")
+
 (defun minibuffer-message (message &rest args)
   "Temporarily display MESSAGE at the end of the minibuffer.
 The text is displayed for `minibuffer-message-timeout' seconds,

reply via email to

[Prev in Thread] Current Thread [Next in Thread]