all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Dmitry Gutov <dgutov@yandex.ru>
Cc: rudalics@gmx.at, eller.helmut@gmail.com, emacs-devel@gnu.org
Subject: Re: xref and displaying locations in appropriate window or frame
Date: Sun, 24 Jan 2016 17:43:42 +0200	[thread overview]
Message-ID: <837fiz3rv5.fsf@gnu.org> (raw)
In-Reply-To: <56A434A9.6040404@yandex.ru> (message from Dmitry Gutov on Sun, 24 Jan 2016 05:19:21 +0300)

> Cc: emacs-devel@gnu.org, martin rudalics <rudalics@gmx.at>,
>  Helmut Eller <eller.helmut@gmail.com>
> From: Dmitry Gutov <dgutov@yandex.ru>
> Date: Sun, 24 Jan 2016 05:19:21 +0300
> 
> xref-find-definitions has a family of commands (namely -other-window and 
> -other-frame) which promise to display the location somewhere else than 
> the current window.

But AFAICS they only do that if there's a single candidate for the
definition, i.e. if the *xref* buffer is not displayed at all.  Which
confused the heck out of me the first time I tried "C-x 5 .", btw.

> If we're allowed to quit the *xref* buffer before jumping to the "final 
> destination", we can nominally satisfy the contract by using 
> switch-to-buffer or pop-to-buffer (maybe with pop-up-frames bound to t) 
> after that. The *xref* buffer and its window are out of the picture by 
> that point.
> 
> However, now we have the *xref* buffer back in the picture. I think that 
> means we have to satisfy the this-window/other-window/other-frame 
> contract while *xref* is displayed.

Yes, I think so.  It will also fix the above confusion, IMO.

> - xref-find-definitions-other-frame seems easiest: just bind 
> pop-up-frames to t and call pop-to-buffer like before.

Right.

> - xref-find-definitions promises to show the destination buffer in the 
> current window. What will RET in *xref* do? Show the buffers in the 
> window xref-find-definitions was called from?

Yes, I think so.

> That seems to make the most sense, but it will obscure the original
> code. Maybe we'd want to consult it while picking the exact option
> among the suggested definitions?

I don't think I understand you here.  By "obscure the original code"
do you mean the code will be harder to read?  Or do you mean something
else?

And what do you mean by "consult" -- consult what?

> - xref-find-definitions-other-window should, apparently, pick some 
> window which isn't the original one, nor the one which displays the 
> *xref* buffer. Or create a new one, in a pop-to-buffer fashion.

Probably, yes.

> Is there a function in window.el I can reuse, and/or display-buffer
> alist argument that would make it ignore whole two buffers, and not
> just the currently selected one?

I hope Martin will help you out here.

> Alternatively, we *do* treat xref-find-definitions differently, and 
> don't keep the *xref* buffer visible after the user made their choice. 
> But if the *xref* buffer looks the same as in other cases, it would be 
> confusing. So ideally, we'd have a different choice-picking mechanism in 
> this case (not *xref* buffer like it works and looks right now), but I 
> really don't know where to start writing it (and don't want to do it now).

I think we should try the former route first, it sounds simpler.

> Yet alternatively, as soon as we find out that there are several 
> definitions of the given function, we abandon all that 
> other-window/other-frame business, and simply make RET always behave the 
> same in *xref*. That seems like a cop-out.

I think this should change, it's a confusing inconsistency if the user
asked for another window/frame.

Thanks.



  parent reply	other threads:[~2016-01-24 15:43 UTC|newest]

Thread overview: 113+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-09 19:36 tags-loop-continue Eli Zaretskii
2016-01-09 19:59 ` tags-loop-continue Ingo Lohmar
2016-01-09 20:22 ` tags-loop-continue Dmitry Gutov
2016-01-09 20:42   ` tags-loop-continue Eli Zaretskii
2016-01-09 20:49     ` tags-loop-continue Dmitry Gutov
2016-01-09 20:52       ` tags-loop-continue Dmitry Gutov
2016-01-09 21:19       ` tags-loop-continue Dmitry Gutov
2016-01-10  3:45         ` tags-loop-continue Eli Zaretskii
2016-01-10  4:00           ` tags-loop-continue Dmitry Gutov
2016-01-10  6:29             ` tags-loop-continue Drew Adams
2016-01-10 14:35               ` tags-loop-continue Dmitry Gutov
2016-01-10 15:26                 ` tags-loop-continue Ingo Lohmar
2016-01-10 16:09                   ` tags-loop-continue Eli Zaretskii
2016-01-10 16:08                 ` tags-loop-continue Eli Zaretskii
2016-01-10 16:18                   ` tags-loop-continue Dmitry Gutov
2016-01-10 17:53                 ` tags-loop-continue Drew Adams
2016-01-10 18:12                   ` tags-loop-continue Dmitry Gutov
2016-01-11  7:21                     ` tags-loop-continue Eric Abrahamsen
2016-01-10 15:54             ` tags-loop-continue Eli Zaretskii
2016-01-10 16:14               ` tags-loop-continue Dmitry Gutov
2016-01-10 17:08                 ` tags-loop-continue Eli Zaretskii
2016-01-10 18:19                   ` tags-loop-continue Dmitry Gutov
2016-01-10 19:01                     ` tags-loop-continue Eli Zaretskii
2016-01-14  0:41                   ` tags-loop-continue Dmitry Gutov
2016-01-14 16:00                     ` tags-loop-continue Eli Zaretskii
2016-01-14 16:07                       ` tags-loop-continue Dmitry Gutov
2016-01-14 17:17                         ` tags-loop-continue Eli Zaretskii
2016-01-14 17:26                           ` tags-loop-continue Dmitry Gutov
2016-01-14 17:39                             ` tags-loop-continue Dmitry Gutov
2016-01-14 18:36                               ` tags-loop-continue Eli Zaretskii
2016-01-14 18:46                                 ` tags-loop-continue Dmitry Gutov
2016-01-14 18:31                             ` tags-loop-continue Eli Zaretskii
2016-01-14 18:44                               ` tags-loop-continue Dmitry Gutov
2016-01-14 19:02                                 ` tags-loop-continue Eli Zaretskii
2016-01-14 19:15                                   ` tags-loop-continue Dmitry Gutov
2016-01-14 19:18                                     ` tags-loop-continue Dmitry Gutov
2016-01-14 19:41                                     ` tags-loop-continue Eli Zaretskii
2016-01-14 20:09                                       ` tags-loop-continue Dmitry Gutov
2016-01-14 20:21                                         ` tags-loop-continue Eli Zaretskii
2016-01-18 19:19                                           ` tags-loop-continue Dmitry Gutov
2016-01-20 11:19                                             ` tags-loop-continue Eli Zaretskii
2016-01-21  4:59                                               ` tags-loop-continue Dmitry Gutov
2016-01-21 17:02                                                 ` tags-loop-continue Eli Zaretskii
2016-01-21 17:12                                                   ` tags-loop-continue Dmitry Gutov
2016-01-21 17:47                                                     ` tags-loop-continue Eli Zaretskii
2016-01-21 18:58                                                       ` tags-loop-continue Dmitry Gutov
2016-01-21 19:02                                                         ` tags-loop-continue Eli Zaretskii
2016-01-21 19:11                                                           ` tags-loop-continue Dmitry Gutov
2016-01-21 19:56                                                             ` tags-loop-continue Eli Zaretskii
2016-01-21 20:15                                                               ` tags-loop-continue Dmitry Gutov
2016-01-21 20:36                                                                 ` tags-loop-continue Eli Zaretskii
2016-01-21 21:17                                                                   ` tags-loop-continue Dmitry Gutov
2016-01-21 21:26                                                                     ` tags-loop-continue Dmitry Gutov
2016-01-22  6:59                                                                       ` tags-loop-continue Eli Zaretskii
2016-01-22 10:13                                                                         ` tags-loop-continue Dmitry Gutov
2016-01-22 14:08                                                                           ` tags-loop-continue Eli Zaretskii
2016-01-22 17:51                                                                             ` tags-loop-continue John Wiegley
2016-01-22 18:35                                                                               ` tags-loop-continue Dmitry Gutov
2016-01-24  1:26                                                                             ` next-error-function integration in xref removed Dmitry Gutov
2016-01-26 17:34                                                                               ` John Wiegley
2016-01-22  1:54                                                                   ` tags-loop-continue John Wiegley
2016-01-22  2:00                                                                     ` tags-loop-continue Dmitry Gutov
2016-01-22  5:34                                                                       ` tags-loop-continue John Wiegley
2016-01-21  5:15                                               ` tags-loop-continue Dmitry Gutov
2016-01-21 17:07                                                 ` tags-loop-continue Eli Zaretskii
2016-01-24  2:19                                                   ` xref and displaying locations in appropriate window or frame Dmitry Gutov
2016-01-24 10:55                                                     ` martin rudalics
2016-01-24 13:02                                                       ` Dmitry Gutov
2016-01-24 14:38                                                         ` martin rudalics
2016-01-24 14:53                                                           ` martin rudalics
2016-01-24 17:08                                                           ` Dmitry Gutov
2016-01-24 18:12                                                             ` martin rudalics
2016-01-24 19:01                                                               ` Dmitry Gutov
2016-01-25  9:50                                                                 ` martin rudalics
2016-01-25 17:04                                                                   ` Dmitry Gutov
2016-01-25 18:18                                                                     ` martin rudalics
2016-01-25 19:28                                                                       ` Ingo Lohmar
2016-01-26 10:05                                                                         ` martin rudalics
2016-01-26 23:31                                                                           ` Dmitry Gutov
2016-01-27  9:10                                                                             ` martin rudalics
2016-01-27 17:33                                                                               ` Dmitry Gutov
2016-01-27 18:08                                                                                 ` martin rudalics
2016-01-27 18:35                                                                                   ` Dmitry Gutov
2016-01-27 22:45                                                                                   ` Juri Linkov
2016-01-27 23:13                                                                                     ` Dmitry Gutov
2016-01-28  9:42                                                                                     ` martin rudalics
2016-01-28 15:03                                                                                       ` Drew Adams
2016-01-29  0:05                                                                                       ` Juri Linkov
2016-01-29  7:27                                                                                         ` martin rudalics
2016-01-29 23:36                                                                                           ` Juri Linkov
2016-01-29  1:57                                                                                       ` Dmitry Gutov
2016-01-29  7:27                                                                                         ` martin rudalics
2016-01-29 13:59                                                                                           ` Dmitry Gutov
2016-01-29 23:40                                                                                             ` Juri Linkov
2016-01-25 22:39                                                                       ` Dmitry Gutov
2016-01-26 10:05                                                                         ` martin rudalics
2016-01-27  1:00                                                                           ` Dmitry Gutov
2016-01-27  9:10                                                                             ` martin rudalics
2016-01-27 18:43                                                                               ` Dmitry Gutov
2016-01-24 15:43                                                     ` Eli Zaretskii [this message]
2016-01-24 17:27                                                       ` Dmitry Gutov
2016-01-24 17:58                                                         ` Eli Zaretskii
2016-01-24 18:03                                                           ` Dmitry Gutov
2016-02-21  0:24                                                       ` Dmitry Gutov
2016-02-21 23:49                                                   ` tags-loop-continue Dmitry Gutov
2016-02-22 17:20                                                     ` tags-loop-continue Eli Zaretskii
2016-01-17 23:12                       ` tags-loop-continue Stefan Monnier
2016-01-18  1:37                         ` tags-loop-continue Dmitry Gutov
2016-01-18  2:20                           ` tags-loop-continue Stefan Monnier
2016-01-18  2:28                             ` tags-loop-continue Dmitry Gutov
2016-01-18  2:48                               ` tags-loop-continue Stefan Monnier
2016-01-18  2:57                                 ` tags-loop-continue Dmitry Gutov
2016-01-18 15:46                                   ` tags-loop-continue Eli Zaretskii

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=837fiz3rv5.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=dgutov@yandex.ru \
    --cc=eller.helmut@gmail.com \
    --cc=emacs-devel@gnu.org \
    --cc=rudalics@gmx.at \
    /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.