Subject: bug#28814: [BUMP, PATCH] (26.0.90; When *xref* window is needed, original window-switching intent is lost )

From: [email-masked] (João Távora)
Date: Wed, 25 Oct 2017 16:35:10 +0100

Dmitry Gutov <[email-masked]> writes:

> On 10/25/17 4:29 PM, João Távora wrote:

> But the window configuration changes that happen while the user
> selects the destination in the xref buffer, can't be undone with
> 'quit', with out without your patches.

You’re right, my patches they keep the window configuration for some
definition of "keep" :-).  However, a much more correct definition of
"keep" than the one we have now.

>> If that UI can be improved, it certainly should. (I have some very old
>> ideas about a single window dedicated frame for help windows that could
>> be discussed and developed). But whatever is done it should be done to
>> Emacs as a whole, to preserve consistency.
>
> If you're talking about window management in general, that seems
> orthogonal to me.

As it should be.  But if we give xref.el a special interface it ceases
to be :-)

> Let's wait for Eli's opinion.

It seems Eli’s OK with the current behaviour minus the C-u RET.

> The binding I have in mind is in dired-mode. There, 'a' replaces the
> current buffer with another.
>
> I don't recall any other 'a' bindings, off the top of my head.

Then perhaps ’a’ can be xref-quit-and-goto-xref if you’re not opposed to
that.

> SPC is not bound by default. And you'll probably use 'n' in
> xref-find-definitions output as well.

You’re right. SPC should be bound to xref-show-xref though, if we are
honour the SLIME ancestry.

>> When I find the one
>> I want to edit, I press "RET". I’m a big boy, I can find the *xref*
>> buffer again :-)
>
> Would you prefer similar behavior in *Grep* buffers as well? If you
> still use those.

Meh... Maybe. I don’t know. I would prefer to always use XREF and
project-find-regexp (that I just learned about, thanks!), if only that
could be enhanced to the much much faster ‘git grep’ in Git projects.
Perhaps we could work on that as a separate modification.