Subject: bug#24828: 26.0.50; Renaming of display-buffer-in-major-side-window broke which-key.el

From: Justin Burkett <[email-masked]>
Date: Mon, 31 Oct 2016 13:31:12 -0400

Martin,

Thank you for the explanation (and for the kind words). I will follow your
suggestions.

Best,
Justin

On Mon, Oct 31, 2016 at 3:42 AM, martin rudalics <[email-masked]> wrote:

> > I wasn't aware that that function was internal, since it appears to
> > function like the other display-buffer actions.
>
> Unfortunately so.  It was my fault to pretend otherwise.
>
> > If I remember right that
> > code was written by a contributor, and I don't remember the motivation
> for
> > choosing that one. If it really is internal then I will investigate
> > changing to the proper method when I have some more time.
>
> I see.  The problem is that the structure on the right
>
>     ;; +-------------------------+         +-------------------------+
>     ;; |     regular window      |         |     regular window      |
>     ;; |                         |         +------------+------------+
>     ;; +------------+------------+   -->   | side-win 1 | side-win 2 |
>     ;; | side-win 1 | side-win 2 |         |------------+------------|
>     ;; |            |            |         |     which-key window    |
>     ;; +------------+------------+         +------------+------------+
>
> was never really supported.  I initially wanted to allow that but later
> found out that I cannot reliably split side windows in both directions.
> It might work with Emacs 24 in a few basic use cases but will surely
> break with more complicated setups.  So you essentially will have to
> fall back on
>
>     ;; +-------------------------+
>     ;; |     regular window      |
>     ;; |                         |
>     ;; +------+-------+----------|
>     ;; | side-| side- | which-key|
>     ;; | win-1| win-2 | window   |
>     ;; +------+-------+----------+
>
> or
>
>     ;; +-------------------------+
>     ;; |     regular window      |
>     ;; |                         |
>     ;; +----------- +------------|
>     ;; | side-win-1 | which-key  |
>     ;; |            | window     |
>     ;; +------------+------------+
>
> sooner or later anyway.  For this, ‘which-key’ should either supply a
> side window slot value for customization and/or tell the user how to
> customize ‘display-buffer-alist’ for displaying the which-key window.
> Then the user can decide which windows she wants which-key to share with
> (the completions window looks like a good candidate because it's
> ephemeral too).
>
> Note that side windows were initially designed as more persistent but I
> can easily see that the ‘which-key’ use case might come in pretty handy
> too.  Hence it should be possible to make the side-win-1 and side-win-2
> windows temporarily very small in order to give the which-key window
> sufficient space.
>
> From what I've seen, ‘which-key’ is a fine mode, very neatly written.
> It should be in ELPA.  In any case, keep up the good work.
>
> martin
>
>