all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: help-gnu-emacs@gnu.org
Subject: Re: etags to xref changed navigation
Date: Tue, 23 Apr 2024 20:15:45 +0300	[thread overview]
Message-ID: <86a5lk3sqm.fsf@gnu.org> (raw)
In-Reply-To: <87frvc6mhy.fsf@vps.thesusis.net> (message from Phillip Susi on Tue, 23 Apr 2024 13:02:17 -0400)

> From: Phillip Susi <phill@thesusis.net>
> Date: Tue, 23 Apr 2024 13:02:17 -0400
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > The old behavior is supposed to be necessary much less with xref,
> > since xref's search is more accurate, and usually finds only one
> > candidate.  So I'd be interested to know in what programming language
> > do you see many candidates, and why.
> 
> Typically there is only one *definition*, but many *referenecs*.

Now I'm confused: M-. and M-, were about finding *definitions*, not
references.  If you want to find references, you need to type M-?
instead.  So I wonder what am I missing here.

> > In addition, you haven't explained why you find the navigation in the
> > XREF buffer slow and cumbersome.  Basically, once you switch to the
> > XREF buffer, you can display next/previous candidate with a single
> > key, which is not more typing than "M-," (and there's the ability to
> > select a candidate that is not next or previous, something "M-,"
> > couldn't give you).  In addition, you can customize the variable
> > xref-auto-jump-to-first-definition to the value 'move' or 'show', in
> > which case the first candidate will be shown even if there are several
> > candidates.
> 
> I find the window splitting to be a bit annoying, and if I want to poke
> around each callsite a bit, I have to keep switching windows with C-o to
> move between exploring, and moving to the next callsite.

You don't need to switch windows if you don't like it.  Customize
xref-auto-jump-to-first-definition to the value t, and move between
candidate with "M-g M-n" and "M-g M-p".  This way, you never need to
go to the window showing the *xref* buffer.  (If you want that for
M-?, customize xref-auto-jump-to-first-xref instead.)

> > If you still want to have the old behavior back, you can rebind M-. to
> > find-tag and M-, to tags-loop-continue, which still exist, just
> > without the default key binding.
> 
> Do they still function the same, especially if you are using eglot?  I
> thought I checked and found that tags-loop-continue was obsolete/removed
> in emacs 29.

They work the same as they did before, and are obsolete, but not
removed.

They don't support Eglot, of course, since find-tag never did.  So if
you want to have Eglot support, I suggest the customization described
above, it should give you the same UX as the old bindings, albeit with
different keys and the *xref* window which will be popped up.



  reply	other threads:[~2024-04-23 17:15 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-22 15:11 etags to xref changed navigation Phillip Susi
2024-04-22 15:30 ` Eli Zaretskii
2024-04-22 16:00   ` Stefan Monnier via Users list for the GNU Emacs text editor
2024-04-22 19:19     ` Eli Zaretskii
2024-04-23  1:39       ` Stefan Monnier via Users list for the GNU Emacs text editor
2024-04-23 17:06         ` Phillip Susi
2024-04-23 18:29           ` Stefan Monnier
2024-04-23 18:41             ` Eli Zaretskii
2024-04-24  2:07               ` Stefan Monnier via Users list for the GNU Emacs text editor
2024-04-24  6:31                 ` Eli Zaretskii
2024-04-25  0:05             ` Dmitry Gutov
2024-04-25  3:34               ` Stefan Monnier
2024-04-25 21:30                 ` Dmitry Gutov
2024-04-23 17:02   ` Phillip Susi
2024-04-23 17:15     ` Eli Zaretskii [this message]
2024-04-22 17:48 ` Philip Kaludercic
2024-04-23 17:17   ` Phillip Susi
2024-04-23 19:33     ` Philip Kaludercic

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=86a5lk3sqm.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=help-gnu-emacs@gnu.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.