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

From: Juri Linkov <[email-masked]>
Date: Wed, 10 Apr 2024 20:49:50 +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".

The "random" place was meant in the sense "unpredictable".
It uses some least recently used window, but with many windows
it's hard to remember what window was least recently used.

> 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.

These are just excuses to not make life easier for users of
horizontally split windows.

> 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 ;-)

Why discriminate users by their orientation?  If users prefer
nontraditional horizontal orientation why not help them
in situations of horizontally split windows?