all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Drew Adams" <drew.adams@oracle.com>
To: "Juanma Barranquero" <lekktu@gmail.com>
Cc: emacs-devel@gnu.org
Subject: RE: feature request: indicator of minibuffer-recursion depth
Date: Fri, 15 Jun 2007 22:40:09 -0700	[thread overview]
Message-ID: <EIENLHALHGIMHGDOLMIMKEJCDCAA.drew.adams@oracle.com> (raw)
In-Reply-To: <f7ccd24b0706151830g5eac0874u490d78f02f93b887@mail.gmail.com>

> Because this is a tiny feature that I think most users won't
> customize, and that doesn't merit (IMHO, etc.) one defcustom, let
> alone two...

"Most users" misses the mark. It is a self-fulfilling prophecy - if you make it difficult for most users to change this, they won't. Most users will limit their changes to whatever you have facilitated changing. If you require a password that only you know, for instance, then "most users" is limited to (at most) you.

Regardless of the calculation of "most users", you think wrong for at least one user - me. The first thing I did after getting Miles's code was to add a defface and a defcustom to it. Here's my mb-depth+.el, which at least some other users have also been using since last November:

(require 'mb-depth nil t)

(defface mb-depth-indicator '((t (:inherit default)))
  "Face used to indicate minibuffer depth."
  :group 'convenience :group 'faces)

(defcustom mb-depth-indicator-format "%d) "
  "*Format string for minibuffer depth indicator."
  :type 'string :group 'convenience)

;; REPLACE original defined in `mb-depth.el'.
;; Uses customizable format string and face.
(defun minibuf-depth-setup-minibuffer ()
  "Set up a minibuffer for `minibuffer-indicate-depth-mode'.
The prompt should already have been inserted."
  (when (> (minibuffer-depth) 1)
    (setq minibuf-depth-overlay
          (make-overlay (point-min) (1+ (point-min))))
    (overlay-put minibuf-depth-overlay 'before-string
		 (propertize
              (format mb-depth-indicator-format
                     (minibuffer-depth))
              'face 'mb-depth-indicator))
    (overlay-put minibuf-depth-overlay 'evaporate t)))

(provide 'mb-depth+)

Call me silly. Call me interested in "tiny features" that "most users" don't care about. I call someone who thinks that most users don't care about things like this naive - or uninterested in most users. 

Have you seen the use of cell-phone customizing gadgets in, say, Seoul or Bangkok?  Think users don't care much about personalizing the appearance of the things they use? Think again. One might even argue that that's all we _do_ care about. Look at the interest in Emacs color themes or Windows desktop customizing fluff. One fish, two fish, red fish, blue fish.

It's not all silly. But people are passionate even about preferences that others think of as perfectly silly. (Did I mention religious preferences? Oops...)

> And more to the point, you're arbitrarily supposing that changing the
> text (the "[%s]") and the face is all the user would want to
> customize. 

Arbitrarily? No. Judiciously.  Only? No. Typically. Facilitating changing what users typically have preferences about - when you give them the chance. 

I'd be willing to bet that some users will want to change the text, others will want to change the face, and others both. But you won't see any sign of such preferences as long as you make it hard for them to do that.

["Since we've taken a tough stance and stopped listening to them, we haven't heard anything from them." - French government wrt independentists in New Caledonia in the 90s]

> If you want to be *really* general, allow a function, so I can do
> (setq minibuffer-depth-indicator
>       #'(lambda (level)
>           (concat (make-string level ?*) " ")))

That's no more general than doing nothing - you might as well just provide the original source code, to "be *really* general". Arbitrary generality is not the aim, in any case. Ease of use for the target user audience is the aim. This tiny feature is just a user convenience. And, for me, that target audience is not just Lispers.

This is only a "tiny feature", yes, but it is big enough to bring out differences in point of view wrt what you and I think about the appearance and what we think about how much users might care about the appearance. Imagine how much more difference in point of view there must be in the wider user population! This tiny feature is a good litmus test in user friendliness, IMO.

You proposed:
(defvar minibuffer-depth-indicator 
        (propertize "[%d]" 'face 'highlight)

I replied "Sure, something like that would be OK." So I'm not hostile to your effort.

But I pointed out that having a defvar for that is not very useful - it's about the same amount of difficulty (and requires as much Lisp knowledge) to change the appearance using this variable as it would be to change the source code itself - you've simply extracted a piece of code into an internal variable.

Just replacing defvar with defcustom wouldn't help much either, because non-Lispers still wouldn't have a clue how to change the appearance. Just think about how much Lisp you need to know to understand (propertize "[%d]" 'face 'highlight). Seriously - think about it.

And this is something that is _not_ inherently difficult to change. This is a _trivial_ change for users, provided you don't make it unnecessarily hard to change - for most users. Losers indeed.

  reply	other threads:[~2007-06-16  5:40 UTC|newest]

Thread overview: 73+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-03-14 17:57 feature request: indicator of minibuffer-recursion depth Drew Adams
2006-03-14 18:13 ` Masatake YAMATO
2006-03-14 18:19   ` Drew Adams
2006-03-14 21:59     ` David Kastrup
2006-03-15  9:28       ` Miles Bader
2006-03-15  9:38         ` David Kastrup
2006-03-15 10:15           ` Miles Bader
2006-03-16  2:46             ` Miles Bader
2006-03-16 16:51               ` Drew Adams
2006-03-17  2:29                 ` Miles Bader
2006-03-16 18:44               ` Edward O'Connor
2006-03-16 21:35               ` Kim F. Storm
2006-03-16 23:16                 ` Drew Adams
2006-03-16 23:39                   ` Kim F. Storm
2006-03-16 23:56                     ` Drew Adams
2006-03-17  2:37                 ` Miles Bader
2006-03-18  8:44                 ` Richard Stallman
2006-03-20  2:39                   ` Miles Bader
2006-03-21  1:01                     ` Richard Stallman
2007-06-06 11:29                     ` Juanma Barranquero
2007-06-15 14:37                       ` Kim F. Storm
2007-06-15 15:52                         ` Juanma Barranquero
2007-06-15 16:27                           ` Juri Linkov
2007-06-15 17:41                             ` Juanma Barranquero
2007-06-15 18:39                               ` Stefan Monnier
2007-06-15 18:48                                 ` Juanma Barranquero
2007-06-16 17:08                                 ` Andreas Röhler
2007-06-15 19:41                             ` Drew Adams
2007-06-15 19:47                               ` Juanma Barranquero
2007-06-15 20:42                                 ` Drew Adams
2007-06-15 23:20                                   ` Juanma Barranquero
2007-06-16  1:17                                     ` Drew Adams
2007-06-16  1:30                                       ` Juanma Barranquero
2007-06-16  5:40                                         ` Drew Adams [this message]
2007-06-16 11:32                                           ` Juanma Barranquero
2007-06-16 12:47                                             ` Juri Linkov
2007-06-16 14:36                                             ` Drew Adams
2007-06-15 22:45                             ` Richard Stallman
2007-06-15 23:10                               ` Juri Linkov
2007-06-15 23:19                                 ` Juanma Barranquero
2007-06-15 23:34                                   ` Juri Linkov
2007-06-15 23:47                                     ` Juanma Barranquero
2007-06-15 23:57                                       ` Juri Linkov
2007-06-16  0:24                                         ` Juanma Barranquero
2007-06-16 18:50                                 ` Richard Stallman
2006-07-15 23:41                 ` Drew Adams
2006-07-17  1:41                   ` Richard Stallman
2006-07-17  8:33                     ` Kim F. Storm
2006-07-17 10:01                       ` Mathias Dahl
2006-11-19  1:25                       ` Drew Adams
2006-11-19  1:52                         ` Juanma Barranquero
2006-11-19 15:48                           ` Drew Adams
2006-11-19 16:19                             ` Juanma Barranquero
2006-11-19 20:19                               ` Drew Adams
2006-11-19 22:02                                 ` Juanma Barranquero
2006-11-20  2:22                                   ` Drew Adams
2006-08-05 22:04                   ` Drew Adams
2006-03-15  9:44         ` David Kastrup
2006-03-16 10:32           ` Richard Stallman
2006-03-15 15:59         ` Drew Adams
2006-03-15 18:30           ` Stefan Monnier
2006-03-15 19:18         ` David Reitter
2006-03-15 19:52           ` Drew Adams
2006-03-17 16:32           ` Richard Stallman
2006-03-17 17:17             ` David Kastrup
2006-03-17 22:02               ` Kim F. Storm
2006-03-18 18:29               ` Richard Stallman
2006-03-17 18:06             ` Drew Adams
2006-03-18 18:30               ` Richard Stallman
2006-03-15 15:59       ` Drew Adams
2006-03-15 16:19     ` Stefan Monnier
2006-03-15 17:01       ` Drew Adams
2006-03-15 20:20 ` Richard Stallman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=EIENLHALHGIMHGDOLMIMKEJCDCAA.drew.adams@oracle.com \
    --to=drew.adams@oracle.com \
    --cc=emacs-devel@gnu.org \
    --cc=lekktu@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.