unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Dmitry Gutov <dgutov@yandex.ru>
To: Eli Zaretskii <eliz@gnu.org>, Juri Linkov <juri@linkov.net>
Cc: joaotavora@gmail.com, 44611@debbugs.gnu.org
Subject: bug#44611: Prefix arg for xref-goto-xref
Date: Fri, 25 Dec 2020 17:24:20 +0200	[thread overview]
Message-ID: <e02fe5d5-5635-6190-f173-c65ff254844f@yandex.ru> (raw)
In-Reply-To: <83a6u2nm8o.fsf@gnu.org>

On 25.12.2020 13:44, Eli Zaretskii wrote:

>> Big corporations don't afraid making much more fundamental changes
>> that affect billions of users.  For example, on smartphone OS
>> they can do such a change that on the Task list the same gesture
>> will remove the wrong task than on older versions.  Also major sites
>> with billions of users often change their UI completely without hesitation.
>>
>> So I don't understand such extreme precautions.
> 
> Do you think that what "big corporations" do is okay?  If you do, then
> I understand why you consider it OK for us to do something similar.
> But if you don't, then why do you suggest that we follow bad examples?

There are different pieces of software coming from "big corporations", 
and there.

All I know that, say, authors of editors like VS Code, Sublime, etc, are 
not afraid to change things from time to time, if their search says it 
results in a better experience. And I haven't seen many user complaints 
about that.

OTOH, it might very well be a part of their recipe for success.

> I don't think frequent changes in the UI and the defaults are a Good
> Thing.  Each time I upgrade some software which comes from those big
> corporations, I have to waste some significant time to get many of my
> previous defaults back, disable or reconfigure annoying new features
> etc.  Moreover, no matter how conservative we are in Emacs with
> breaking backward compatibility, we are still being occasionally
> accused of not being conservative enough.  So evidently, veteran users
> don't like such changes to happen too frequently.  Looking at NEWS for
> past releases, I conclude that we indeed didn't make such changes.

We are accused either way: we're both not conservative enough on one 
side, and too conservative on the other. Which judgment to give 
preference to, is basically a personal choice at this point. Or a 
strategic one.

It's an old disagreement, but I think it should be fairly obvious that 
if we fear to cause discomfort to even one veteran user, we won't be 
able to achieve much progress.

And it's not like the question here it to change a lot or bindings, or a 
significant/popular one.

>> Unlike the above examples,
>> in Emacs everything is configurable, so you can easily add to the init file:
>>
>>    (define-key xref--xref-buffer-mode-map (kbd "TAB") #'xref-quit-and-goto-xref)
> 
> This works both ways: if you want TAB to do something other than its
> default, you can rebind it for you, right?

It is a question of which is a better/more consistent behavior.

>>> And why C-j?  That's LFD, a key more suitable for acting on something
>>> at point, not quitting the buffer.
>>
>> The initial xref UI was closer to completion UI, so C-j makes it consistent
>> with icomplete mode for users who still perceive xref as completion UI.
> 
> That contradicts what Dmitry said: that the current Xref UI moves away
> of the completion UI, and towards compilation-mode and grep-mode.

Just like that TAB binding was a bit alien to the state of the Xref UI 
as it was 4 years ago, that binding will probably be as well.

But you can also interpret it like "complete the current action". 
Icomplete has that binding, but lisp-interaction-mode has 
eval-print-last-sexp, which is vaguely relevant too.

It's not a perfect parallel, but I think 'C-j' is better for this 
purpose than TAB, and also better than 'q' or 'b'.

On the subject of grep-mode, it could have a similar command introduced 
too, for situations when you only needed to find one occurrence, to jump 
to it and quit the window.

> There, deleting the window with C-j will look odd, I think.
> 
>>> Why not 'q' (for "quit") or 'b' (for "bury")?
>>
>> 'xref-quit-and-goto-xref' also jumps to xref, not only quits,
>> but 'q' and 'b' should only quit.
> 
> That's not a catastrophe, but if you want, we could use "C-c C-c"
> instead, as that is used in some other modes for similar effect.

'C-c C-c' usually acts on the whole buffer contents and does not depend 
on point, I think.

It might also conflict with the potential "inline editing" feature 
if/when we get that into Xref. Though it could use 'C-x C-s', *shrug*.

To be clear, I'm not wedded to 'C-j', and open to other options. We 
could even make xref-quit-and-goto-xref unbound, except in 
xref--transient-buffer-mode-map. Which is the most "completion-like" 
version of Xref UI we currently have anyway.





  reply	other threads:[~2020-12-25 15:24 UTC|newest]

Thread overview: 83+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-13  8:18 bug#44611: Prefix arg for xref-goto-xref Juri Linkov
2020-11-13 11:20 ` Dmitry Gutov
2020-11-14 20:36   ` Juri Linkov
2020-11-15  1:05     ` Dmitry Gutov
2020-11-15 19:51       ` Juri Linkov
2020-11-15 22:25         ` Dmitry Gutov
2020-11-15 22:52           ` Drew Adams
2020-11-15 23:11             ` João Távora
2020-12-19 20:38           ` Juri Linkov
2020-12-19 21:41             ` Dmitry Gutov
2020-12-19 22:36               ` João Távora
2020-12-19 23:59                 ` Dmitry Gutov
2020-12-20 20:32                   ` João Távora
2020-12-20 20:45                     ` Dmitry Gutov
2020-12-22  0:52                       ` João Távora
2020-12-20  3:26             ` Eli Zaretskii
2020-12-20  8:39               ` Juri Linkov
2020-12-20 15:43                 ` Eli Zaretskii
2020-12-20 16:10                   ` Dmitry Gutov
2020-12-22  8:58                   ` Juri Linkov
2020-12-22 12:20                     ` Dmitry Gutov
2020-12-22 15:53                     ` Eli Zaretskii
2020-12-22 21:20                       ` Juri Linkov
2020-12-23 15:08                         ` Eli Zaretskii
2020-12-23 16:20                           ` Dmitry Gutov
2020-12-23 16:46                             ` Eli Zaretskii
2020-12-23 18:45                               ` Dmitry Gutov
2020-12-23 19:23                                 ` Eli Zaretskii
2020-12-23 19:56                                   ` Dmitry Gutov
2020-12-23 20:30                                     ` Eli Zaretskii
2020-12-23 21:24                                       ` Dmitry Gutov
2020-12-24 17:44                                         ` Eli Zaretskii
2020-12-24 20:19                                           ` Juri Linkov
2020-12-24 20:44                                             ` Eli Zaretskii
2020-12-25  9:20                                               ` Juri Linkov
2020-12-25 11:44                                                 ` Eli Zaretskii
2020-12-25 15:24                                                   ` Dmitry Gutov [this message]
2020-12-27 16:22                                                     ` Juri Linkov
2020-12-27 17:16                                                       ` martin rudalics
2020-12-27 18:53                                                       ` Dmitry Gutov
2020-12-28 17:24                                                         ` Juri Linkov
2021-01-18  1:17                                                           ` Dmitry Gutov
2021-01-19 17:56                                                             ` Juri Linkov
2021-01-19 19:38                                                               ` Dmitry Gutov
2021-02-01 17:16                                                                 ` Juri Linkov
2021-03-16 18:15                                                                   ` Juri Linkov
2021-03-17  8:45                                                                     ` martin rudalics
     [not found]                                                                   ` <87sg4vgef6.fsf@mail.linkov.net>
2021-03-16 23:38                                                                     ` Dmitry Gutov
2021-03-17 17:23                                                                       ` Juri Linkov
2021-03-17 21:48                                                                         ` Dmitry Gutov
2020-12-27 16:20                                                   ` Juri Linkov
2020-12-27 18:21                                                     ` Eli Zaretskii
2020-12-28  0:54                                                       ` Dmitry Gutov
2020-12-28  9:16                                                       ` Juri Linkov
2021-04-22 15:18                                                       ` Dmitry Gutov
     [not found]                                                       ` <1fa6bd28-0524-011e-86c2-60c8faab51f8@yandex.ru>
2021-04-22 17:03                                                         ` Eli Zaretskii
2021-04-22 17:44                                                           ` Dmitry Gutov
2021-04-22 17:47                                                             ` Eli Zaretskii
2021-04-22 17:56                                                               ` Dmitry Gutov
2020-12-25 16:01                                           ` Dmitry Gutov
2021-04-23 10:41                                           ` Dmitry Gutov
2021-04-23 10:53                                             ` Eli Zaretskii
2021-04-24  9:56                                               ` Eli Zaretskii
2021-04-24 10:01                                                 ` Dmitry Gutov
2020-12-23 21:10                               ` Juri Linkov
2020-12-24  3:36                                 ` Eli Zaretskii
2020-12-24 21:38                                   ` Dmitry Gutov
2020-12-25  7:37                                     ` Eli Zaretskii
2020-12-25 12:14                                       ` Dmitry Gutov
2020-12-25 13:32                                         ` Eli Zaretskii
2020-12-25 14:49                                           ` Dmitry Gutov
2020-12-25 15:42                                             ` Eli Zaretskii
2020-12-28  0:36                                               ` Dmitry Gutov
2020-12-22  9:24                   ` João Távora
2020-12-11  9:30       ` Juri Linkov
2020-12-11 11:19         ` Dmitry Gutov
2020-12-11 12:08         ` Eli Zaretskii
2020-12-12 20:39           ` Juri Linkov
2020-12-13 15:10             ` Eli Zaretskii
2020-12-13 20:20               ` Juri Linkov
2020-12-13 20:50                 ` João Távora
2020-12-14 16:16                 ` Eli Zaretskii
2020-12-14 16:34                   ` Dmitry Gutov

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

  List information: https://www.gnu.org/software/emacs/

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

  git send-email \
    --in-reply-to=e02fe5d5-5635-6190-f173-c65ff254844f@yandex.ru \
    --to=dgutov@yandex.ru \
    --cc=44611@debbugs.gnu.org \
    --cc=eliz@gnu.org \
    --cc=joaotavora@gmail.com \
    --cc=juri@linkov.net \
    /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 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).