From: Dmitry Gutov <dgutov@yandex.ru>
To: martin rudalics <rudalics@gmx.at>, Eli Zaretskii <eliz@gnu.org>
Cc: Helmut Eller <eller.helmut@gmail.com>, emacs-devel@gnu.org
Subject: Re: xref and displaying locations in appropriate window or frame
Date: Tue, 26 Jan 2016 01:39:23 +0300 [thread overview]
Message-ID: <56A6A41B.20001@yandex.ru> (raw)
In-Reply-To: <56A666FB.3080709@gmx.at>
On 01/25/2016 09:18 PM, martin rudalics wrote:
> This is no good layout for IDEs. Source/code windows like O and T
> should always form a rectangle. Auxiliary windows like X should be
> arranged around that rectangle.
IDE-like window layout is not one of my goals here. I think I've
explained how it would be less than idea.
That's not to say that the users shouldn't be able to choose this window
management strategy (using display-buffer-alist?), but let's not bake
this choice into xref.
> > But I can live with O being split instead.
>
> This would nullify the above benefit. In any case the larger of the two
> windows will be split.
It might be handy to split the window that shows the shortest buffer, if
all other parameters are equal. But that's tangential to this discussion.
> > Note, however, that from the X-below-O configuration I quoted above
> > you can't each either of the good target configurations.
>
> You could split the parent window of O and X.
Very well (they have a parent window?). But that seems to imply manual
layout management, instead of using e.g. pop-to-buffer.
> When X has short lines it could be shown on the left of O like this.
>
> -----------------
> |X| O | T |
> | | | |
> | | | |
> | | | |
> | | | |
> -----------------
Let's say that the lines in X are about half of the frame's width. At
least, that's my usual experience.
> >> Do you produce *xref* asynchronously?
> >
> > Not yet, we I hope we manage to do that. Only working synchronously is
> > one of its drawbacks compared to Grep.
>
> Then ‘fit-window-to-buffer’ will be moot anyway.
Yes, sorry. It could still be useful in the alternative presentation
method for xref-find-definitions, to be written by somebody, sometimes
later.
> > We'd split one of the windows again and show the target buffer in the
> > new window. See my diagram at the beginning of this email.
>
> Then we're back at the initial problem that by default Emacs never shows
> more than two windows on a frame :-(
I suppose so. But its resolution should be orthogonal to what I do.
> >> One problem with dedicated windows is that if an application and the
> >> user both start dedicating the same window to its buffer there might be
> >> conflicts. I doubt that such conflicts can be "fixed" easily.
> >
> > So, then problem will occur when I un-dedicate it at the end, in
> > unwind-protect? I suppose I can save its dedication status, and then
> > restore it.
>
> Right. I doubt you can do any better. But do it.
Thanks!
> > Indeed. Anyway, I'd be fine with changing the default, as long as
> > side-by-side splits are still preferred.
>
> It always depends on the size and shape of your frame.
Ok, always preferred on my machine (229x58), then. :)
You might want to initiate a separate discussion about that. I'm not the
person to make this choice, and nobody else is responding, this deep
into this thread.
> > All right, *Compilation*, then?
>
> IIRC the original question was where *Grep* and *Compilation* display
> their targets. Here I practically always create a new window. But by
> default the target will be usually displayed in the original window, the
> one selected at the time you called grep or compile.
The question was about the user being able to bury *Grep*, then switch
back to it, and continue using it without issue. But indeed, *Grep* and
*Compilation* have it easier.
> > IMHO, the users won't bother, and will either switch to that buffer
> > manually, or just repeat the search.
>
> So let's not prevent them from doing that ;-)
All right.
next prev parent reply other threads:[~2016-01-25 22:39 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 [this message]
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
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=56A6A41B.20001@yandex.ru \
--to=dgutov@yandex.ru \
--cc=eliz@gnu.org \
--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.