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>
Cc: juri@linkov.net, joaotavora@gmail.com, 44611@debbugs.gnu.org
Subject: bug#44611: Prefix arg for xref-goto-xref
Date: Fri, 25 Dec 2020 14:14:30 +0200	[thread overview]
Message-ID: <c0169786-7a72-6800-b1c1-57f196bfd628@yandex.ru> (raw)
In-Reply-To: <83h7oanxoi.fsf@gnu.org>

On 25.12.2020 09:37, Eli Zaretskii wrote:

>>> Why does project-find-regexp need to use Xref for displaying the hits?
>>> why not use Grep-like display we use in *grep* buffers?
>>
>> These days the default Xref buffer is pretty much Grep-like. Certainly
>> much closer to grep-mode than it had been in the first versions. That
>> old UI was a lot more completion-like in its behavior.
>>
>> This happened gradually, after we have addressed feedback from you and
>> other users, so that xref-find-references and project-find-regexp behave
>>    more in a fashion that you would expect from it. And those
>> expectations were surely informed by Grep and other built-in modes.
> 
> Then why do we need to have 2 separate modes?

Well, Grep (and similar major modes people wrote in third-part packages) 
do have a certain advantage: its execution is asynchronous, and the user 
sees the results as soon as they arrive, even during a search over a 
huge number of files. This can be implemented for xref, with certain 
changes in the API, and with some use of threads, but that's still a 
research problem.

Grep also has less computational overhead. I have spent quite some 
effort to reduce the gap, and xref works fine for me in that regard, but 
with the amount of user feedback I/we generally receive for improvements 
in core features (i.e. close to none) I can't be sure whether there are 
people who avoid 'M-x project-find-regexp' because Grep feels faster 
anyway.

> Are there any plans for
> replacing grep-mode with xref-mode in all the commands that use the
> former?

I think we'd need a more concerted effort for something like that, 
rather than just myself. To get such volunteers, making the current Grep 
users even more satisfied with the current state of 
xref--xref-buffer-mode is a good step, with much upside and really no 
downside (at least to a point where we'd have to compromise on the design).

I can outline a possible roadmap for improving xref, making its code 
structure and data more logical (which includes moving some of them 
out), but I don't think we'll throw out 'M-x grep' away anytime soon.

Changing the latter to use the xref UI (which will have to be renamed 
and become a separate package, BTW) is also likely to encounter much 
bigger resistance than anything we've done in this area before: people 
don't have the same expectations for new commands as they have for 
existing ones, so I'm surprised you asked this (given your overall 
backward compatibility stance, much stronger than mine). But we can try.

Up until now, we've been using xref mostly in places where there its 
programmatic interface is a strong advantage.

> Do we also want to replace compilation-mode with xref-mode?

That wouldn't work. It's possible to write a similar alternative for 
compilation-mode, but that would be a different project. It could reuse 
some ideas, though.

> If the plan is to make such replacements, that could be a good idea,
> and we can discuss the roadmap towards that goal.  Such a roadmap
> should include a transition plan that will help people migrate as
> painlessly as possible, including the key bindings and the somewhat
> different looks.

It's a big change, one I'm not at all confident we could manage before 
Emacs 28 is released.

Do you really want this to happen, though? I never got the impression 
that you enjoy using xref.

> And perhaps _then_ we will have a good enough reason
> we don't have now to rebind xref-mode's TAB in Emacs 28.

Let me get back to that in another subthread.





  reply	other threads:[~2020-12-25 12:14 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
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 [this message]
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=c0169786-7a72-6800-b1c1-57f196bfd628@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).