all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Drew Adams <drew.adams@oracle.com>
To: Eli Zaretskii <eliz@gnu.org>, bruce.connor.am@gmail.com
Cc: juri@linkov.net, stephen@xemacs.org, emacs-devel@gnu.org,
	monnier@iro.umontreal.ca, kaushal.modi@gmail.com
Subject: RE: Displaying the state of isearch toggles [was Re: ASCII-folded search]
Date: Sun, 28 Jun 2015 10:02:02 -0700 (PDT)	[thread overview]
Message-ID: <ddcd0bf6-a60e-406b-a79d-088c13c2ac61@default> (raw)
In-Reply-To: <<831tgv7vbr.fsf@gnu.org>>

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

> > Here's a suggestion on how verbose toggles could be done,
> > following Kaushal's previous mention of multi-line echo areas.
> > It shows the state of all toggles on a line above the prompt. This
> > is given the usual `minibuffer-prompt' face and it stays fixed while
> > the user is typing/searching, so it's not a distraction.
> 
> An alternative idea is not to show _any_ toggles, and provide a
> separate key to display it if the user so wants.

1. I'm glad that we are thinking this over.  This, together with
   practical experience (e.g., using the new char folding feature),
   is exactly what will help us find a good UI for this.  Now is
   a good time for some blue-sky ideas, and with more experience
   we will get better ideas and code suggestions.

2. IMO, this is not only about "showing toggles".  It is about
   both (1) indicating the current search state attributes and
   (2) providing toggles for them.

   Examples of such attributes:

    . whether search is regexp or literal (or other, in future?)
    . which foldings are in effect (each is a separate attribute)
    . whether search has wrapped or overwrapped
    . whether search is multi-buffer (and maybe which buffer is next)

   We want to be able to show such things either (a) on demand or
   (b) directly-&-always.  And we want to give users a way to
   toggle each attribute individually (toggle if binary, cycle if
   multi-valued).

3. Another suggestion for this is to have the mode-line lighter
   do both of the following:

   a. Indicate a few of the aspects of the state directly.
      I gave the example of `Isearch' vs `ISEARCH' for case
      sensitivity.  Wrapping and overwrapping can be indicated
      using an overline and an overline and underline, respectively.
      (See attachments.)  Regexp search might be shown as `Rsearch'
      (and `RSEARCH') or as `Isearch*' (and `ISEARCH*').

      The point is to keep it fairly simple and clear, and not to
      try to make the lighter do too much - not to use char codes
      for each state attribute, for example.

   b. Rather than showing each of the current attributes of the
      search state explicitly and directly, and enabling them as
      toggle/cycle buttons, just present them in the lighter menu
      (together with their key bindings, of course).

      Currently, the lighter menu for Isearch is just this, which
      is not very useful (which BTW is capitalized inconsistently):
        * Turn Off minor mode
        * Help For minor mode
      It would be better to put it to good use, including showing
      all attributes of the current search state and provided
      toggles for them.

   I think this would show users at all times the most important
   aspects of the search state, and it would give them quick
   access to more info about the state as well as a way to change
   attributes individually.

   All of this is easy to implement, I believe.  If there is
   interest I can throw together a patch.  But it's better at
   this stage to discuss more, I think.  More and better ideas
   are surely still to come.

[-- Attachment #2: throw-isearch-case-insensitive.png --]
[-- Type: image/png, Size: 1846 bytes --]

[-- Attachment #3: throw-isearch-wrapped.png --]
[-- Type: image/png, Size: 1719 bytes --]

[-- Attachment #4: throw-isearch-overwrapped.png --]
[-- Type: image/png, Size: 1722 bytes --]

[-- Attachment #5: throw-isearch-case-sensitive.png --]
[-- Type: image/png, Size: 1691 bytes --]

       reply	other threads:[~2015-06-28 17:02 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <<CAAdUY-K3x4i+7wFvbEstvKVKuSZyM-DL4wB+Pe7ZbsHcVYXOfw@mail.gmail.com>
     [not found] ` <<831tgv7vbr.fsf@gnu.org>
2015-06-28 17:02   ` Drew Adams [this message]
2015-06-28 17:29     ` Displaying the state of isearch toggles [was Re: ASCII-folded search] Drew Adams
2015-06-29 22:03     ` Juri Linkov
2015-06-29 22:26       ` Drew Adams
2015-06-30 15:03         ` Eli Zaretskii
2015-06-30  2:43       ` Eli Zaretskii
2015-06-30  7:53         ` Oleh Krehel
     [not found]   ` <<ddcd0bf6-a60e-406b-a79d-088c13c2ac61@default>
     [not found]     ` <<87h9pq18ae.fsf@mail.linkov.net>
     [not found]       ` <<83a8vh5316.fsf@gnu.org>
2015-06-30  4:39         ` Drew Adams
2015-06-30  6:25           ` Artur Malabarba
2015-06-30 14:04             ` Drew Adams
2015-06-30 14:41               ` Artur Malabarba
2015-06-30 15:06           ` Eli Zaretskii
     [not found]         ` <<9da72b40-0236-4edd-983e-90c54ca7f827@default>
     [not found]           ` <<83616544o3.fsf@gnu.org>
2015-06-30 17:17             ` Drew Adams
     [not found]       ` <<d9b5bdf0-9a8f-48b8-b24f-1b7ead67220f@default>
     [not found]         ` <<837fql44s9.fsf@gnu.org>
2015-06-30 17:14           ` Drew Adams
2015-06-30 17:22             ` Eli Zaretskii
2015-06-28 10:47 Artur Malabarba
2015-06-28 14:37 ` Eli Zaretskii
2015-06-28 15:08   ` Kaushal

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=ddcd0bf6-a60e-406b-a79d-088c13c2ac61@default \
    --to=drew.adams@oracle.com \
    --cc=bruce.connor.am@gmail.com \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=juri@linkov.net \
    --cc=kaushal.modi@gmail.com \
    --cc=monnier@iro.umontreal.ca \
    --cc=stephen@xemacs.org \
    /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.