From: Tassilo Horn <tassilo@member.fsf.org>
To: emacs-devel@gnu.org
Subject: Re: split-window-preferred-function
Date: Fri, 04 Apr 2008 12:04:00 +0200 [thread overview]
Message-ID: <87ve2yx7fz.fsf@member.fsf.org> (raw)
In-Reply-To: <87bq4qfyuu.fsf@jurta.org> (Juri Linkov's message of "Fri, 04 Apr 2008 01:54:29 +0300")
Juri Linkov <juri@jurta.org> writes:
> I don't see how this would help to decide whether to split a window
> vertically or horizontally, or to display a buffer in a new window.
The order of the splitting functions in the hypothetical
`split-window-functions' list would express the preference. Each
function checks if it's applicable (wrt to
split-{width,height}-threshold) and returns nil, if it's not.
> For example:
>
> +----------------+--------------------------------+
> | | |
> | 80 columns | 160 columns |
> | | |
> | | |
> | | |
> | | |
> +----------------+--------------------------------+
>
> When the right window is wide enough to be split horizontally, and
> point is in the left window, what is the best to do here?
>
> 1. display a buffer in the right window without splitting it;
> 2. split the wide right window horizontally and display a buffer
> in a new window;
> 3. split the left window vertically (this option is preferable
> for some buffers, e.g. for calendar)
By default I'd say the splitting functions only check if the current
window is wide/high enough. So I the case above if horizontal splitting
is preferred and split-width-threshold is more than 40, the horizontal
splitting function would not be applicable and return nil. The vertical
splitting function is the next and checks if the left window is higher
than split-height-threshold (the default should be changed to something
like 40). If it is, then option 3 would be done. If not, then it would
return nil, too. In that case display-buffer would reuse the LRU window
which is the right one.
I think that's a sensible default. Users are free to add other
functions. For example the splitting functions could be extended to
search through all windows of the current frame to find one that's large
enough for a horizontal/vertical split.
Bye,
Tassilo
next prev parent reply other threads:[~2008-04-04 10:04 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-19 21:42 split-window-preferred-function martin rudalics
2008-03-20 23:02 ` split-window-preferred-function Juri Linkov
2008-03-21 1:47 ` split-window-preferred-function Stefan Monnier
2008-03-22 1:07 ` split-window-preferred-function Juri Linkov
2008-03-22 16:36 ` split-window-preferred-function Stefan Monnier
2008-03-23 2:16 ` split-window-preferred-function Juri Linkov
2008-03-27 23:44 ` split-window-preferred-function Juri Linkov
2008-03-28 19:50 ` split-window-preferred-function martin rudalics
2008-03-29 0:45 ` split-window-preferred-function Juri Linkov
2008-03-29 9:05 ` split-window-preferred-function martin rudalics
2008-03-29 12:30 ` split-window-preferred-function Juri Linkov
2008-03-29 13:25 ` split-window-preferred-function martin rudalics
2008-03-29 19:42 ` split-window-preferred-function Stefan Monnier
2008-03-30 5:49 ` split-window-preferred-function Richard Stallman
2008-04-02 8:53 ` split-window-preferred-function martin rudalics
2008-04-02 9:36 ` split-window-preferred-function Tassilo Horn
2008-04-02 9:58 ` split-window-preferred-function martin rudalics
2008-04-02 10:30 ` split-window-preferred-function Tassilo Horn
2008-04-02 12:13 ` split-window-preferred-function martin rudalics
2008-04-02 12:33 ` split-window-preferred-function Tassilo Horn
2008-04-02 22:26 ` split-window-preferred-function David De La Harpe Golden
2008-04-02 15:18 ` split-window-preferred-function Stefan Monnier
2008-04-02 17:00 ` split-window-preferred-function martin rudalics
2008-04-02 22:27 ` split-window-preferred-function Juri Linkov
2008-04-03 6:49 ` split-window-preferred-function martin rudalics
2008-04-03 22:52 ` split-window-preferred-function Juri Linkov
2008-04-04 6:50 ` split-window-preferred-function martin rudalics
2008-04-03 7:02 ` split-window-preferred-function Tassilo Horn
2008-04-03 22:54 ` split-window-preferred-function Juri Linkov
2008-04-04 10:04 ` Tassilo Horn [this message]
2008-04-04 12:19 ` split-window-preferred-function martin rudalics
2008-04-04 12:57 ` split-window-preferred-function Tassilo Horn
2008-04-04 13:55 ` split-window-preferred-function Stefan Monnier
2008-04-04 17:21 ` split-window-preferred-function Tassilo Horn
2008-04-04 20:21 ` split-window-preferred-function Stefan Monnier
2008-04-04 22:14 ` split-window-preferred-function Tassilo Horn
2008-04-04 23:52 ` split-window-preferred-function Stefan Monnier
2008-03-21 9:18 ` split-window-preferred-function martin rudalics
2008-03-22 1:09 ` split-window-preferred-function Juri Linkov
-- strict thread matches above, loose matches on Subject: below --
2008-04-05 12:36 split-window-preferred-function grischka
2008-04-05 15:42 ` split-window-preferred-function martin rudalics
2008-04-05 18:35 ` split-window-preferred-function grischka
2008-04-05 22:02 ` split-window-preferred-function martin rudalics
2008-04-06 16:45 ` split-window-preferred-function grischka
2008-04-06 20:35 ` split-window-preferred-function Juri Linkov
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=87ve2yx7fz.fsf@member.fsf.org \
--to=tassilo@member.fsf.org \
--cc=emacs-devel@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 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).