Subject: bug#69983: Use category for display-buffer-alist

From: Eli Zaretskii <[email-masked]>
Date: Wed, 10 Apr 2024 14:07:28 +0300

> From: Juri Linkov <[email-masked]>
> Cc: [email-masked],  [email-masked]
> Date: Wed, 10 Apr 2024 09:45:49 +0300
> 
> >> > Why does adding a new feature require changes in existing features,
> >> > let alone such basic features as warnings.el?  Can't we introduce the
> >> > category and leave warnings.el, flymake.el, and others alone?  I don't
> >> > want to make unsolicited changes in those other places, because that
> >> > runs the risk of disturbing people's arrangements of windows and their
> >> > habits as to where the various windows pop up.
> >>
> >> This is part of continuing development to improve
> >> window handling for users of horizontally split windows.
> >
> > I don't think I understand how category is related to horizontally
> > split windows, please explain.  We are still in the context of
> > bug#69983 and its Subject, aren't we?
> >
> > If there are some problems related to horizontally split windows that
> > interfere with showing warnings, please describe them.
> 
> The function 'display-warning' has the argument 'buffer-name'.
> This means it's impossible to match the buffer name in
> 'display-buffer-alist', because the buffer name can be anything.
> Therefore the 'category' should be added to the 'display-buffer'
> call in 'display-warning'.
> 
> Currently the warning buffer is displayed in a random place
> in horizontally split windows.  The change is needed to display it
> in the consistent place.  This change is accompanied with adding
> the category for the case if someone don't like this change
> (very unlikely) and wants to revert it to display the buffer
> in a random place.  It will be possible to customize this
> by using the category in 'display-buffer-alist'.

First, as Martin says, the place is never "random".

More importantly, if we want to let programs and users control where
the warnings are displayed, I'd rather we introduced a new,
warning.el-specific option.  Up front, there's no reason for anyone to
assume that display-buffer-alist will have _any_ effect on
display-warning, because we don't document that display-warning uses
display-buffer.  So we could one day decide to implement the display
of the warnings in an entirely different fashion, and then no
customizations of display-buffer-alist will be able to affect the
display.  In fact, in some situations we already display the warning
other than via display-buffer.

In any case, if you are suggesting to change the "random" place where
warnings are displayed, we should first discuss that, because your
assertion that no one will dislike the change sounds very much like
famous last words to me, so to speak ;-)