Subject: bug#43308: 28.0.50; Improvements to Edit->Search menu

From: Eli Zaretskii <[email-masked]>
Date: Thu, 10 Sep 2020 17:59:12 +0300

> From: Ihor Radchenko <[email-masked]>
> Date: Thu, 10 Sep 2020 22:18:51 +0800
> 
> The following menus seems to be more confusing than helpful:
> - Edit->Search menu->String Forward
> - Edit->Search menu->String Backwards
> - Edit->Search menu->Regexp Forward
> - Edit->Search menu->Regexp Backwards
> - Edit->Search menu->Repeat Forward
> - Edit->Search menu->Repeat Backwards

I disagree.  Many applications have only the non-incremental search
commands, so removing them will leave the user who are used to those
with the incremental variant, which might be confusing for people who
have no experience with comparable commands.

> In most of other applications, the search functionality is squeezed into
> single search dialogue, providing searching forward, backwards, and
> repeating search together (via next/prev buttons).
> Current Emacs menu forces the user to click Edit->Search menu->...
> multiple times to repeat the search. That is not a pleasant experience.

If you are suggesting a "repeat last search" menu item, it could be a
useful idea.  But removing those items because we don't have a simple
repeat item is a step in the wrong direction, IMO.

> Also, the functionality of the above menu items seems to be strictly
> inferior in comparison with isearch items from Edit->Search->Incremental
> search sub-menu.

See above: it is there for those who are not familiar enough with the
incremental variants.

Please don't forget that the menu bar targets mainly newcomers, so
judging it from the POV of a veteran Emacs user might yield incorrect
conclusions.

> I would also add that we can show transient next match/previous match
> toolbar icons to assist users, unfamiliar with key bindings.

Please show the code.  Please also keep in mind that changes on the
tool bar require redrawing of the tool bar, which could cause
unpleasant flickering.  We need to consider this potential downside.

> Also, the article suggests to rename "Forward/Backward String..." into
> "Search Forward/Backwards...", which sounds reasonable since
> non-programmer users may be confused by the meaning of word "String".

The "Search" part is in the parent menu item, so repeating it would be
a waste of space, which is at premium here.

If people agree that removing "String" will help, maybe we could do
that.  But please note that "String" contrasts with "Regexp" in the
next items; if we remove it, won't that be less clear?

> Finally, find "Search tagged files..." and the following "Repeat" menu
> confusing. What does "tagged files" mean?

Feel free to suggest a better name for the item and/or a better help
string.

> I tried to click it, got a prompt about regex, then prompt about tag
> table (what is it?). Finally, I got error "File ~/TAGS does not
> exist". This made me recall vague memory about Emacs manual talking
> about some kind of completion feature for large code projects -
> something I never used.

Did you try "C-h k" before selecting that?  This would display the
documentation of that command.  It's a canonical way of learning about
menu items that don't explain themselves enough at first reading.  (Of
course if we can make them more self-explanatory, it's better.)

> 1. Menu items do not show the key binding (is in Incremental search
>    menu). I think that showing bindings is generally a great idea for
>    discoverability

If there's no key binding shown in the menu, it means the command
invoked by the menu item doesn't have a key.  When there's a key
binding, the machinery that displays the menu adds them automatically.

> 2. There is currently no way to understand what some unfamiliar menus do
>    except blindly trying.

See above: "C-h k" is the way to understand that.

Thanks.