unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Prepend an indicator to the minibuffer prompt to show you can use completion
@ 2006-08-13 19:38 Drew Adams
       [not found] ` <2cd46e7f0608141023r3ecd44fdl48287a2aa3a33068@mail.gmail.com>
  0 siblings, 1 reply; 4+ messages in thread
From: Drew Adams @ 2006-08-13 19:38 UTC (permalink / raw)


Minor feature suggestion, for after the release:

Prepend a one-character indicator, with a face that stands out, to the
minibuffer prompt, whenever completion is possible.

I do this in my own code, and I think it helps orient users. It's not always
obvious, when a function reads input, whether completion is available. This
makes it obvious, at the minor cost of an additional character or two in the
prompt.

For example, in Emacs 20 and 21, when you use `i' in Info, completion is not
available; in Emacs 22, completion is available. There is nothing in the UI
that indicates whether completion is available - you either know it or you
don't, or you try hitting TAB to see if completion is possible. Users
already used to the older, non-completion behavior can miss out, until they
somehow become aware that completion is available for index lookup. If you
have an old habit, you might not think of trying TAB.

Knowing whether completion is available can change the way you interact with
Emacs. Not knowing it is available can mean that you miss out on a quick way
of inputting something.

I just add a space character to the beginning of the prompt, highlighting
it, whenever completion is available. I add another space with no
highlighting, to separate this indicator from the prompt per se.

(I also use Miles's minibuf-depth.el (or mbuf-depth.el), BTW, to indicate
recursive minibuffer depth, and the two indications play well together.)

An additional subtlety can help a little more: I prepend a different
character (`=') and highlight it in a different color, whenever completion
requires a match.

In sum:

* When must-match completing, `=' is prepended and highlighted one way.

* When completing otherwise, ` ' is prepended and highlighted another way.

* When not completing, nothing is prepended.

Users can turn off this feature, if they prefer, by just customizing the
prefix strings to "".

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Fwd: Prepend an indicator to the minibuffer prompt to show you can use completion
       [not found] ` <2cd46e7f0608141023r3ecd44fdl48287a2aa3a33068@mail.gmail.com>
@ 2006-08-14 17:24   ` Ken Manheimer
  2006-08-14 18:47     ` Prepend an indicator to the minibuffer prompt to show you canuse completion Drew Adams
  0 siblings, 1 reply; 4+ messages in thread
From: Ken Manheimer @ 2006-08-14 17:24 UTC (permalink / raw)


[whoops - sent a separate copy directly to drew, meant to cc the list.]

On 8/13/06, Drew Adams <drew.adams@oracle.com> wrote:
> Minor feature suggestion, for after the release:
>
> Prepend a one-character indicator, with a face that stands out, to the
> minibuffer prompt, whenever completion is possible.
> [...]
> Knowing whether completion is available can change the way you interact with
> Emacs. Not knowing it is available can mean that you miss out on a quick way
> of inputting something.

i like this idea.  i have a few modifications.

first, i would prefer to use a new indicator in the fringe, when the
fringe is present - seems like this would be a nice use of that real
estate, more suitable than precious minibuffer content space.  the new
cue would display with the fringe top-of-buffer signal, when people
use that, but that's generally redundant in the minibuffer, since it
always has a prompt on the first line, and usually contains one or
just a few lines.

second, you get many of the benefits you seek, and more, with
something like icomplete.  with icomplete, on the third character you
get a concise indication of the completion prospects, not just that
completion is available.  a fringe indicator would not conflict,
however, and would still be nice, though less necessary.

> An additional subtlety can help a little more: I prepend a different
> character (`=') and highlight it in a different color, whenever completion
> requires a match.

with icomplete you get different braces around the completion
prospects depending on whether the match is required or optional.

i think that having the option for an indicator in the fringe, whether
or not you use something like icomplete, would be good.

--
ken
ken.manheimer@gmail.com
http://myriadicity.net


-- 
ken
ken.manheimer@gmail.com
http://myriadicity.net

^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: Prepend an indicator to the minibuffer prompt to show you canuse completion
  2006-08-14 17:24   ` Fwd: " Ken Manheimer
@ 2006-08-14 18:47     ` Drew Adams
  2006-08-17 19:36       ` Kevin Rodgers
  0 siblings, 1 reply; 4+ messages in thread
From: Drew Adams @ 2006-08-14 18:47 UTC (permalink / raw)


[-- Attachment #1: Type: text/plain, Size: 2502 bytes --]

    first, i would prefer to use a new indicator in the fringe, when the
    fringe is present - seems like this would be a nice use of that real
    estate, more suitable than precious minibuffer content space.  the new
    cue would display with the fringe top-of-buffer signal, when people
    use that, but that's generally redundant in the minibuffer, since it
    always has a prompt on the first line, and usually contains one or
    just a few lines.

I and, I think, many others, turn fringe off. Hate it; don't need it.

I think one or two characters of minibuffer space is not too much to
sacrifice for this feature, and it would be optional, in any case.

    second, you get many of the benefits you seek, and more, with
    something like icomplete.  with icomplete, on the third character you
    get a concise indication of the completion prospects, not just that
    completion is available.  a fringe indicator would not conflict,
    however, and would still be nice, though less necessary.

I do use icomplete, but some people do not. Even though I use icomplete, I
find the indicator helpful.

    > An additional subtlety can help a little more: I prepend a different
    > character (`=') and highlight it in a different color,
    > whenever completion requires a match.

    with icomplete you get different braces around the completion
    prospects depending on whether the match is required or optional.

You get different delimiters (parens vs brackets) only when there is only a
single match. When there are multiple prospects, you get braces for both
must-match and open completion.

Also, icomplete doesn't tell you anything until you start typing. So, until
you've narrowed down the completion to a single candidate, you don't know
whether completion is must-match or open.

    i think that having the option for an indicator in the fringe, whether
    or not you use something like icomplete, would be good.

Me too.

BTW - Attached are two small screenshots showing what this is like
(must-match: `=' and open: ` ') - when completion is not available, there is
no indicator. The screenshots also show icomplete at work (actually, my
version of icomplete:
http://www.emacswiki.org/cgi-bin/wiki/IcompleteMode#IcompleteModePlus).

If you're interested in trying my implementation of the feature, the code is
here (yes, it's a lot to load, just to see this feature, but you can always
toss it afterward ;-)):
http://www.emacswiki.org/cgi-bin/wiki/Icicles_-_Libraries.



[-- Attachment #2: complete-indicator-must-match.jpg --]
[-- Type: image/jpeg, Size: 42992 bytes --]

[-- Attachment #3: complete-indicator-open.jpg --]
[-- Type: image/jpeg, Size: 35797 bytes --]

[-- Attachment #4: Type: text/plain, Size: 142 bytes --]

_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Prepend an indicator to the minibuffer prompt to show you canuse completion
  2006-08-14 18:47     ` Prepend an indicator to the minibuffer prompt to show you canuse completion Drew Adams
@ 2006-08-17 19:36       ` Kevin Rodgers
  0 siblings, 0 replies; 4+ messages in thread
From: Kevin Rodgers @ 2006-08-17 19:36 UTC (permalink / raw)


Drew Adams wrote:
>     first, i would prefer to use a new indicator in the fringe, when the
>     fringe is present - seems like this would be a nice use of that real
>     estate, more suitable than precious minibuffer content space.  the new
>     cue would display with the fringe top-of-buffer signal, when people
>     use that, but that's generally redundant in the minibuffer, since it
>     always has a prompt on the first line, and usually contains one or
>     just a few lines.
> 
> I and, I think, many others, turn fringe off. Hate it; don't need it.
> 
> I think one or two characters of minibuffer space is not too much to
> sacrifice for this feature, and it would be optional, in any case.

My preference is the same as Ken's, for a fringe indicator.  But if this
feature is only available by enlarging the minibuffer prompt, I wouldn't
use it.  How about tweaking the face used to display the prompt, e.g. 
its foreground color or font weight?

-- 
Kevin

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2006-08-17 19:36 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-08-13 19:38 Prepend an indicator to the minibuffer prompt to show you can use completion Drew Adams
     [not found] ` <2cd46e7f0608141023r3ecd44fdl48287a2aa3a33068@mail.gmail.com>
2006-08-14 17:24   ` Fwd: " Ken Manheimer
2006-08-14 18:47     ` Prepend an indicator to the minibuffer prompt to show you canuse completion Drew Adams
2006-08-17 19:36       ` Kevin Rodgers

Code repositories for project(s) associated with this public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).